LoginSignup
1
3

More than 5 years have passed since last update.

Xcode8.3環境で特定のプロビジョニングファイルを消す

Posted at

はじめに

ユーザがProvisioningFileを意識しなくても済むように・・・ってアプリ設計をのポリシーを感じるXcode8.3

Accountsからは

  • ダウンロードは全部まとめてのみ:Download All Profiles
  • どのプロビジョニングファイルがあるかわからない

というようになりました。

スクリーンショット-2017-04-30-7.12.09.png

ダウンロードしたProvisioning File

ダウンロードしたプロビジョニングファイルの置き場所をみるには
アプリをアーカイブして、書き出し時に表示されるリンクから辿れます

スクリーンショット-2017-04-30-7.33.31.png

スクリーンショット-2017-04-30-7.04.31.png

隠しリンクのように。
ユーザのホーム配下ライブラリ以下にあります。前のバージョンからパスは変わってませんが、知ってないとわからないです。

~/Library/MobileDevice/Provisioning\ Profiles

Provisioning FileのUUID

スクリーンショット 2017-04-30 10.40.26.png

autosigning がついている場合も
Build Settings > Provisioning File(Deplicated)Other...を選択した場合に表示されます。
確認後は元の設定にもどせば問題ありませんでした。

スクリーンショット-2017-04-30-10.21.25.png

特定のプロビジョニングファイルを消す

Xcode経由で削除

アーカイブ後に表示されるリンクか、FinderなどからUUIDを確認しながら消す方法が取れます。

Terminal経由で削除

CIなどでプロビジョニングファイルを消す場合にTerminal経由で消したい場合に

実行する前に下記前提が満たされているか動作を確認してから実行します。

  • 削除対象のプロビジョニングファイルのUUIDを取得
  • >~/Library/MobileDevice/Provisioning\ Profilesから削除する

OSXがSierraになってからsecurityコマンドでstderrorが出力

security cms -D -i hogehoge.mobileprovision 2> /dev/null

OSXがSierraになってからsecurityコマンドでstderrorが出力されるようになっており
fastlaneでもissueになっていました。Sierraの場合はstderrorは捨てるようにしました。
https://github.com/fastlane/fastlane/issues/6387

Sierra以降はこの書き方だとstderrorが出力され
思ったような結果になりませんでした。

security cms -D -i hogehoge.mobileprovision

結果次のコマンドでプロビジョニングファイルを削除しています。

$ xmllint <(security cms -D -i hogehoge.mobileprovision 2> /dev/null) --xpath '/plist/dict/key[text()="UUID"]/following-sibling::string[position()=1]/text()' | xargs -I{} rm ~/Library/MobileDevice/Provisioning\ Profiles/{}.movileprovisioin

参考

http://qiita.com/mattak/items/dcb25ad7e12501d1525d
http://itpro.nikkeibp.co.jp/article/COLUMN/20140331/547143/

さいごに

XcodeではプロビジョニングファイルをUUIDで管理することからは遠ざける改修がされていますのでCIで使うには
fastlaneを使う方が楽、という結論に行きがちなのですが、fastlaneの対応を待てない場合の対処としては押さえておいた方がよいかとおもいます。

:apple: はautosigningで技術者の難易度をさげた改修をしているようで、解決要素がみえにくい状況になっているに気づいているのかなと。CIにはまったく使いにくい改修なので、別ラインでCI対応も考えて欲しいと思っています。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3