2014年10月24日金曜日

iPhoneアプリを公開するために行った10のコト

enter image description here

概要

iOSアプリを公開するための手順を自分なりにまとめてみました
新しくなったiTunesConnectやMemberCenterといろいろと必要な要素が登場してきます
一応、上から順を追って記載しますがそれぞれ単発で見てもOKかと思います

所感としては、Androidの10倍は大変でした。。
たぶん慣れてる人は簡単にできると思うのですが、自分みたいな素人だと結構たいへんかなと思います

環境

  • Xcode5.1.1
  • Mac OS X 10.8.5

やった10のコト

Xcodeでのアプリ開発

言わずもがな
ほとんどのデベロッパーの方はまずAppleStoreからXcodeをダウンロードしてアプリを作成してシミュレータで動作確認して、なんか公開しようかなーと思っていろいろとやりはじめると思います
自分はそうでした
そしてここからが苦難の連続でした

AppleDeveloperProgramへの参加

年間8,000円弱をAppleにお布施することで得られるアプリ公開権利です
やり方はネットで探せばいろいろと出てくると思います
お持ちのAppleAccountを使って登録すると思いますが、途中でカードの情報とか請求先情報とか入力しました
すでにAppleAccountにそういう情報が登録されている場合は不要になるかもしれません

DeveloperProgramの登録でつまづいたのが「アクティベーション」でした
DeveloperProgramに参加すると参加者だけが使える管理画面(MemberCenterやiTunesConnectなど)があるのですが購入したら速攻使えるわけではありません
所謂、アクティベーション作業が必要でWebでいろいろ調べる限りだとアクティベーション用のメールが来て、そこに書かれているコードを専用のフォームに入力すると完了、という感じらしいのですが一向にメールが来ませんでした。。。
StackOverFlowとかで調べてみると同じようにメールが来ない人がいて、その人はメールアドレスを変更したいという問い合わせして解決しているようでした
自分もいつまで経っても(と言っても半日くらい)アクティベーションされなかったので、英語で問い合わせしたところどうやらメール方式でのアクティベーション方法は廃止されたようで、自動でアクティベーションされるようです
1日1回くらいのタイミングでアクティベーションされるようで、購入したちょうど24時間後くらいのタイミングでMemberCenterを確認したところアクティブ状態になっていました
自分が短気すぎて半日で問い合わせしてしまってすいませんでした。。。
ちなみにアクティベーションされているかどうかはMemberCenterのYour Accountにログインすれば確認できると思います

キーチェーンアクセスを使ってCSRを作成する

CSRはCertificateを作成するために必要なファイルです
これも作成方法はWebに転がっているので簡単に紹介すると

  • Spotlightでキーチェーンアクセスを起動
  • キーチェーンアクセス -> 証明書アシスタント -> 認証局に証明書を要求を選択、入力時のポイントは以下
    • ユーザのメールアドレスにAppleDeveloperとして登録したメールアドレスを入力
    • 通称は何でもOK
    • CAのメールアドレスは空でOK
    • ディスクに保存にチェック
    • 鍵ペア情報を指定にチェック
  • 保存先を選択して完了

保存が完了するとキーチェーンアクセスの鍵の一覧に表示されるようになります
保存したCSRはあとで使うので捨てないようにしてください

MemberCenterでCertificatesを作成する

MemberCenterとはアプリに必要な証明書やプロビジョニングファイルを管理するための管理UIです

まずMemberCenterで証明書を登録します
MemberCenterにアクセスして

Certificates -> All と選択して [+] ボタン

から新規でCertificateを作成します
作成するときのポイントはキーチェーンアクセスで作成したCSRを指定するところでしょうか
特につまづくとこはないと思います
自分はDevelopmentとProductionのそれぞれの証明書を作成しました

MemberCenterでAppIDを作成する

いきなりですが、
XcodeのBundle IDと同じBundleIDを持つようにAppIDを作成する
これポイントです
XcodeでBundleIDを確認するには

