
iOS で AIR Native Extenison (以下ANE) アプリを作成するときにハマった点メモ。
正確に確認できていないので間違った情報もあるかもしれませんが、あくまで参考までに。
※特にiOSやANEに限ったことではないものも混ざっています。
.aneを含んだAIRアプリパッケージ時のエラー
アプリケーションIDの間違い?
An implementation for native extension ‘[クラスパス]‘ required by the application was not found for the target platform.
・アプリケーション記述ファイル(xxx-app.xml) に extenisionID がない場合。
・.ane自体を生成するときに失敗している場合。(ane化するときのextensionIDが違うなど)
・AIRパッケージ時adtオプションで-extdirを指定していない。もしくは指定先のフォルダパスが間違っている場合。
extenisionIDは下記3つが同じでなければならないので、再度確認し、aneを作成してみるなど。
・swc内のExtensionContext.createExtensionContextの第一引数に渡している文字列
・.ane作成時のextension.xmlのidタグに指定している文字列
・AIRパッケージ時のアプリケーション記述ファイルのextensionIDタグに指定している文字列
@Hiiragi3 が公開している ANE制作ツール 「ANEtty 」を使うと便利(もうこれがないと無理)
Xcodeの問題?
ld warning: unexpected srelocation type 9
.aneに含める.aクラスをXcode 4.2 で作成した時に出る。.aをXcode 4.1でを作りなおすと問題なかった。(thx! @arkw )
過去バージョンXcodeをダウンロード出来るページ(Developer登録しないと落とせない?)
複数の.aneファイル指定するとエラー
ネイティブの.aファイルの関数名(イニシャライザやファイナライザなど)が同じだと、エラーになる。
※FlashBuilder4.6だと、事前にエラー表示をしてくれるので便利らしい。
実機転送時
プロビジョニングファイルが認識されていない?
A valid provisioning profile for this executable was not found.
XcodeのOrganizerでアプリを実機に転送できない場合に出るエラー。(これはANEに限ったことではないですが)
・パッケージ時に使用したプロビジョニングファイルが実機にインストールされていない(たぶん)
・App Store もしくは Ad Hoc パッケージ時にdevelop版のプロビジョニングファイルを指定した(たぶん)
idの不一致
The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
app-storeパッケージの時にでる。
・プロビジョニングに指定したAppIDと、アプリケーション記述ファイルのidタグが一致していない。
Could not install provisioning profile
The profile “ほげほげ” does not include this device and cannot be installed thereon.
distributionプロビジョニングを実機にドラッグドロップするとでる。原因よくわからない
(だれか教えて( ´д`; ))
Xcode counld not find a valid private-key / certificate pair for this profile in your keychain.
Organizerでプロビジョニングを選択したときに、上部に出るエラー。
プロビジョニングファイルをXcodeアイコンにドロップしたら消えた(よくわからず)
アプリ実行時
起動しても画面がずっと真っ黒(もしくはDefault画像のまま)
AIRパッケージ時に-connect オプションでデバッグ先IPアドレスを指定すると、接続先が見つからない場合、しばらく何も表示されない。
起動してすぐ落ちる
Dec 12 20:29:49 unknown ReportCrash[2017] : libMobileGestalt loadBasebandMobileEquipmentInfo: CommCenter error: 1:45
Dec 12 20:29:49 unknown ReportCrash[2017] : libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
Dec 12 20:29:49 unknown ReportCrash[2017] : libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
↑みたいなエラーがOrganizerのConsoleに出る。
ipa-test (ipa-test-intrepreter)、ipa-debug(ipa-debug-interpreter) パッケージは、swf の debugオプションtrueでコンパイルしていなければいけない。
※Adobeのサイトにはipa-debugについてしか言及していないが
、ipa-testでもそうだった。
参考
Adobe AIR * iOS パッケージ
ANTを使用したiOSパッケージ
Packaging AIR application for iOS devices with ADT command and ANT script at The Space For App Developers
Native Extension for Adobe Air and IOS 101 « « Liquid-PhotoLiquid-Photo