Appleへのアプリ申請のため、Provisioning Profile をXcode に設定して、Archive の後、App Store Connect (旧 iTunes Connect) にアップロードします。
- 概要
- iOS Certificate の作成手順
- iOS App IDs の登録
- Provisioning Profile の作成
- アプリ申請のためXcodeでアップロードする ⬅︎
- App Store Connect にアプリ情報を登録して申請する
アプリのArchive, upload
アプリの開発が終わったのでほっとしてはいられません。
最終的にApp Store Connectにアップロードさせるのはそれなりに色々な手続きと、意外なエラーが待っています。
このあたりのスケジューリングを甘くみるとはまりますね。
Bundle ID
Xcode を起動して project の「TARGETS」に最初のバージョンであれば
例えば以下のようにします。
- Bundle Identifier: com.example.HelloWorld
- Version: 1.0.0
- Build: 1.0.0
Bundle Identifier:
これはApp Store Connectで作成した(作成する)ものと同じでないと
この後の Archive -> Validate でエラーになります。大文字小文字も注意です。
(以下の2つは異なります!)
com.hoge.Hage
com.hoge.hage
Version number:
最初なので、1.0.0 とします。バージョンは xx.yy.zz のように記述することが推奨されています
「版番号は、正の整数を3つ、ピリオド区切りで並べた文字列で、たとえば「4.5.2
」のような形になります。それぞれ、メジャーリビジョン、マイナリビジョン、メインテナンスリリースを表す番号です。」
Ref:アプリケーションを配布するためのXcodeプロジェクトの設定
このVersionとBuildは必ずしも同じである必要はありません
(連番でないとエラーになりますが)
例えば、RejectされたときVersionは許可されるまで同じですが
Buildはインクリメントしていくことになります。
申請 | 1回目 | 2回目 | 3回目 | VersionUp | … | |
Version | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.1 | … | |
Build | 1.0.0 | 1.0.1 | 1.0.9 | 1.0.10 | … | |
結果 | Reject | Reject | Accept | Reject | … |
アップロードして申請前にバグに気が付いて
再度ビルドしてアップするためにはBuildバージョンを上げないといけません
アプリとしてバージョンアップするときにVersionを上げます
Team:
Team には開発者登録されている Team 名を選択
Code Signing
以前はCode Signingを設定していましたが、むしろ何もしないほうがうまくいきます。
マニュアルで設定できないことはないようですが、相当悩みます。(今までそうでしたが…)
新規 iOS App の登録
App Store Connect にアプリを簡単に登録します。これをしないと途中でエラーになります。
かといって、App Store Connect はアップロードがないと完成させれられないので、ここではあくまで初期登録だけです。
Safariで、App Store Connect にアクセス(Chromeでもできますが推奨ではないですね)
あるいは iOS Dev Center から Members Center に行き、そこから「App Store Connect」に入れます。いずれも Apple ID と password が必要です。
「App Store Connect」にある「マイ App」をクリック
またデザインが一新されました。名前も一部変更になりましたが、これはしょっちゅうなことので、仮にこの画像と異なっていても大筋は変わりません(たぶん)
「+」ボタンで「新規 App」をクリック
以下のように記述して作成します。重複する名前があると変更しないといけません。
つまり、Xcodeで仕様を決める段階でこのアプリ名は通るのか確認、できれば先にApp Store Connectに設定した方がいいかもしれません。
- 名前
- アプリの名前
- プライマリ言語
- 全世界的に海外にも公開する場合は、英語(アメリカ)などで設定し、それ以外で国ごとに日本語などの選択をするのがベター。なぜなら日本語をプライマリにすると海外対応での言語が日本語になってしまう。日本のみを特定した場合はもちろん日本語で問題ありません。
- SKU
- いわゆる在庫管理番号なので、自分で管理できるようにするだけ
- Bundle ID
- Xcode で設定している Bundle ID と同じです。App IDで設定していないと候補が出てこないので注意
すべて記入したら作成ボタンをクリック
これでとりあえずArchiveへ進めます
Archive
Xcode に戻ります
ビルドが成功していて、実機でも動作確認ができていると思いますが、必要なアイコンを設定してないと、これ以降でエラーとなりますのでアイコン設定を確認してください。
Simulators, Deviceの選択で「Generic iOS Device」を選びます
あるいは、「Product」「Destination」「Generic iOS Device」としてもできます。
「Product」「Archive」を実行します。
Archive が成功するとリストアップされます
次は「Validate App」を実行します。
以下はいくつか確認事項が出てきますので指示に沿って進めます。
App Store distribution options からそれぞれ選択して「Next」
Re-signの場合のオプションを選ぶ、
例えば Provisioning profile を変更した場合などManualで合わせないとエラーになることもあります。
パスワードを求められます。通常はこのMacへのログインパスワードですが
パスワード入力後は「常に許可」をクリックします。
アプリの情報が表示されるので「Validate」を選択
「App “〇〇〇” successfully validated.」となれば成功です。
upload
次は、「Distribute App」ボタンをクリックします
Select a method of distribution: これからリリースするのであれば
「iOS App Store 」を選択します。
Select a destination: Upload か Exportを選びます。
App Store distribution options: を選択して「Next」
Re-signの場合
アプリの情報が表示されるので「Upload」を選択
Uploading が始まりますが、この後は多少時間がかかります
成功です。「Done」
ビルドの確認
でビルドがアップロードされていることを確認します
マイApp で先に登録したアプリを開き
「ビルド」の項目を探します(反映されるまで何時間もかかることがあります)
古いRejectされたビルドが残っているときは消さないと新しいものが見えません
「+」をクリックしてビルドを追加します。
ビルドがアップされていないと「+」は現れませんが最近はメールでお知らせしてくれようになったようです!
ビルドを選択して「終了」ボタンをクリック
ビルドが追加されました
この次は App Store Connect にアプリ情報を登録 です
Errors
buildができていて申請まですぐにできると思うと色々はまってあせります。
アップロードまでのエラーを集めました。
- conflicting provisioning settings
- Unable to lookup the settings for submission
- iTunes Store operation failed
- Missing Provisioning Profile
conflicting provisioning settings:
ArchiveでFailしてエラーとなる。
[Your App Name] has conflicting provisioning settings. [Your App Name] is automatically signed for development, but a conflicting code signing identity iPhone Distribution has been manually specified. Set the code signing identity value to “iPhone Developer” in the build settings editor, or switch to manual signing in the project editor. Code signing is required for product type ‘Application’ in SDK ‘iOS 10.2’ |
推定原因: 「Target」「Build Settings」「Signing」あたりで「Code Signing identity」などをDistributionに変更したりすると起きる。昔はここを設定しないとArchiveできなかったのですが現在はそのままにしておいたほうがいいようです。あるいは、エラーにもあるように完璧にマニュアルで設定する。
Unable to lookup the settings for submission:
Archive後に「Validate」すると起きる
推定原因: Projectの「Bundle Identifier」とApp Store Connectの一般情報にある「バンドル ID」が一致していない等。general errorなので他にも色々あるかもしれません。
そもそもApp Store Connectにアプリの情報ページを作っていないとこのエラーになります。
iTunes Store operation failed:
Archive後に「Validate」すると起きる
iTunes Store operation failed. Unable to process app at this time due to a general error |
iTunes Store operation failed. Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly ‘120×120’ pixels, in .png format for iOS versions >= 10.0. |
原因: iconが正しく設定されていないためです。たくさん設定するアイコンがありますから、もう一度見直しましょう。
iTunes Store operation failed. Invalid Image Path – No image found at the path referenced under key ‘CFBundleIcons’: ‘AppIcon20x20’ |
原因: これはそもそもiconが無いということです。
iTunes Store operation failed. Redundant Binary Upload. There already exists a binary upload with build ‘1.0.0’ for version ‘1.0.0’ |
原因: 書いてある通りで既に同じbuildがあると言っているわけです。
リリースする前に何度もアップロードする場合は「Build」を1.0.0 -> 1.0.1 ->1.0.2 とインクリしないと受けてもらえません。ただしこの場合「version」は同じです。
Version 1.0.0
Build 1.0.3
と言う具合になります。アプリとしてはあくまでVersionが表示され、Buildはユーザーには見えません。
Missing Provisioning Profile:
Archive後に「Validate」すると起きる
原因: Provisioning Profileが切れている、新しく作成していない、新しく作成したが反映されていない。
無いのであれば作成するだけですが、反映されていない場合はRe-signの選択でManualにして作成したprofileを反映させる。
- 概要
- iOS Certificate の作成手順
- iOS App IDs の登録
- Provisioning Profile の作成
- アプリ申請のためXcodeでアップロードする
- App Store Connect にアプリ情報を登録して申請する
Reference:
アプリケーション配布作業の流れについて