プロジェクトを選択して Targets -> General -> Bundle Identifier

で確認できます
例えばXcodeで確認したBundle Identifierが「kakakikikeke.testApp」だったとすると
MemberCenterでAppIDを作成するときにApp ID Suffixで以下のように入力します
enter image description here
見てのとおりですが、Wildcard App IDを選択してBundle IDにワイルドカード付きのIDを指定します

別にこれと同じにする必要な全くないですが、要するにここのIDがXcodeで設定したBundle Identifierと同じまたはワイルドカードで識別できるIDにしなければいけないということです

あとで説明もしますがここの設定がちゃんとできていないXcodeからiTunesConnectにうまくアプリを配布することができません
アプリを配布できない他、Validateという配布前にやる儀式みたいなやつもずっとエラーになってパニックになります
なので、BundleIDは意識して進めることをおすすめします

XcodeにMemberCenterの情報を同期してプロビジョニングファイルを自動生成させて、設定する

Xcodeを開いて

Xcode -> Preferences -> Accounts -> View Details で左下の更新ボタン

を押すと存在するAppID分Development用のプロビジョニングファイルを作成してくれます
そしてXcode上にMemberCenter上にある証明書とプロビジョニングファイル情報を同期してくれます

プロビジョニングファイル自体の作成は正直手動でやっても問題ないです
でもMemberCenterに行かなくてもXcodeからプロビジョニングファイルを作成することができる便利な機能なので載せました
あとそういう機能があり勝手にMemberCenterにプロビジョニングファイルが作成されるということを認識しておくことも大事かなと思います

また、アプリを公開するときはDistribution用の証明書でDistribution用のプロビジョニングファイルを作成する必要があります、これに関しては次で紹介します

MemberCenterでDistribution用のプロビジョニングファイルを作成

アプリを配布するためのプロビジョニングファイルをMemberCenterで作成します
作成するときのポイントは

  • Distribution -> App Storeで作成すること
  • AppIDの選択では、公開するアプリのBundle IDと同じAppIDを選択すること
  • 証明書の選択ではDistribution用の証明書を選択すること(ない場合はCertificatesから作成しておくこと)

といった感じです、名前は好きなモノを入力してください
証明書とプロビジョニングファイルは削除可能なのでミスったりしたら作りなおしてOKです
ただ、AppIDは一度作成すると削除することができません
おそらく(後述しますが)iTunesConnectで作成したアプリとXcodeのBundle IDに紐付いており削除できてしまうとiTunesConnectに作成したアプリが公開されなくなったりするためだと思います

Xcodeへのプロビジョニングファイルの設定

MemberCenterで作成したプロビジョニングファイルをXcodeに設定します

プロジェクトの選択 -> Targets -> Build Settings -> Code Signing -> Provisioning Profile

で作成したDistribution用のプロビジョニングファイルを設定します

作成したプロビジョニングファイルがでてこない場合は、前に紹介した「XcodeにMemberCenterの情報を同期させる」方法で同期すると選択できるようになると思います

iTunesConnectにアプリを登録する

MemberCenterとは別にアプリ自体を管理するサイトがiTunesConnectです
AppleAcountでログインしましょう
※iPhone6の発表翌日からiTunesConnectが新しくなりました、本紹介では2014/10/23現在でもiTunesConnectをベースに話を進めます

アプリの登録の仕方もそんなに大変ではありません
アプリを登録して上から順次必要な情報を埋めていけばOKです
情報が下不足な場合には「保存」した際や「レビュー審査のために送信」をクリックしたときに赤枠や赤字で教えてくれます

登録時に自分が気になったポイントだけ紹介します

  • スクリーンショットはXcodeでシミュレータ起動してCmd+sで取得できる(iPhone6とiPhone6Plus用のスクリーンショットをアップロードすることもできる)
    • 保存場所はデスクトップに保存される
  • Appアイコンは角丸にしなくてOK、1024 * 1024 を四角いまんまアップロードする
  • レーティングもちゃんと設定すること
  • 新規で登録するときに「バンドルID」を選択するところがあるが、これはXcodeとMemberCenterに登録したAppIDと同じものを選択すること、あとから変更することもできる
  • 価格タブで公開するときのアプリの値段を決まること

