【问题标题】:Appcelerator iOS module crashes with 3rd party frameworkAppcelerator iOS 模块与 3rd 方框架崩溃
【发布时间】:2016-04-08 21:29:10
【问题描述】:

我正在构建一个 Appcelerator 模块,它需要包含第 3 方框架。我阅读了文档并尝试完美地遵循它,但收效甚微。

应用 id 是 com.example.app 版本是1.0

框架位于 iphone/platform. 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 引用了一个崩溃日志,内容如下:

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。

请让我知道还有什么要检查的,或者让我知道我应该分享什么来解决这个问题。

【问题讨论】:

  • 现在已经 8 天了,我仍然无法让外部框架在 Appcelerator 中工作。我总是收到错误“找不到路径:$(SRCROOT)/../../modules/iphone/disi.corretrak.facrec/1.0/platform”这条路径是否正确?我需要做任何事情来自己创建这条路径吗?

标签: ios xcode module appcelerator appcelerator-titanium


【解决方案1】:

您是否确保将框架放在&lt;your_module&gt;/platform 中并从您的 Xcode 项目中引用它?检查ti.googlemaps,我正在对GoogleMaps.framework 做同样的事情。

【讨论】:

  • 我注意到您的项目有两点。首先,您的文件夹结构与 Appcelerator 默认安装的不同。我有 /iphone/platform.你有 /ios/platform/ios。其次,您的 googlemaps.framework 实际上称为 googlemaps.bundle。为什么路径和名称不同?
  • 另外,我在崩溃报告中看到:“[TRACE] ld: warning: directory not found for option '-F/Users/DISI/Documents/Appcelerator_Studio_Workspace/testHarness/build/iphone/.. /../modules/iphone/disi.corretrak.facrec/1.0/platform'" ../../ 部分是什么意思,为什么找不到这条路径?那条路径不是自动建立的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2021-03-23
  • 1970-01-01
相关资源
最近更新 更多