iOS - Custom Module

You must Login before you can answer or comment on any questions.

I've been trying to create a custom Titanium Module, I followed the steps in the tutorial and was able to create the basic examples shown.

I have since tried to include other Frameworks AVFoundation and AudioToolbox and I get an error.

In xCode when I click build, it succeeds.

Using ./build.py against the module also succeeds.

When I try to use titanium run I get an error about i386.

In module.xconfig I have added the lines

OTHER_LDFLAGS=$(inherited) -framework AVFoundation
OTHER_LDFLAGS=$(inherited) -framework AudioToolbox
Tutorial here: https://wiki.appcelerator.org/display/guides/iOS+Module+Development+Guide

xCode: 4.2.1 SDK: 1.8.2 Titanium Studio: 1.0.9.201202141208 Mac OS X 10.7.3

build.log

objc-class-ref in libcom.test.a(ComTestModule.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
 
 
** BUILD FAILED **
 
 
The following build commands failed:
    Ld build/Debug-iphonesimulator/test.app/test normal i386
(1 failure)
EXIT CODE WAS: 65
 
Exception detected in script:
Traceback (most recent call last):
  File "/Users/nicholas/Library/Application Support/Titanium/mobilesdk/osx/1.8.2/iphone/builder.py", line 1294, in main
    execute_xcode("iphonesimulator%s" % link_version,["GCC_PREPROCESSOR_DEFINITIONS=__LOG__ID__=%s DEPLOYTYPE=development TI_DEVELOPMENT=1 DEBUG=1 TI_VERSION=%s %s %s" % (log_id,sdk_version,debugstr,kroll_coverage)],False)
  File "/Users/nicholas/Library/Application Support/Titanium/mobilesdk/osx/1.8.2/iphone/builder.py", line 1200, in execute_xcode
    output = run.run(args,False,False,o)
  File "/Users/nicholas/Library/Application Support/Titanium/mobilesdk/osx/1.8.2/iphone/run.py", line 39, in run
    sys.exit(rc)
SystemExit: 65

1 Answer

Any news on this one ?

— answered 1 year ago by Chris Magnussen
answer permalink
1 Comment
  • Oh, I actually found out whats wrong. OTHER_LDFLAGS is only to be defined once, so when you include frameworks like you do (multiple defines of other_ldflags) it will only include the latest define. In your case only AudioToolbox is included.

    To avoid this error, just add both frameworks in a single line.

    // Wrong:
    OTHER_LDFLAGS=$(inherited) -framework AVFoundation
    OTHER_LDFLAGS=$(inherited) -framework AudioToolbox
     
    // Correct:
    OTHER_LDFLAGS=$(inherited) -framework AVFoundation -framework AudioToolbox

    — commented 1 year ago by Chris Magnussen

Your Answer

Think you can help? Login to answer this question!