設定する項目を多くポイントを言い出すとキリがない感じもしますが、だいたい上記かと思います
特にBundleIDの部分は気をつけないとちゃんとXcodeとiTunesConnectの連携ができなくなるのでValidateの時に困ると思います

実機をつないでValidateをかける(実機テストもやりましょう)

Validateとは簡単に言ってしまうと公開前に実施する最終テストみたいなものです
Validateには実機が必要です

実機のiPhoneをMacに接続します
接続するとまずOrganizerというXcodeの機能が実行されます

Window -> Organizer -> Devices

まず端末情報をMemberCenterに登録します
OrganizerのDevicesで左下にAdd to Member Centerというボタンがあるのでこれクリックするだけです
これはボタン一発でXcodeが自動でやってくるので問題ないと思います
この時OrganizerでDevicesを見た時に該当のデバイスのランプが緑になっていないと実機テストができません
oganizer_device_check.png

ただ、実機テストはできませんがValidateをかけられる準備は完了しました
ValidateをかけるにはXcodeに実機を認識させる必要があるみたいです(かなり不確かなので間違っていたらご指摘ください)

Validateはアプリを配布する最終手順みたいな感じです
Xcodeの左上でアプリを実行するデバイスを選択できるのでシミュレータから「iOS Device」に切り替えましょう
そして、

Product -> Archive

とすればビルドが実行されます
ビルドが成功するとOrganizerが起動します
Organizerが起動したら右のほうにある「Validate」をクリックします
Validateでは

  • iTunesConnectへの認証
  • MemberCenter側のプロビジョニングファイルとアプリに設定されているプロビジョニングファイルの妥当性検証
  • アプリに瑕疵や過不足がないかのチェック

を主に行ってくれます
その名の通りAppStoreで公開するためのチェックをいろいろとしてくれます
Validateの後は審査があるのでそもそも審査できる状態にあるアプリかどうかをXcode側でチェックする感じでしょうか
最終的に以下のように表示されればValidate完了です

validate_success.png

一応この状態になればDistributeすることができますが、せっかく実機をつないだので実機テストもやっておきましょう
MemberCenterに登録されたデバイスでかつOrganizerでデバイス情報が緑になっていれば、Xcodeでビルドして実機でテストすることができます
実機テストする際にちょっとつまずいた点を記載しておきます

  • Development用のプロビジョニングファイルが必要で接続した実機にプロビジョニングファイル追加する必要がある
  • 実機へのプロビジョニングファイル追加はOrganizer -> Devices -> テストする実機のProvisoning Pfofiles を選択して左下の「Add」で追加することができる
  • プロビジョニングファイルが「Valid profile」にならないとテストできない、Xcodeの左上でデバイスを選択するときに該当のデバイスが表示されない

といった感じです

いざ公開へ

本当にこれで全部できているのかという不安しかないですがValidateが通れば一応公開できる準備はできました

あとはOrganizerでDistributeをクリックしiTunesConnectから「レビュー審査のために送信」をクリックすれば公開のための審査待ちになります
ドキドキしながら審査の結果がどうなるか待ちましょう
(iTunesConnect側で情報が下不足な場合は赤枠でエラーとなるので埋めてから申請してください)

最後に

だいぶ文字だらけでかつ長文になりましたが以上です
たぶんこれでもまだ抜けとか、つまづくポイントはあると思います
正直こんなに大変だとは思いませんでした。。。
感覚的には(iOSアプリに慣れてないのはありますが)Androidの10倍くらい大変な印象でした

あと自分も手探りな感じでやったので間違いがあったらバシバシご指摘いただけると助かります

0 件のコメント:

コメントを投稿