1

我目前正在尝试将 .ane 合并到我的 iOS 应用程序中。.ane 由第 3 方提供,我没有它的来源。

我已将随附的 .swc 链接到我的项目中(Adobe 和第 3 方推荐的外部链接)并成功构建了 .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 是通过指定 -platformoptions xml 文件或以其他方式尝试链接 sqlite3 库,并且在要构建底层 Xcode 项目的 adt 过程中,找不到那个库。

我的设置如下:
Mac OSX Lion
Adob​​e Flash Builder 4.5 w/PHP
Xcode 4.4.1 Flex 4.6.0 (AIR 3.3) SDK

现在,sqlite3 位于 /usr/lib 中,所以我知道它在那里,实际上它可以是任何库。由于这是一个命令行 AIR 实用程序,我无权访问底层 Xcode 项目(据我所知)来告诉它库在哪里,所以我现在有点卡住并且没有想法。

我可能还应该注意到,我在使用任何其他(本地或其他)扩展时都没有遇到这个问题,但这很可能是因为它们几乎没有依赖关系。

谢谢!

4

1 回答 1

1

好的,我认为这最终成为我的设置的一个问题。 通过将 adt 命令指向我明确使用的 iOS SDK 版本,问题已得到解决。这就是我认为发生的事情:

  • 前几天下载了Flex 4.6.0AIR3.3,安装好了。Adobe 说它带有一个内置的 iOS 版本(但我找不到它),所以我假设它使用 /Developer/Platforms/iPhoneIS.platform 每个 Snow Leopard 和 Xcode 3 中的那些。

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

  • Xcode 4 将 SDKS 放在其应用程序包中,而不是放回 /Developer/Platforms。有可能“从下面拉出地毯” Adob​​e?

无论如何,它已经解决了,只需要意识到 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>

:)

于 2012-08-16T04:50:35.930 回答