我已经构建了一个带有简单本机扩展的AIR应用程序,该应用程序公开了API来控制设备的容量。我目前的目标平台是适用于iPad的iOS。该项目基于Nathan Weber在http://www.adobe.com/devnet/air/articles/building-ane-ios-android-pt1.html的教程。
虽然二进制文件通过Flash Builder接口正确编译,但我无法通过命令行使其工作。这对我们来说非常重要,以便与我们的自动构建过程集成。我尝试了一切,直到找到Flash Builder在内部触发的确切Java进程命令行,以便执行编译过程,然后通过终端窗口手动运行完全相同的命令。命令和结果粘贴在下面。
bin-debug pranav.negandhi$ /usr/bin/java -Xms32m -Xmx1024m -jar '/Applications/Adobe Flash Builder 4.6/sdks/4.6.0 copy/lib/adt.jar' -package -target ipa-ad-hoc -provisioning-profile '/Users/pranav.negandhi/Documents/Adobe Flash Builder 4.6/ne-client/certs/clientdev.mobileprovision' -storetype pkcs12 -keystore '/Users/pranav.negandhi/Documents/Adobe Flash Builder 4.6/ne-client/certs/danapaniCertificate2013.p12' -storepass danapani2013 Main.ipa Main-app.xml Main.swf splash.jpg -extdir '/Users/pranav.negandhi/Documents/Adobe Flash Builder 4.6/.metadata/.plugins/com.adobe.flexbuilder.project.ui/ANEFiles/ne-client/com.adobe.flexide.multiplatform.ios.platform' -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no-pic) not allowed in code signed PIE, but used in _llvm_unwind from AOTBuildOutput-0.o. To fix this warning, don't compile with -mdynamic-no-pic or link with -Wl,-no_pie
ld: warning: multiple L$start$ labels found at same address in __ZN9NetStream12DispatchProcEP10NativeInfo at offset 0x06C0
忽略警告不起作用,因为生成的IPA永远不会安装到iPad上。当我通过iTunes同步设备时,iPad上的安装失败,并显示“主要调试无法安装”消息。
Flash Builder中使用相同的代码,本机扩展和配置文件。
我很高兴能够开始解决这个问题。
答案 0 :(得分:0)
事实证明,应用程序描述符中的应用程序标识符不匹配。我无法理解它是如何通过Flash Builder工作的,但在使用命令行时却没有。
我仍然会收到上面列出的相同警告,但它们不会影响应用程序的安装。
对于那些刚接触iOS开发的用户,特别是那些不使用Apple工具链的用户,请开始使用Xcode中的管理器功能,而不是通过iTunes安装应用程序二进制文件。它提供了更详细和更明智的错误消息,以及其他一些功能,如日志和实时控制台。如果不是这样的话,我从未发现过这个问题。