Appcelerator iOS模块与第三方框架崩溃

问题描述:

我正在构建一个Appcelerator模块,需要包含第三方框架。我阅读了文档,并试图完全按照它取得小成功。Appcelerator iOS模块与第三方框架崩溃

应用程序ID是com.example.app 的版本是1.0

这些框架位于iphone /平台。 的module.xconfig如下:

FRAMEWORK_SEARCH_PATHS=$(SRCROOT)/../../modules/iphone/com.example.app/1.0/platform /Library/Application\ Support/Titanium/modules/iphone/com.example.app/1.0/platform ~/Library/Application\ Support/Titanium/modules/iphone/com.example.app/1.0/platform 

OTHER_LDFLAGS=$(inherited) -framework NBiometricClient -framework NBiometrics -framework NCluster -framework NCore -framework NDevices -framework NLicensing -framework NMedia -framework NMediaProc 

我的课全部都包含在我的目标。该模块在XCode中没有警告或错误的情况下构建。我可以在Appcelerator中无误地发布它。当我启动一个简单的测试应用程序时,要查看模块是否会加载,它会成功建立,然后立即崩溃。 Appcelerator的refrences崩溃日志,其内容如下:

Application Specific Information: 
dyld: launch, loading dependent libraries 
DYLD_FALLBACK_LIBRARY_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 
DYLD_ROOT_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk 
DYLD_FALLBACK_FRAMEWORK_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks 
DYLD_SHARED_REGION=avoid 

Dyld Error Message: 
Library not loaded: @rpath/NBiometricClient.framework/NBiometricClient 
Referenced from: /Users/USER/Library/Developer/CoreSimulator/Devices/95DD514F-E8D1-4982-B845-6CAC27369DC8/data/Containers/Bundle/Application/355A1ABF-7036-4285-90B5-96C8F88DAD36/testHarness.app/testHarness 
Reason: image not found 

Binary Images: 
    0x10bb29000 -  0x10c1fffff +com.testHarness (1.1 - 1.1) <4F498C98-61BA-3ED7-99B5-F2F9649FD94A> /Users/USER/Library/Developer/CoreSimulator/Devices/95DD514F-E8D1-4982-B845-6CAC27369DC8/data/Containers/Bundle/Application/355A1ABF-7036-4285-90B5-96C8F88DAD36/testHarness.app/testHarness 
    0x10c571000 -  0x10c59825f +dyld_sim (360.19) <0BF161D7-EFA9-3CBE-AE2B-84F9A70FC853> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/dyld_sim 
0x7fff624c8000 -  0x7fff624ff007 dyld (360.19) <9D05FDF4-65CE-3B53-86D4-ABE1A5BF35F3> /usr/lib/dyld 

这些框架被从模块的平台文件夹添加到的XCode直接。

请让我知道还有什么要检查或让我知道我应该分享以解决问题。

+0

现在已经8天了,我仍然无法获得外部框架在Appcelerator中工作。我总是得到错误“Path not found:$(SRCROOT)/../../ modules/iphone/disi.corretrak.facrec/1.0/platform”这个路径是否正确?我需要做任何事情来自己创造这条道路吗? – falt86

您是否确定将该框架放置在<your_module>/platform中,并从Xcode项目中引用它?检查ti.googlemaps我在GoogleMaps.framework中做了相同的操作。

+0

我注意到你的项目有两件事。首先,您的文件夹结构与默认从Appcelerator安装的文件夹结构不同。我有/iphone /平台。你有/ios/platform/ios。其次,你的googlemaps.framework实际上叫做googlemaps.bundle。为什么路径和名称不同? – falt86

+0

此外,我在崩溃报告中看到:“[TRACE] ld:warning:找不到选项'-F/Users/DISI/Documents/Appcelerator_Studio_Workspace/testHarness/build/iphone /../../ modules/iphone /disi.corretrak.facrec/1.0/platform'“../../部分是什么意思,为什么找不到这个路径?没有自动建立路径? – falt86