非常困在iOS上的ADT打包和AIR原生扩展

时间:2012-02-15 21:15:31

标签: ios air

所以我使用http://blog.aboutme.be/2011/12/10/udp-in-air-for-ios-using-a-native-ex张力/

的原生扩展名

它附带一个flex演示应用程序,在内置于FB时可在Android和iOS上完美运行。我在FB中制作了一个小的as3应用程序,在Android和iOS上也很完美。

然后我从as3 FB项目中获取app.xml并将其用于我的flash pro / adt项目。我使用以下

在adt中构建了包

机器人:

启动adt -package -target apk -storetype pkcs12 -keystore androidTest.p12 NetPRO_Demo.apk NetPRO_Demo-app.xml NetPRO_Demo.swf 72icon.png -extdir extensions

的iOS:

启动adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore Certificates.p12 -provisioning-profile CashRegisteriPad1.mobileprovision NetPRO_Demo.ipa NetPRO_Demo-app.xml NetPRO_Demo.swf 72icon.png -extdir extensions

Android版本运行完美,iOS版本处于黑屏并冻结。我花了好几天时间,我的ADT包装出了什么问题,与FB包装不同,它只在iOS上打破。

另外,如果我摆脱原生扩展,我的ADT包装工作正常。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题 - 我的扩展程序在Android上运行正常,iOS在ipa-test中运行,但在ipa-ad-hoc启动时冻结。

修复程序链接到iOS上的NativeExtension swc作为外部库。从命令行我必须修改提供给编译器的config.xml文件,如下所示:

在:

<flex-config>
<swf-version>14</swf-version>
<target-player>11.2</target-player>
    <compiler>
        <headless-server>true</headless-server>
        <source-path>
            <path-element>src</path-element>
            <path-element>..</path-element>
        </source-path>
        <library-path>
            <path-element>../Extensions/ExampleExt/bin/iOSExampleExtension.swc</path-element>
            <path-element>${flexlib}/libs/air/airglobal.swc</path-element>
             <path-element>${flexlib}/libs/framework.swc</path-element>
        </library-path>
    </compiler>
</flex-config>

在:

<flex-config>
<swf-version>14</swf-version>
<target-player>11.2</target-player>
    <compiler>
        <headless-server>true</headless-server>
        <source-path>
            <path-element>src</path-element>
            <path-element>..</path-element>
        </source-path>
        <external-library-path>
            <path-element>../Extensions/Telephony_iOS/bin/iOSTelephonyExtension.swc</path-element>
        </external-library-path>
        <library-path>
            <path-element>${flexlib}/libs/air/airglobal.swc</path-element>
             <path-element>${flexlib}/libs/framework.swc</path-element>
        </library-path>
    </compiler>
</flex-config>

希望这也能解决你的问题。

答案 1 :(得分:0)

它似乎在剩余文件之前缺少参数-C。尝试:

start adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore Certificates.p12 -provisioning-profile CashRegisteriPad1.mobileprovision NetPRO_Demo.ipa NetPRO_Demo-app.xml -C NetPRO_Demo.swf 72icon.png -extdir extensions

如果这不能解决它,我敢打赌你的附带资料不适合分发,而你正试图将其打包为ad-hoc。也许可以尝试不同的个人资料或将包装更改为ipa-debug-interpreter。 还有,它要求输入密码吗?也可以添加-storepass *yourpass*和iphone sdk -platformsdk /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/