ANEのiosの上の使用の流れと問題は解決します。

5297 ワード

ソース:http://www.gulumiao.com/blog/2012/08/ane-use-flow-and-problem/
ANEプロセスを編纂する:
1.xcodeで作成.a原生類庫
2.設定ファイルのextension.xmlを変更し、生プログラムの拡張インターフェースを定義しました。
3.ASの身代わり類を作成して、拡張類のカバンを生成します。swc、解凍してからlibrary.swfを得ます。
     adtコマンドでaneファイルを生成します。
4.adtコマンドで作成.ane拡張ファイルを作成し、flashアプリケーションでインターフェースを呼び出して、元のクラスの機能を実現します。
bin/adt -package -storetype pkcs12 -keystore selfsigned.p12 -storepass 1234 -target ane ext/InApp.ane extension.xml -swc ANE_IAP_ASLib.swc -platform iPhone-ARM library.swf libAppPurchase.a
 署名ファイルselfsigned.p 12は、Flash CS 5によって生成され、AIRのAndroidタブから作成を選択することができる。署名なしで生成すると、Win 7のFB 4.6に「未署名」というメッセージのエラーを呼び出します。ただし、MacのFB 4.6で使用する場合は、署名なしではエラーは発生しません。通用するためには、サインしたほうがいいです。
 
 
 
5.FB4.6にADT拡張を設定して直接ipadを生成することができます。
    アプリケーションSWFファイルをswcまたはane(追加コンパイラ泣き経路)で生成し、ADTコマンドでipadを生成しても良い。
 
bin/adt -package -target ipa-test-interpreter -provisioning-profile ghostbride_dev.mobileprovision -storetype pkcs12 -keystore jameslidevelopment.p12 -storepass 1234 Main.ipa info-app.xml ANE_IAP_Example.swf -extdir ext icon
 
 
問題解決:
1です。ANEタイムズの作成エラー:
Invalid swc file. The extension NameSpace requires the SWF version to be 13 or lower.
 
解決1:追加コンパイラパラメータ:-locale en_US-swf-version=13  このようなやり方は間違いを招くかもしれません。
解決2:Airのextension namespaceを対応バージョンに変更すればいいです。(この例はもともと2.6で、3.1に変更すれば解決できます。)
Air対応のSWFバージョンを参照してください。
SWF 11 for AIR 2.7、SWF 13 for AIR 3、and SWF 14 for AIR 3.1.
Adobeドキュメント
 
 
 
2ですaファイル名があってはいけません(アンダーライン)を包装しないとANEはエラーを報告します。
error 105:extension....native Library contains an invalid value.
 
3.  パッキングipadエラー:
Includ native extension'company.xxx'includes a SWF version 13 which is greater than the version of the root Sf of the this appration:11
エラーメッセージによると、swcのLibライブラリを-swf-version=11に再包装してANEをリリースすればいいです。またはSWFファイルを対応バージョンにリリースする(CS 5.5は11までリリースするしかない)
 
4.FB 4.6コンパイル時にplaytformを認識しないこのパラメータ
解決:プロジェクト設定でIOS 5のSDKパスを指定します。
 
 
5です。FB4.6コンパイルカードは57%の問題があります。
これはAIRバージョンまたはIOSバージョンの不一致のエラーかもしれません。あるいは、どのコンパイルパラメータが正しく書かれていないか、または他のものです。FBにはエラーは見られません。コマンドラインでコンパイルして、エラーメッセージを確認します。この場合、コマンドラインのコンパイルはiPadのパッケージ化に成功しますが、一般的には使えないバージョンです。命令行で間違いを調べてFBを持ち帰ります。普通はOKです。
 
6です。エラーMain-ap.xml:error 117:This taget requires at least namespace 3.0 to package extensions.
明らかに間違っています。このファイルのバージョンを高くしたらいいです。
<アプリXmlns=”http://ns.adobe.com/air/application/3.0〃>
 
7です。携帯に入れたら壊れてしまいます。
XcodeのSkip InstallパラメータはNoを選択します!!  チェックしてください  このパラメータは本当に嫌ですね。
 
 
注意:
1.example-app.xmlは必ずextension IDに対応して書きます!!!!  extension IDを書かないで包装して成功して間違いを報告することはできなくて、しかしiPadをテストする時ANEの部分は反応していません。したがって、ANEが反応しない場合は、まずこのパラメータをチェックします。
また、swcを作成する時、Extension Contect.creat Extension Contect()ここのパラメータもextension IDに対応してください。そうでないとANEも反応しません。特にextension IDを変更する時は忘れないでください。
 
2です。ADTコマンドでiPadをコンパイルする場合はSDKバージョンを指定します。
-plotformsdk/Developer/Platforms/iPhone OSS.plotform/Developer/SDKs/iPhone OS 5.0.sdk/
デフォルト4.0を指定しないと、5.0の機能がありますので、使えません。
External SDKを参照:
http://blogs.adobe.com/rajorshi/2011/11/16/ios5-support-for-airusing-external-sdks-to-package-apps/
 
3です。この20条の提案はよく書けています。多くの状況に遭遇しました。
http://www.richardlord.net/blog/20-tips-for-creating-air-native-extensions-for-ios
james.liの翻訳バージョンがありますが、第18条彼は一つ抜けました。英語バージョンを参考することができます。
 
4です。enable linking with sharred libriesについては、AirでSDKパスを指定したとしても、または追加のクラスライブラリを使用していないと、YESかNOかどちらでも構いません。
 
5です。Flash CS 5.5をCommpilerとしてSWFをコンパイルし、Flash CS 5.5のリリース設定でFlash Playerを選択し、リリース時にこのエラーを無視します。生成したSWFをそのまま使用すれば良い。
 
6.shスクリプトを書いてコマンドラインを実行します。 まずchmod+x run.shでファイルに実行可能な権限を与えます。
 
7.補足して、swcが低いバージョンにリリースされてもAir 3.1ドメインの使用に影響しないことが分かりました。だから上の問題が発生した時に、LibライブラリをCS 5.5のバージョン、つまりflash player 11に包装することができます。
 
関連記事:
  • flash転iosの性能最適化に関するいくつかの心得
  • どうやってWindows上開発でAlchemy(中国語翻訳)
  • OTAでAdHocアプリをリリースします。