我目前正在尝试将 .ane 合并到我的 iOS 应用程序中。 .ane 由第三方提供,我没有它的来源。
我已将随附的 .swc 链接到我的项目 ( external linkage as recommended by both Adobe and the 3rd party ) 并成功构建了 .swf。当使用 adt 构建用于部署的 .ipa 时,我的问题就开始了。下面是我正在使用的模拟 adt 命令。您可以假设所有 <> 的内容都已正确填写,因为我已经详尽地检查了它们,并且构建运行了很长一段时间。虽然我可能缺少一些甜蜜的善良...
adt -package -target ipa-ad-hoc -provisioning-profile <the-file> -storetype <the-store-type> -storepass <the-password> -keystore <the-certificate> ./../myapp.ipa MyApp-app.xml MyApp.swf -extdir <path-to-ane-files>
一切都进展顺利,直到我收到以下错误,我们才戛然而止:
ld: library not found for -lsqlite3
这告诉我第 3 方 .ane 是 either by specifying through a -platformoptions xml file或者,尝试链接到 sqlite3 库,并且在要构建底层 Xcode 项目的 adt 进程中,找不到该库。
我的设置如下:
Mac OSX 雄狮
带 PHP 的 Adobe Flash Builder 4.5
Xcode 4.4.1
Flex 4.6.0 (AIR 3.3) SDK
现在,sqlite3 位于/usr/lib 中,所以我知道它在那里,实际上它可以是任何库。因为这是一个命令行 AIR 实用程序,所以我无权访问底层 Xcode 项目(据我所知)to just tell it where the library is , 所以我现在有点卡住了,没有想法。
我可能还应该注意到,我没有遇到任何其他(自制或其他)扩展的问题,但这很可能是因为它们几乎没有依赖关系。
谢谢!
最佳答案
好吧,我认为这最终成为我的设置问题。 By pointing the adt command to the version of the iOS SDK I was using explicitly ,问题已解决。这就是我认为发生的事情:
我前几天下载了Flex 4.6.0AIR3.3并安装了。 Adobe 说它附带了一个内置的 iOS 版本(但我找不到它)所以我假设它使用/Developer/Platforms/iPhoneIS.platform per Snow Leopard 和 Xcode 3 中的版本。
<然后我升级到 Lion,这样我就可以升级到 Xcode 4,这样我就可以构建 iOS 5 的东西。 Xcode 4 现在是从 App Store 安装的,所以我先 fully remove Xcode然后从 App Store 重新安装。
Xcode 4 将 SDKS 放入其应用程序包中,而不是放回到/Developer/Platforms 中。可能会“从 Adobe 底下撤下地毯”?
无论如何,它已经解决了,只需要意识到 SDK 已经“消失”......哦,意识到 sqlite3.a 不是链接器正在寻找的,而是 libsqlte3.dylib。
这是修改后的 adt 命令,请注意 -platformsdk 开关的存在:
adt -package -target ipa-ad-hoc -provisioning-profile <the-file> -storetype <the-store-type> -storepass <the-password> -keystore <the-certificate> ./../myapp.ipa MyApp-app.xml -plaformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/<version> MyApp.swf -extdir <path-to-ane-files>
:)
关于ios - AIR:第 3 方 iOS native 扩展的链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979819/