#author("2016-08-09T10:59:17+09:00","default:wikiwriter","wikiwriter")
#author("2016-08-09T11:42:11+09:00","default:wikiwriter","wikiwriter")
[[iOSSDK]]

&tag(iOSSDK/プロビジョニング関連);
*目次 [#y2430025]
#contents
*関連ページ [#wa2ef512]
*参考情報 [#p5d830cf]
-[[iOSアプリのプロビジョニング周りを図にしてみる - Qiita:http://qiita.com/fujisan3/items/d037e3c40a0acc46f618]]…基礎から理解したい場合の情報

*概要 [#i86384f9]
-ざっくり説明するとAppleの[[iOS Certificates - Apple Developer:https://developer.apple.com/account/ios/certificate/]]で作成したApp ID、Provisoning Profileと、アプリに埋め込まれたProvisoning Profileが一致していないといけない。
-最近のXcodeはXcode側で自動的に取り扱う機能が実装されている。


*App ID [#zf6a6b62]
-アプリケーションごとに割り当てるID。
-App ID Prefix(数字)とApp ID Suffix(net.srcw.xxxみたいなやつ)を組み合わせて一つのIDとなる。
-App ID Prefixは以前は複数作る事が出来ていたが、最近はアカウントごとに一つ割り当てられているTeam IDしか使えない。
-App ID Suffixはワイルドカードを指定することもできるが、普通は明示か?(2016年)。

*Provisioning Profiles [#a7008b4d]
-App IDを指定して開発用、配布用などの種別を指定してファイルを作成する。
-しかし最近はXcodeが自動的に生成する模様。

*Tips [#c35d646e]
**プロビジョニングプロファイルの情報を確認する [#s02ec4e3]
-mobileprovisionファイルのチェック
 security cms -D -i /path/to/AppStoreProfile.mobileprovision
-アプリ組み込みの情報をチェック
 security cms -D -i /path/to/the.app/embedded.mobileprovision




*トラブルシューティング [#h4b4af37]
**App installation failed This application's application-identifier entitlement does not match that of the installed applicationが発生 [#tfbc6741]
-開発時にアプリをインストールしようとすると発生。
-メッセージ通りに解釈するとapplication-identifierが、インストール済みアプリのapplication-identifierと一致しないということを言っている。
***解決作1: アプリを削除 [#e02fb8f2]
-[[ios - App installation failed due to application-identifier entitlement - Stack Overflow:http://stackoverflow.com/questions/32677133/app-installation-failed-due-to-application-identifier-entitlement]]によると、既存アプリを削除するという解決作が提示されているが、これではバージョンアップ時のマイグレーションテストができない。
***解決作2: Apple公式 [#d16eb346]
-[[Technical Note TN2319: Installation Failure Troubleshooting for iOS:https://developer.apple.com/library/ios/technotes/tn2319/_index.html#//apple_ref/doc/uid/DTS40013778-CH1-ERRORMESSAGES-UPGRADE_S_APPLICATION_IDENTIFIER_DOES_NOT_MATCH_THE_INSTALLED_APP]]によると、App ID prefixを変更したくない場合、正しいprovisioning profileをダウンロードするか、App IDを変更する場合previous-application-identifiersを指定した特殊なプロビジョニングプロファイル(要サポート連絡)を使うしかないらしい。


***解決作3 [#b77fe8b7]
-すごく古いアプリの場合Team IDへの変更の影響で詰んでいるかも。
-[[Bundle Seed ID - ほし日記:http://d.hatena.ne.jp/hoshi_takanori/20120124/p1]]
-以下実際に遭遇したこと。
-AppleのサイトでApp IDを確認すると、既存のApp IDのPrefixがTeam IDに変わっていてかつ使用中と判定される(削除しようとするとApp Storeで公開中であると警告される)。
-実際に公開中にアプリに埋め込まれているApp IDのPrefixはTeam IDじゃないもの(Suffix部分は同じ)
-この場合Team ID版のプロビジョニングプロファイルを埋め込んでバージョンアップしようとするとエラーになりどうしようもない。
-古いPrefixを使ったApp IDは重複エラーで作れないし(この場合Suffix部分だけで判断している模様)、新しいTeam IDのPrefixのApp IDを使うとバージョンアップエラーになる。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS