2013-06-04 83 views
0

我已经构建了一个具有简单本机扩展的AIR应用程序,该应用程序公开API以控制设备的音量。我目前的目标平台是iPad的iOS。该项目基于Nathan Weber的http://www.adobe.com/devnet/air/articles/building-ane-ios-android-pt1.html教程。无法从命令行编译AIR应用程序

虽然二进制编译通过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

原来,在应用程序描述符中与应用程序标识符不匹配。我不明白它是如何通过Flash Builder工作的,但在使用命令行时没有。

我仍然得到上面列出的相同警告,但它们不影响应用程序安装。

对于那些新开发的iOS开发人员,尤其是那些不使用Apple工具链的人,请开始使用Xcode中的Organizer功能,而不是通过iTunes安装应用程序二进制文件。它提供了更详细和明智的错误消息,以及其他一些功能,如日志和实时控制台。如果不是这样的话,我从来没有发现过这个问题。