Integrating Layar Player SDK as a Titanium module.

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

Hi.

Nowadays, augmented reality browsers really rocks, and Layar is maybe the most sophisticated among them. Since a few time ago, Layar can live within a iOS application thanks to the Layar Player SDK: our purpose is to launch the Layar Player on a specific layer within a Titanium application window.

In order to do that, we are considering to build a Titanium module (for iOS) which integrates the Layar Player SDK. We followed the tutorial to integrate the Layar Player SDK within a iOS application, from which we extracted the information about the final application - the one which uses our module - configuration.

So, we followed these steps:

  • create a clean Titanium module, called "LayarPlayerModule";
  • open the layarplayermodule.xcodeproj with XCode, implement the functionality and build it;
  • build the Titanium module and publish it into the Titanium SDK;
  • create a test application which makes use of the module.

We specified some compiler/linker options in the module.xconfig file, as suggested here, but we got into errors. Basically, we need to say, somehow, to the C compiler to use some flags (OTHER_CFLAGS), to the linker to use some other flags (OTHER_LDFLAGS), to include some frameworks (OTHER_LDFLAGS), to point some third-party libraries (HEADER_SEARCH_PATH, LIBRARY_SEARCH_PATH), and eventually to match against other configuration rules (for instance, we need to exclude simulator from building, to set armv7 only as architecture, and so on as declared in the Layar Player SDK integration tutorial). How can we do that?

Here is the module.xconfig file:

TITANIUM_SDK = /Library/Application Support/Titanium/mobilesdk/osx/$(TITANIUM_SDK_VERSION)
TITANIUM_BASE_SDK = "$(TITANIUM_SDK)/iphone/include"
TITANIUM_BASE_SDK2 = "$(TITANIUM_SDK)/iphone/include/TiCore"
LAYAR_PLAYER_SDK = "/Users/ggm/Documents/TitaniumStudioWorkspace/LayarPlayerModule/Libraries/LayarPlayer/Release-iphoneos/include"
 
HEADER_SEARCH_PATHS = $(LAYAR_PLAYER_SDK) $(TITANIUM_BASE_SDK) $(TITANIUM_BASE_SDK2)
LIBRARY_SEARCH_PATHS = "/Users/ggm/Documents/TitaniumStudioWorkspace/LayarPlayerModule/Libraries/LayarPlayer/Release-iphoneos" "/Users/ggm/Documents/TitaniumStudioWorkspace/LayarPlayerModule/Libraries/stig-json-framework/build/Release-iphoneos" "/Users/ggm/Documents/TitaniumStudioWorkspace/LayarPlayerModule/Libraries/thekarladam-MPOAuth/build/Release-iphoneos"
 
 
OTHER_LDFLAGS=$(inherited) -framework AudioToolbox -framework AVFoundation -framework CFNetwork -framework CoreData -framework CoreGraphics -framework CoreLocation -framework CoreMedia -framework CoreMotion -framework CoreTelephony -framework CoreVideo -framework Foundation -framework MapKit -framework MediaPlayer -framework OpenGLES -framework QuartzCore -framework UIKit -framework Security -framework SystemConfiguration -llayarplayer -lsbjson-ios -lMPOAuthMobile -lxml2 -lz -ObjC
OTHER_CFLAGS=$(inherited) -DNS_BLOCK_ASSERTIONS=1 -DEIGEN_DONT_VECTORIZE -DEIGEN_NO_DEBUG -fblocks -ffunction-sections -funwind-tables -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -finline-functions -fno-math-errno -funsafe-math-optimizations -fno-trapping-math -fno-rounding-math -fno-signaling-nans -fcx-limited-range -frename-registers -ftracer
and here is the last lines of the log:
...
[DEBUG] Looking for Titanium Module id: ti.cloud, version: 2.3.0, platform: commonjs
[DEBUG] Looking for Titanium Module id: it.ipsoft.ti.layarplayer, version: 0.1, platform: iphone
[INFO] Performing clean build
[INFO] Compiling localization files
[DEBUG] compiled ios file: /Users/ggm/Documents/TitaniumStudioWorkspace/LayarPlayerModuleTest/build/iphone/build/Debug-iphoneos/LayarPlayerModuleTest.app/en.lproj/Localizable.strings
[DEBUG] compiled ios file: /Users/ggm/Documents/TitaniumStudioWorkspace/LayarPlayerModuleTest/build/iphone/build/Debug-iphoneos/LayarPlayerModuleTest.app/ja.lproj/Localizable.strings
[ERROR] 
[ERROR] Error: Traceback (most recent call last):
  File "/Library/Application Support/Titanium/mobilesdk/osx/2.1.0.GA/iphone/builder.py", line 1482, in main
    execute_xcode("iphoneos%s" % iphone_version,args,False)
  File "/Library/Application Support/Titanium/mobilesdk/osx/2.1.0.GA/iphone/builder.py", line 1241, in execute_xcode
    output = run.run(args,False,False,o)
  File "/Library/Application Support/Titanium/mobilesdk/osx/2.1.0.GA/iphone/run.py", line 41, in run
    sys.exit(rc)
SystemExit: 65
OT: is there a possibility to get faster support for third-party modules like this from your side?

Thanks a lot,

1 Answer

First thing you can try is Upgrading the Mark-Down Parser for Python from here.

— answered 8 months ago by Ashish Nigam
answer permalink
1 Comment
  • Hi Stefano, when you build your module using build.py it generates a zip of the module and then your run it using titanium run from console and it will generate the error message and a build.log file. check its content and paste it here the last 30 line of file which describe about error cause.

    then it will be easy to answer it correctly.

    — commented 8 months ago by Ashish Nigam

Your Answer

Think you can help? Login to answer this question!