AppStoreへアプリを登録する際に、嫌というほど目にする以下のエラー
The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate
基本的にはCodeSign系のエラーですが、その他のエラーもすべてこれで帰ってくるもよう。
Webで調べたら以下のような症状があった。
・Developerの証明書でビルドしていた
・Distribution or Provisioningの証明書の有効期限が切れていた(それぞれ別の有効期限になるので注意)
・Info.plistのBundle identifierが登録した内容と違っていた
・プロジェクト>アクティブターゲット"あぷり名"を編集>プロパティ>識別子 がInfo.plistのBundle identifierと一致しなかった(基本的には同期するはずなんだけども・・・)
・アイコンファイルのサイズが57x57ではなかった、また24bitでなかった(これに結構ひっかかってた・・・24bitのPNGでもMacのプレビュー>インスペクタではビット深度8と表示される)
・コード署名IDの設定を、プロジェクト>プロジェクト設定を編集 から行った(必ず、アクティブターゲット"あぷり名"を編集 から行った方が良いです)
Xcodeのビルドは基本的に差分ビルドなので、Distributionの場合は毎回クリーンした方が良いです。
そして、Xcode自体にもなんやらキャッシュっぽい感じで設定が残るようです。
公式にもありますが、いったんCodeSignをはずして、クリーンしてフォルダも消して、Xcodeを再起動してCodeSignを当てなおすとうまく行くとかあるようです。
で、色々やった結果全部だめだったので途方にくれていたのですが、ふと使用しているライブラリのCodeSignとかどうなるんだろと思って調べたら、これがビンゴでした。
cocos2dとjson-frameworkを使ったのですが、cocos2dは特に設定無しで問題ないもよう。
json-frameworkでは、2.2の頃にCodeSign系のなんやらがあったようで、以下の設定をすると良いとの事でした。
「アクティブターゲット"あぷり名"を編集」から「コード署名リソース・ルールパス」に、$(SDKROOT)/ResourceRules.plist を入力
説明には「ビルド実行可能ファイルのコード署名後に変更する有効な理由のあるファイルを除外するために、オプションで使用されます」とありますので、なんかの理由があるんでしょ、きっと。
2.2の頃の話+AdHocや実機デバッグでは問題なく動いていたので、マサカネーと思いつつアップしたらあっさりと通りました(><)
そんなわけで、転職しましてWebプログラマじゃなくなっていたりします。(Webアプリも書いていますが・・・)
無料アプリなので審査が通ったら公開致します :)
0 件のコメント:
コメントを投稿