【忘備録】PhoneGap2.9.0 + Xcode4.6.3 でarchiveしようとしたらエラー

しょうもないiPhoneアプリがある程度完成したので、AppStoreに登録してみるかと思ったわけですが、まず登録用のバイナリの吐き出し方が分からない。

調べたところ、どうやらXcodeで[Product]-[Archive]を実行すればいいらしいと判明したため早速実行。(※前提条件として本番用のProvisionigプロファイルは生成済みです。)

しかし、PhoneGap2.9.0 + Xcode4.6.3でarchiveを実行したところ以下のエラーが発生。※既にPhoneGap3.0がリリースされているのでバージョンアップ後は関係無いかもしれません。

〜/Applications/libCordova.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

事前にBundle identifierを変更したのでそのせいかとも思ったがググったら以下の対処法を発見。

phonegap v2.9でxcodeの4.6のリリースのために、アーカイブを構築できない

↑恐らくどこからかの転載である上に日本語訳がすげー怪しいが気にしない。

上記のURLを参考に修正を実施。以下の手順で書き換えを行えば良いらしい。もっとも参照元では以下の手順だけでは上手く行かなかったようですが。

Found a fix.

    1.In your Target's Build Settings,
      find Other Linker Flags
    2.Change $(TARGET_BUILD_DIR)/libCordova.a
    3.To $(BUILT_PRODUCTS_DIR)/libCordova.a

図解すると以下のような感じで修正を行う。

この状態で再度[Product]-[Archive]を実行したところ上手く行った模様。

しかし、参照元サイトでは以下の気になる一文が・・・

With the above trick, I can achieve the app and submit to App Store with no issue. But I found out in the iTune Connect that it shows "Invalid binary".

App Storeにsubmitは出来たけどInvalid binaryで突っ返されたって書いてあるんだが大丈夫なんだろうか。

一応、上記の手順でバイナリを作成後、苦行に近い行程を経てなんとかAppStoreに申請しました。何かあればまた次回。

IT起業アカデミア