AppStoreに出品してるのにハマった。。。
Distributionのビルドできない
Android のアプリ公開がどんだけ楽か思い知った1日でした(苦)
キャプチャーとる余裕もなかったですが、コード署名認証の失敗です。 Application Loader でアップして気づきました。
Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)
AppStore用のビルド構成作って、クリーンしてビルドしたのにダメです。 あと、以下のエラーも時折。
Code Sign error: The default keychain doesn't have an identity matching the profile 'アプリ名' and identity 'iPhone Developer'
まず、色んなとこ参考にした。 ・アプリ申請エラーの解決法「Application failed codesign verification. 」 ・はまりポイント解説付き iphone adhoc ビルドの方法 ・iPhoneアプリ申請時にハマったところ
これはまず基本中の基本。 Distribution用証明書がなければ、実機テストの証明書同様にキーチェンアクセスで証明書をリクエスト。 自分も証明書は有効になってたので、本来は問題無いはずだった。
Distribution用の証明書を作成した秘密鍵が本当に有効になっているか? 気づいたら証明書がゴチャゴチャになっていた。 証明書の期限が切れかかってたのを理由に、この際整理して作り直しました(Revoke)。 ここでさらにハマったのが、
証明書や鍵がキーチェンから削除できない!
そんなときは、Macを再起動しましょう。いや本当に、再起動したら削除できました。 何かのアクセス権減の関係でしょうか?
有効な証明書の状態で、Distribution用の Provisioning Profilesを作成しないといけない(と思う)。 尚、 Provisioning Profiles が作成でいるってことは App ID があるという事なのでここは割愛。 自分は新しく証明書を作成したので、Provisioning Profiles の再作成した。 次は Provisioning Profiles のインストールと設定だ。
.mobileprovision ファイルをダウンロードしたらダブルクリックでインストールされる。 確認はオーガナイザと実際のパスを見ればいい。
/Library/MobileDevice/Provisioning Profiles/
Developer用の Provisioning Profiles とは違って、自分の実機にもインストールできなくなっている。 申請者本人なら、実機インストールできると思っていたが。。。 よって、基本はビルドできたかどうかだけ判断すれば良い。
恐らく、ここが一番ハマってしまうところかも知れない。 理屈をしらない自分は、手当たり次第だったが少しずつ理解してきた。
まず、Debug、Release、申請用のビルド構成を3つ設定する。 デフォルトは、Debug、Release、だから申請用ビルドは、Releaseを複製する。 このやり方は、あくまでも通例。 ポイントは、 Distribution用Provisioning Profiles や Bundle identifier が申請用に設定されて、 キレイにビルドすれば終わりという簡単な話です。簡単な。。。
プロジェクトのビルド設定を何度も何度も見直して設定し、クリーンビルド、クリーンビルド。 そして「Application failed codesign verification」です。 そんな時は、グループとファイル > ターゲットをダブルクリックして確認。 これ、プロジェクト > プロジェクト設定を編集 と一見同じ画面ぽいけど、実は違ったりする。 普通はターゲットのビルドはいじらないはずだけど、結果的にターゲットからCode署名を設定したらうまくいった。
プロジェクト名と App ID が一致できなかったのが災い
ドメインに合わせようと、プロジェクト名はそのままでアプリ名を変えようと。。。 はい、失敗です。
プロジェクト名と 申請する Bundle identifier 一致させた方が混乱しない
ユーザに見えるアプリ名は、info.plist > Bundle display name で設定できるので未練を持たない事w プロジェクト名と Bundle identifier を一致させないと、システム側でエラーになるかと思われます。 なら、プロジェクト名を変えよう!と思いましたが、DB絡みの設定があって断念しました。
以上、とりあえずざっとなぶり書き。
ちなみに、iTunes Connect や Application Loader とかはスムーズにいきました(英語文章以外・・・)