何も知識のない状態ではありましたが、作成したiOSアプリがレビュー審査に通過し、App Storeでダウンロードできるまでこぎつけました。しかしその過程では、申請手順の難解さやリジェクト理由のわかりづらさに大いに戸惑いました。長くはなってしまいますが、同じように悩まれる方もいると思いますので、僕が実際におこなった手順、またその際に気付いた注意点をまとめます。
iOS8が出る前と出た後では手順が変わってしまっているし(この記事を書いたのは2014年12月中旬)、そもそもAppleが明確なマニュアルなどは出していない(出していても英語)ため、あらゆる事が「わからない」「わかりづらい」といった落とし穴だらけでした。
iOSアプリは審査がどの程度で終るかもわからないため、余裕を持って望んだ方が良いですよ。。。えらい目に遭いました。
iOSデベロッパープログラム登録からiOSアプリ実機テスト→レビュー申請→念願のApp Store公開まで
iOSアプリをAppStoreで公開するにあたり、デベロッパー登録が必要となります。
登録までの手順と必要なものをピックアップしていきます。
iOSデベロッパープログラムに登録する
まず個人か法人かで必要なものが違います。
【個人】
- 法的な氏名と連絡先情報。登録した法的な氏名が App Store 上で「販売者」として表示されます。
- 購入用の有効なクレジットカード。
- ご本人であることを証明する追加的な本人確認書類の提出をお願いする場合があります。
【法人】
- Apple Developer Program の法的な契約書に対して企業/組織を拘束する法的権限。
- 登録された法人名。この法人名が App Store 上で「販売者」として表示されます。DBA、架空事業名、商号、支店名は受け付けておりません。
- 企業の主要な事業所または本社の住所。
- 法人に割り当てられた D-U-N-S Number。詳しくはこちら。
- 購入用の有効なクレジットカード。
引用:Apple
個人は特に難しい事は無いかと思います。
ただ、法人は面倒です。
法人登録はD-U-N-S Numberがくせ者
僕の場合は、法人での登録でした。
まず、「D-U-N-S Numberって何者?」ってところで思い切り戸惑ってしまいました。
D-U-N-S Numberは下記から検索できます。
僕の場合はこの時点で検索に会社がでてきました。
ここで出てこない場合登録申請しなくてはいけません。そうなると若干時間を要するはずです。
申請は https://developer.apple.com/jp/support/ios/D-U-N-S.php より。
検索で会社名が出てきたら「DUNS」ボタンをクリックして、下記の手順でナンバーを取得します。
- 「本サービス使用許諾契約書に同意しますか?」と聞かれるので「同意する」をクリック
- 「自社の D-U-N-S® Number を取得する (無料)」にチェックを入れ、申請者情報を入力して「確認」をクリック
- 先程入力したメールアドレス宛にメールで登録情報とDUNS番号が送られてくる。僕の時は1時間程で届きました。
メールで送られてくる情報には当然D-U-N-S Numberは含まれていますが、大事な情報はD-U-N-S Numberだけでなく、英語の企業名と住所が登録の際に必要になります。
※企業名は株式会社だとK.K.となっている場合が多いかと思います。僕はこのまま進めましたが、AppStoreに表示される名称でもあるため、inc.などに変更したい場合はDeveloper登録後には会社名は変更できないのでこの段階で変更してもらう必要があります。
変更には2週間ほどかかるようです。
必要な情報が揃ったらiOS Developer Programsに登録
まず、Apple IDを作成します。
https://appleid.apple.com/account?localang=ja_JP#!&page=create
Apple ID作成後、下記にアクセスし登録を始めます。
https://developer.apple.com/jp/programs/enroll/途中ログインを求められるので先程作成したApple IDでログインして続けます。
企業の場合は会社・組織として登録、個人の場合は個人を選択して進めます。プロフィールの入力
全て情報は英語で入力していきます。
法人での登録の場合登録している人物が法的権限がある者か、従業員からの申請か聞かれるので、僕は従業員を選択して進めます。
法的権限がある者と、担当者の氏名を書く欄があるので、担当者に自分の名前を記入し、法的権限がある者に上司の名前を入れました。企業名も入力していきますが、この企業名がAppStore上での販売者となります。
D-U-N-S Numberが送られてきた際に記述のあった英語の会社名を入力します。
違いがある場合、エラーとなります。
D-U-N-S Numberもここで入力します。プログラム選択
iOS Developer Programを選択します。
内容確認
内容が問題なければそのまま進めます。
企業審査
この段階でデベロッパープログラム申請状態になり、企業審査に入ります。
僕の場合は4日程でAppleより上司宛てに電話がきました。
内容は担当者(僕)が会社の者であるかの簡単な確認でした。その後、僕宛に電話がきて、その電話中にAppleが承認のメールを送ってくれました。iOS developer program メンバーシップの購入
企業審査完了時にAppleから送られたメール内のリンクから、購入を進めます。
※MacでSafariを推奨されました。カード情報を入力して、年間 ¥7,800 (税別)で購入となります。
レビュー提出前にiOSアプリを実機でテストする
※Xcode 7からiOS Developer Programsの登録無く、また、この項で説明するテスト機の登録もいらなくなります。
制作したiOSアプリを実機でテストするには、開発者の身元をAppleに対して証明し、実機をiOS Developer Program側にテスト機として登録していかなければなりません。
証明書発行から実機登録・テストまで
証明書を作成
まずはMacで証明書を作成します。
アプリケーションのキーチェーンアクセスを起動します。起動後にプルダウンメニューのキーチェーンアクセスから証明書アシスタント内の認証局に証明書を要求を選択します。
証明書アシスタントが立ち上がるので下記のように入力します。
・ユーザのメールアドレス → Apple IDのメールアドレス
・通称 → アプリ名等
・CAのメールアドレス → 空欄
・要求の処理 → ディスクに保存と鍵ペア情報を指定を選択続けるをクリックすると保存ダイアログがでてきます。
保存で進めます。鍵ペア情報の選択になります。
・鍵のサイズ:2048ビット
・アルゴリズム:RSA
として続けるをクリックします。
これで証明書が保存されます。iOS Developer Programから証明書をダウンロード
次にiOS Developer ProgramにMacの証明書を渡し、Appleからの証明書を発行してもらいます。
https://developer.apple.com/jp/
まず下記にアクセスし、ログインします。ログイン後、右カラムにあるCertificates, Identifiers & Profilesをクリックします。
iOS AppsのCertificatesをクリックします。
iOS Certificatesの右にあるプラスボタンをクリックします。
今回は開発なので、DevelopmentからiOS App Developmentを選択して進みます。
その後Macで作成した証明書を要求されるのでアップロードすると、新たに証明書をダウンロードできるようになりますのでダウンロードします。
ダウンロード完了後、ダウンロードした証明書ファイルをダブルクリックします。
キーチェーンが起動して証明書が登録できます。
これで証明書の登録は完了です。
実機をテスト機としてiOS Developer Programに登録
次に実機をiOS Developer Programに登録していきます。
先程のiOS Developer Programの画面から、Devicesを選択します。iOS Devicesの右にあるプラスボタンをクリックします。
実機の登録画面になります。
Nameには任意の名称をいれます。
UDIDには実機の個別識別IDを登録します。【実機の個別識別IDの取得方法】
アプリケーションからXcodeを起動し、メニューのウインドウからオーガナイザを開きます。
この時、実機をPCにUSBなどで接続します。
DEVICESに接続した実機が表示されるのでクリックすると、その実機の情報が表示されます。その中のIdentiferという情報が個別識別IDになります。App IDを作成する
iOS Developer ProgramからApp IDsをクリックします。
iOS App IDsの右側にあるプラスボタンをクリックします。
Nameはアプリ名などを入力します。
Explicit App IDのBundle IDには固有IDを入力します。ドメイン名を逆さにしたものが推奨されています。Provisioning Profileを作成する
iOS Developer ProgramからProvisioning Profilesをクリックします。
iOS Provisioning Profilesの右側にあるプラスボタンをクリックします。
ここでは開発なのでDevelopmentからiOS App Developmentを選択して進めます。
先程作成したApp IDを選択して進めます。
先に作成した証明書を選択します。
最後に登録されている実機が表示されるのでテストしたい実機にチェックをいれて進めます。
この後プロビジョニングファイルがダウンロードできますので、そのファイルをダブルクリックするとXcodeに登録されます。アプリをXcodeで立ち上げて実機で起動する
アプリをXcodeで立ち上げます。
中央のエリアからCode Signing IdentityとProvisioning Profileを設定します。
中央の項目のBuild Settings > Code Signing へ移動し、Code Signing IdentityとProvisioning Profileを設定します。
※BasicとAllの選択はAllにしていないとCode Signingは表示されないので注意!この段階で、実機をmacに接続し、ビルド先を該当の実機に変更し、ページ左上の再生ボタンを押下すれば、実機で確認できます。
長い道のりでした。
でも実機でアプリが動くのを見るとテンションあがりますよね。
ビルド時にエラーが起きた場合
僕はビルド時にエラーがでてハマりました。
僕が直面したエラーとその対処法を書いておきます。
『Bandle Identifier』が一致していない
iOS Developer Programで設定したApp IDの『Bandle Identifier(App ID Suffix)』と、プロジェクトのGeneral→Identity→Bandle Identifierの値は同じでなくてはいけません。
相違がある場合、下記のエラーがでます。
Code Sign error: Provisioning profile '[プロファイル名]' specifies the Application Identifier '[App ID 作成時に設定したBandle Identifier]' which dosn't match the current setting '[プロジェクトに設定された Bandle Identifier]'
対応としては、iOS Developer Program側で設定したBandle IdentifierにプロジェクトのBandle Identifierを合わせる形になるかと思います。
これはGeneral→Identity→Bandle Identifierからは固定されてしまっていて変更ができない場合は、Info→Custom iOS Target Properties→Bandle Identifierを確認し、${PRODUCT_NAME}が入っていた場合はその部分を直接変更することで対応可能です。
『Provisioning profile』が見つからない
下記エラーがでます。
Code Sign error:Provisioning profile '****************************' can't found
この場合はProvisioningファイルをダブルクリックし直すことで解消されることがあります。
上記以外のエラーの場合
証明書関連はハマるとかなり時間を要します。
上記以外のエラーの場合は、素直にプロビジョンファイルの作成までの手順をやり直すことで解消されることがほとんどでした。手間ではありますが、そちらのほうが逆に時間がかからないこともあると思います。
iOSアプリをレビュー申請する
ついに最終段階、レビュー審査に申請します
Xcodeでプロジェクトを開く
Xcodeが立ちあがったら、中央のエリアからRelease用のCode Signing IdentityとProvisioning Profileを設定します。
中央の項目のBuild Settings > Code Signing へ移動し、Code Signing IdentityとProvisioning ProfileのRelease部分を設定します。
※BasicとAllの選択はAllにしていないとCode Signingは表示されないので注意!設定するCode Signing IdentityとProvisioning Profileは、開発時と同じ手順でiOS Developer Programで取得します。CertificatesはProduction、Provisioning ProfileはDistributionとして取得します。
中央エリアの General > VersionとBuildを設定する
次に、実機の接続を解除し、機器の部分を「iOS Device」に設定します。
メニューバーから Product > Archive をクリックします。
アーカイブが完了するまでしばらく待ちます。
アーカイブが終了するとOrganizerが自動的に開かれますので、『Validate…』ボタンを押下します。
Team provisioningの選択をして進めます。
成功すると下の画像のような画面が表示されます。
Doneとして、『Submit…』ボタンをクリックします。
Team provisioningの選択をして進めます。
成功すると下の画像のような画面が表示されます。
これでiTunesConnectからビルドを選択できるようになります。ちなみに僕はTeam provisioningが認証されていないとのエラーに直面し、色々調べて試した結果、最終的に証明書作成からProvisioningファイル作成までの行程をやり直してビルドしたところ成功しました。
iTunesConnectにサインインする
マイAppを選択する
アップデート申請対象のアプリを選択する
アプリを登録していない場合は、ページ左上にある+ボタンを押して新規iOSアプリの作成をします。
必要情報を入力します。
※プライマリ言語は英語にすることをおすすめします!
理由は下記をご覧ください。https://www.islog.jp/entry/appstore-localize/
アプリを選択します。
アップロードしたビルドを選択する
プレリリースに移動します。
先程ビルドしたものが表示されているか確認します。表示されていない場合は少し待ってページをリロードしましょう。
バージョンに移動します。
画面下部のほうに “ビルドを追加するには「+」をクリックします。” とありますのでクリックします。クリックするとどのビルドを追加するかのポップアップが表示されます。
ここで該当ビルドを選択して終了ボタンを押します。
ビルドが正しく選択できていることを確認したら、ページ右上にある「保存」ボタンをクリックします。
レビュー審査を申請する
App Storeに掲載されるようにするために、レビュー審査を申請します。
まずはビルド以外の情報を入力していきます。
下記URLが参考になります。
http://qiita.com/knife0125/items/5b2fa28d651c5f4de52e入力し終わった後、ページ右上の「レビュー審査のために送信」ボタンをクリックします。
IDFAの情報を選択するページになりますので、アプリの内容に合わせて選択します。
アプリのステータスが「レビュー待ち」になります。
Appleから「Your app status is Waiting For Review」のメールが届けば申請完了となります。
アプリを申請した後のリジェクトへの対応
iOSアプリの申請で苦労されている方々の情報を調査している中で散々見ていたので、そう簡単に審査に通るとは思ってはいませんでしたが、実際難しいどころか何を直せば良いのか検討もつかない状態になりました。
結果、7回のリジェクトを食らうこととなりました。
リジェクト理由やその対応などを下記にまとめます。参考になれば幸いです。
レビュー審査にかかる時間
レビュー審査にかかる日数は下記サイトからある程度わかります。
https://developer.apple.com/jp/distribute/app-review/
ちなみに僕の場合は、
- レビュー待ちからレビュー中になるまで ⇒ 4〜7日
- レビュー中から結果が通達されるまで ⇒ 即日〜5日
でした。
最大2週間はかかった形です。
レビュアー宛てのメモ
レビュー申請する際の項目に、レビューにあたってのメモを書けるようになっています。このメモをしっかりと書くことが大事です。
相手はアプリを毎日見ているのだから大丈夫だろうと考えてちゃんと説明をいれておかないと、表面だけ見られて「機能不足」とリジェクトしてきたりします。
見てもらいたいところはちゃんと手順をメモに書いておきましょう。英語と日本語両方で書いておきます。
また、僕は英語で伝わるか不安な部分の説明は最終的には資料にして見せました。レビュー時のメモには添付できないので、サーバに資料を置いておいて、そのURLをメモに書いておきました。
資料を見せ始めてから、リジェクト時の指摘が具体的になっていったのは確かです。
Resolution Centerでのやりとり
リジェクトされた後は、Resolution Centerというレビュアーとやりとりができる掲示板のようなものができます。ここに、レビュアーからもリジェクトした理由が書き込まれます。
ですが、レビュアーからの書き込みは基本的に定型文であり、抽象的なものばかりでした。
抽象的な状態では修正対応ができないというのは作り手として当然の考えだと思いますが、会社などでは早急な対応を迫られる場合があると思います。例に漏れず僕もそういう対応を求められ、想像で修正をおこない再申請しましたが、ほぼ同じ内容でリジェクトされました。
指摘内容が具体的に分からない場合は、時間が無くても質問をして具体的な指摘を引き出す事をおすすめします。内容を想像して対応しても、リジェクト回数が増える一方だと思います。
Resolution Centerでの質問には、1〜3日で返答がありました。その返答も抽象的な部分を残してコメントしてきますが、質問する前よりは修正する箇所が明確になると思います。
また、異議申し立てをResolution Centerでおこなったときは、再度レビューがおこなわれ、指摘内容が変わって返ってきたこともありました。
※この時はレビュー中になって五分後にリジェクトになっていました(笑)ちゃんと見てるのか疑わしい。
ちゃんと見ていないな、と思ったら、その箇所を確認するための手順を資料にして添付して、Resolution Centerから再度見て欲しいと伝えた方が良いです。
ちなみにこちらもやり取りは英語と日本語両方書いていました。デベロッパプログラムサポートセンターに問い合わせて、レビュアーに日本語がわかる人がいるのか聞いてみたところ、「レビューチームは特別なチームなので、私どもにも何もどんなスタッフがいるのかもわかりません」と言われてしまいました。
他の似ているアプリとの比較
当たり前のことではあるのですが、この工程がとても大事だと最終的に気付きました。
なぜなら、似ているアプリたちは審査に通過しているからです。
リジェクトされて問題とされている点が、審査に通過しているアプリだとどうなっているか探れば、自ずと対応方針が決まっていきます。
他アプリと同様の対応をとってリジェクトされた際は、そのアプリのURLと共にResolution Centerから不服申し立てをするのも手です。
Appleとやりとりをした結論
Appleは忙しい。だからあまり見てくれない。だからほとんど情報もくれない。それでもしつこく聞くべきだ。審査に通る方法を知っているのは、彼らだけだから。
急いで公開したいときの対処方法
一定の条件下では特急審査申請が可能です。
詳しくは下記をご覧ください。
アプリが申請に通った後の対応
審査を無事通過し、アプリのステータスが『販売準備完了』になったらひとまず大喜びして、その後に、配信開始日と価格帯、App Storeでアプリが表示される国を選択しましょう。
ここで国の選択をしようとしたところ、表示がバグっていて国の選択が物理的にできませんでした。
サポートに確認したところ、言語でのバグとのことで、PC自体の言語環境を英語にして再起動して改めて該当ページにいったところ選択ができました(※2014/12/10時点 日本語対応は対応は進めているのですが〜といった感じでした)
Appleジャパン・デベロッパプログラムサポートセンター
0120-933-388
配信開始日になると、App Storeからアプリがダウンロードできるようになります。
お疲れ様でした!
【2015年10月 追記】
iTunes Connectに新機能の追加とアップデートがされたようです。
ぱっと見、大きく変化が見られたのはApp管理画面のレイアウト。左カラムができてサブメニューとなっておりました。
混乱するので、突然変えないでいただきたいものです。
コメント