Change before you have to.

androidアプリ開発、iosアプリ開発、rails、deep learning .etc.を使った社会実験。

iOSアプリの更新に必要な5つのこと(apple watch対応でも必要!)

覚えたと思っても、1年後の忘れたころにやってくる証明書の更新方法。
どれか一つでも失念していると全てやりなおして確認しなくてはいけないので忘れないうちに簡単にメモを作成しました。

追記 : 2015年3月28日、apple watchにも対応しました

 

 

 なにをやっているか
・開発端末が開発者登録された開発者のものであることの証明書を取得し、
・開発、submit、adhoc、プッシュ通知(開発、リリース用それぞれ)のprofileに結びつける
・それをxcodeに登録する(Build Settingsで指定するだけで終わってしまい、Account設定することを忘れがち)

 

 

# 1.証明書の期限の確認
https://developer.apple.com/account/ios/certificate/certificateList.action?type=distribution

>Certificates > ALL
開発者個人はDevelopment
リリース用やプッシュ通知はProduction

Expire確認して、そろそろだと思ったら以下2以降の作業実施。

 

# 2. キーチェーンから認証局に証明書を取得

ここが詳しい→http://www.sirochro.com/note/apple-developer-certificate-update/

以下項目だけ簡単に。
・キーチェーン起動
・メニュー > キーチェーンアクセス > 証明書アシスタント > 認証局に証明書を要求
・開発者登録したときのapple IDをユーザーのメールアドレスに入力
・通称は適当に(後ほどxcodeに登録する時に聞かれる)
・CA のメールアドレスは空欄、ディスクに保存、鍵ペア情報を指定を選択してOK
・鍵のサイズ : 2084ビット / アルゴリズム : RSA であることを確認し 続ける
・作成すると、CertificateSigningRequest.certSigningRequest がデスクトップに保存される。

 

# 3. iOS developerの「Certificates, Identifiers & Profiles」で証明書を登録

・もう一度以下のリンクにてCertificatesの右上にあるプラスボタン押下
https://developer.apple.com/account/ios/certificate/certificateList.action?type=development

・以下ラジオボタンがあるので、選択した上でcontinue(あとは指示通りそれぞれ作成する)
※指示に従う中で先ほどデスクトップに保存したcertSigningRequestファイルを指定する
>Developerment > iOS App Development
>Developerment > Apple Push Notification service SSL (Sandbox)
>Production > App Store and Ad Hoc
>Production > Apple Push Notification service SSL (Production)

 

# 4.Provisioning profileの作成
・同上リンクにて必要なprofileにて、テスト端末、アプリIDとともに上記3で作成したcertificateをラジオボタンで登録
(profileは、iphone,ipad,ipodの開発、adhoc, submit, 及びapple watchの開発、adhoc, submitの計6つ必要)
※当然だが、アプリのbundle ID が登録されたIdentifiersの中の適切なIDを選択する必要がある

・6つ全てgenerate > downloadで適当な場所に保存して、実行する(自動的にキーチェーンに保存される)


# 5. xcode側でprovisioning profileを同期

①開発者情報をxcodeに認識(忘れがちなので注意!!)

まずxcode > preference > accounts を選択

f:id:ichonol:20150328153103p:plain

 

そうすると右下「View Detail」からdistributionとdevelopmentをあることを確認して、左下の更新ボタン押下

f:id:ichonol:20150328153109p:plain

 

そうすると、「codesignは、キーチェーンに含まれるキー"******"を使用して署名しようとしているます。この項目へのアクセスを許可しますか?」みたいなダイアログが出てくるので、常に許可を選択

f:id:ichonol:20150328152157p:plain


※"*****"は項目2で証明書を要求した時に入力した通称


②Build Setting でprovisioning Profileを登録
・ナビゲーションペインでルートプロジェクトファイルを選択
・ターゲット > Build Settings > Code Signing の以下1と2で適切なprofileとidを選択
1.Provisioning Profile > Debug 及び Release
2.Code signing identitiy > Debug 及び Release
apple watch対応する場合は本アプリと同様、apple watch用のターゲットを選択して上記同様に実施する
※上記1を実施してから2を実施しないと2で適切なidが選択できない

 

備考:証明書の期限切れではなく、複数台端末で実行する場合は、
上記作業を実施した端末から証明書の書き出し > p12ファイルを作成 > 別端末で登録
ということをやる必要がある。
その場合、必ず1台目から書き出す必要がある(2台目から3台目は不可能)