AIR:链接器错误与第三方iOS本机扩展

时间:2012-08-16 02:14:56

标签: ios xcode4 air flash-builder4.5 air-native-extension

我目前正在尝试将.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

这告诉我的是第三方.ane是either by specifying through a -platformoptions xml file或其他方式,试图链接到sqlite3库,并且在adt进程中要构建底层Xcode项目,那个图书馆找不到。

我的设置如下:
Mac OSX Lion
Adobe Flash Builder 4.5 w / PHP
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,所以我暂时陷入困境并暂时没有想法。

我可能还应该注意到,我没有遇到任何其他(本地增长或其他)扩展的问题,但这很可能是因为它们几乎没有相关性。

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,所以这最终成了我设置的问题。 By pointing the adt command to the version of the iOS SDK I was using explicitly,问题已得到解决。这就是我认为发生的事情:

  • 我几天前下载了Flex 4.6.0AIR3.3并安装了它。 Adobe表示它附带了一个版本的iOS(但是我找不到它)所以我认为它使用了每个Snow Leopard和Xcode 3的/Developer/Platforms/iPhoneIS.platform中的那些。

  • 然后我升级到Lion,然后我可以升级到Xcode 4,这样我就可以构建iOS 5的东西了。 Xcode 4现在从App Store安装,所以我先fully remove Xcode然后从App Store重新安装。

  • Xcode 4将SDKS放在其Application包中,而不是放回/ 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>

:)