3

iOS 用の最初の ANE を作成しようとしていますが、.IPA ファイルをコンパイルしようとして問題が見つかりました。

私が得るエラーは次のとおりです。

アプリケーションで必要なネイティブ拡張 'XXX' の実装が、ターゲット プラットフォームで見つかりませんでした。

ここで、「XXX」は ANE のパッケージです。

さて、私は Flash Build 4.6 と AIR 3.2 SDK を使用して、必要なすべての関数を含む SWC ファイルをコンパイルしました。XCode を使用して、必要なすべての Objective-C コードを含む .A ファイルをコンパイルしました。両方のファイルが正常にコンパイルされました。ADT を使用して .ANE ファイルをコンパイルしました。それもうまくいきました。

私の extension.xml ファイルは問題ないようです:

<extension xmlns="http://ns.adobe.com/air/extension/3.1">
    <id>XXX</id>
    <versionNumber>1.0.0</versionNumber>
    <name>ANE_NAME</name>
    <platforms>
        <platform name="iPhone-ARM">
            <applicationDeployment>
                <nativeLibrary>libExtension.a</nativeLibrary>
                <initializer>ExtensionInitializer</initializer>
                <finalizer>ExtensionFinalizer</finalizer>
            </applicationDeployment>
        </platform>
        <platform name="default">
            <applicationDeployment/>
        </platform>
    </platforms>
</extension>

繰り返しますが、XXX は私の拡張機能のパッケージです。(例: com.example.myANE)

platform.xml ファイルも使用しています。

<?xml version="1.0" encoding="utf-8" ?>
<platform xmlns="http://ns.adobe.com/air/extension/3.1">

    <sdkVersion>5.1</sdkVersion>

    <linkerOptions>
        <option>-ios_version_min 4.2</option>
    </linkerOptions>

</platform>

そして、次のコードを使用して ANE をコンパイルします。

adt -package -target ane MyANE.ANE extension.xml -swc MyANE.swc -platform iPhone-ARM -platformoptions platform.xml library.swf libExtension.a -platform default library.swf

それはすべてうまく機能し、ANEファイルがあります。

さて、私が取り組んでいるプロジェクトには、すでに他に 4 つの ANE があるので、フラッシュ部分に問題があるとは思いません。しかし、ADT を使用して IPA をコンパイルすると、エラーが発生します。

誰にも役立つ洞察がありますか?

4

2 に答える 2

4

ANE をコンパイルするコードには、署名オプションが含まれていません。コンパイルするスクリプトはあなたのものと似ていますが、次の引数が含まれています。

-storetype pkcs12 -keystore mac.p12

Mac でコンパイルする場合は、Windows で生成された .p12 ファイルを使用しないでください。(逆もまた然り) そうだとすれば、iOS デバイスのログにエラーが表示されるはずです (ロードできない署名されていない ANE に関する何か)。

また、.swc プロジェクトをコンパイルするたびに library.swf を抽出することを忘れないでください。次に、モバイル プロジェクトをクリーンアップして、新しい ANE を含める必要があります。

于 2012-08-14T11:35:38.763 に答える
3

あなたの ANE は問題ないように見えます。最後に ANE を取得している場合は、その部分を正しく行っていると言えます。

ほとんどの場合、アプリケーションを実際にコンパイルするときの -extdir オプションがありません。

adt -package 
    -target ipa-ad-hoc 
    -storetype pkcs12 -keystore YOUR_CERT.p12 
    -provisioning-profile YOUR_PROVISIONING_PROFILE.mobileprofile 
    myApp.ipa 
    myApp-app.xml 
    myApp.swf icons Default.png 
    -extdir extensionsDir

または、FlashBuilder で、[ビルド パッケージ] の設定で、拡張機能をアプリケーション ビルドにパッケージ化するのを忘れています。詳細については、こちらをご覧ください: http://distriqt.com/post/815

于 2013-08-29T06:43:10.700 に答える