[iPhone] アプリ申請のためXcodeでアップロードする

Appleへのアプリ申請のため、Provisioning Profile をXcode に設定して、Archive の後、App Store Connect (旧 iTunes Connect) にアップロードします。

  1. 概要
  2. iOS Certificate の作成手順
  3. iOS App IDs の登録
  4. Provisioning Profile の作成
  5. アプリ申請のためXcodeでアップロードする ⬅︎
  6. 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で設定していないと候補が出てこないので注意

    ss2016-11-23-16-40-04

 

すべて記入したら作成ボタンをクリック
これでとりあえずArchiveへ進めます

 

Archive

 

Xcode に戻ります
ビルドが成功していて、実機でも動作確認ができていると思いますが、必要なアイコンを設定してないと、これ以降でエラーとなりますのでアイコン設定を確認してください。
 
Simulators, Deviceの選択で「Generic iOS Device」を選びます
 

 

 
あるいは、「Product」「Destination」「Generic iOS Device」としてもできます。
 
ss2016-11-23-17-19-08
 
「Product」「Archive」を実行します。
 
ss2016-11-23-17-24-08
 
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 Store Connect

でビルドがアップロードされていることを確認します
マイApp で先に登録したアプリを開き
「ビルド」の項目を探します(反映されるまで何時間もかかることがあります)
古いRejectされたビルドが残っているときは消さないと新しいものが見えません

「+」をクリックしてビルドを追加します。
ビルドがアップされていないと「+」は現れませんが最近はメールでお知らせしてくれようになったようです!
 


 
ビルドを選択して「終了」ボタンをクリック
 

 
ビルドが追加されました
 

 
この次は App Store Connect にアプリ情報を登録 です

 

Errors

 

buildができていて申請まですぐにできると思うと色々はまってあせります。
アップロードまでのエラーを集めました。

 

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を反映させる。

 

  1. 概要
  2. iOS Certificate の作成手順
  3. iOS App IDs の登録
  4. Provisioning Profile の作成
  5. アプリ申請のためXcodeでアップロードする
  6. App Store Connect にアプリ情報を登録して申請する

Reference:
アプリケーション配布作業の流れについて


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする