#はじめに
Xcode6になってipaの書き出しで変ったことがいくつかあります。
- アカウント確認
- 書き出し時のprovisioningFileの指定ができない
provisioingFileのXcode上での指定ができないので
Certificates, Identifiers & Profiles
とのプロビジョニング同期が選択される肝になります。後ろの方に追記しました。
##アカウント確認
ipa書き出し時にさんざんアラートがあがりますので、登録しましょう。
これがXcode6の前提になっているようなところがあります。
#個人用と法人用とで違う?
XCとつくプロビジョニングファイルを使わない方法は個人用では確認しているのですが
法人用のライセンスでも確認しました。
ipa出力時のprovisioing Fileの選択はこちらを参照してください。
http://qiita.com/nofrmm/items/2bc60313aa961baf501f#自動生成されないために
後半で書いているのは個人用のライセンスでの検証結果です。
#書き出し時の仕様が違う
ipaの書き出し時に意図したProvisioning Fileがどうしても出てこない。
そして自分で選ぶこともできない。
http://stackoverflow.com/questions/25999847/xcode-6-and-ad-hoc-distribution-without-xc-provisioning
より
(1)Xcode5
の最新版を別名でインストールして書き出す方法
I have a workaround for this that works for me.
I have both Xcode 6 and Xcode 5.1.1 installed, Xcode 6 is in Applications and Xcode 5.1.1 is in another directory. When I want to do a build I use Xcode 6 to create the Archive. But you can also see the created Archive in Xcode 5.1.1 so I use Xcode 5.1.1 to distribute the Ad Hoc .ipa using the provisioning profile that I want to use. So build using Xcode 6 but distribute using Xcode 5.1.1. It works for me.
(2)Xcodeに取り込んでいるProvisioing Fileを Certificates, Identifiers & Profilesが取り直す
I hit a similar problem and discovered that even if you specify the correct profiles in Xcode the Xcode6 system wants you to have the latest (from member centre) provisioning profile (for each team your account is against). It seems to walk each one in turn before using the one you need and gets blocked if you are absent any provisioning profile for the teams you belong to.
#Xcode5
の最新版を別名でインストールして書き出す
(1)は検証はしていないことを前提に紹介すると
Xcode6のアーカイブからXcodeArchiveファイル(.xcarchive)をOrganizer経由で取得し
Xcode5へImportすれば
こちらの記事で対応できそうです。
#Xcodeに取り込んでいるProvisioing Fileを Certificates, Identifiers & ProfilesからXcodeから
取り直す
一度ちゃんとドキュメントを読んでみることにしました。
##App Distribution Guide
日本語版(やや古い場合がある)
https://developer.apple.com/jp/devcenter/ios/library/documentation/AppDistributionGuide.pdf
ドキュメントの更新日を確認してください
https://developer.apple.com/jp/devcenter/ios/library/japanese.html
##XcodeのProvisioning Fileを更新
(1)Xcode > Preference そしてAcountタブを選びます
↓
(2)Apple IDsからビルド時に使用するアカウントを選択してダブルクリックします
↓ Certificates, Identifiers & Profiles
でProvisioning Fileを消す
##Projectファイル
(2)targetのBuild Settingsを確認します
###Xcodeでの指定:Build Settings
↓
- Buildや、Archive時にバイナリ化するときに使用されるProvisioning File
- 使用したProvisioning Fileを使用できるアカウント
を指定してすることで
Archive時のProvisioning Fileはここで指定できます。
Accountsからの同期のタイミングでCertificates, Identifiers & Profiles
で消されたAdhoc用Provisioning Fileが選択から消えました。
##XcodeがProvisioning Profileを作成するとき
Certificates, Identifiers & Profiles
に'XC Ad Hoc:[Bundle Identifier]'なProvisioning Fileが作成されました。
- ライセンスに登録中のデバイス全部
- その時点のAppIDの設定を反映
##自動生成されたProvisioning Fileに対応する証明書
最新
の証明書が紐づきました。
新規に証明書を作成し、その証明書にrevokeを行うと
対応する証明書がない、と表示される。そのためにまた新しい証明書を作成する、という・・・。
複数個ビルド用の証明書があり
デバイスを限定したい場合には余計なお世話です
Xcode経由でのipa書き出しは、今現在は全端末登録したProvisioing Fileでしか出来ないようなので、どうしてもデバイスを限定したい場合はコマンドを使っての生成になりそうです。
こちらに書きました
http://qiita.com/nofrmm/items/1debeeaac6689c2f6b30
Certificates, Identifiers & Profiles
から更新してみましたが
同じく上記のワーニングアラートが表示され
全端末を登録
'XC Ad Hoc:[Bundle Identifier] adh1'のように名前を変えたら
別ファイルとして新規の'XC Ad Hoc:[Bundle Identifier]'を作成する
など
融通が利きません。
#書き出し時に選びたいProvisioning Fileを指定する
設定できるようになりました。
ただし個人用のライセンスで、チームで開発する場合のライセンスではXC
とつくプロビジョニングファイルがどうしても
選ばれてしまいました。
以下、個人ライセンスでの検証内容です。
XCファイルを使いたくない場合の基本ルールは
ipa書き出しのProvisioing File はAccountsの同期で追加・削除する
-
Certificates, Identifiers & Profiles
で作成したプロビジョニングファイルはAccountsの同期で追加する - XCファイルが作成されたら
Certificates, Identifiers & Profiles
から消して同期する - ワーニングが出たらXCファイルを
Certificates, Identifiers & Profiles
から消す
##前提
- 書き出すアプリに対応するProvisioning Fileが作成済み(手動でダウンロードは影響されないかも)
- Provisioning Fileに対応する証明書+秘密鍵がMacに設定されている
- 少なくとも開発者用の証明書が
Certificates, Identifiers & Profiles
で作成されている(Adhoc、Release用はadmin以上?)
手順は時間の関係で別途載せようと思います。
こちらにまとめました
http://qiita.com/nofrmm/items/2bc60313aa961baf501f
#参考
#さいごに
あんまりにも使い勝手が悪いので、次のバージョンで改良を願いつつ
現時点では暫定対応として読んでいただければ良いかと思います。
Xcode6の設定やCertificates, Identifiers & Profilesでの証明書の登録などもあり
うまくいったと思っていても、個人用のライセンスだったから、ということがありそうです。
また、この対応はサーバ側で対処が可能なレベルだと思うので
アナウンスなしにApple側が対処していつのまにか解決している、ということもあります。
書き出し時のipa指定が現状のままであれば、XC
なProvisioning Fileを利用する方が安全に書き出せる方に傾いています。もしくは人を選びますが、コマンドでのipa書き出しです。