codesigndocは Mac上にある Xcode/Xamarin Studioのアーカイブを整理し、生成されたアーカイブファイルを解析するオープンソースのツールです。このツールはXcodeもしくはXamarin Studioがアーカイブ時に使用したコード署名の設定を収集し、必要なコード署名ファイルのリストを表示します。さらにcodesigndoc
を使うことでこれらのファイルに対して検索や書き出し、アップロードの操作も行うことができます。
codesigndocでファイルを収集する ⚓
Terminal
を開きます- 対象とするプロジェクトの種類に応じて適切なコマンドを実行します。
-
Xcodeのプロジェクトの場合:
bash -l -c "$(curl -sfL https://raw.githubusercontent.com/bitrise-tools/codesigndoc/master/_scripts/install_wrap-xcode.sh)"
-
Xamarinのプロジェクトの場合:
bash -l -c "$(curl -sfL https://raw.githubusercontent.com/bitrise-tools/codesigndoc/master/_scripts/install_wrap-xamarin.sh)"
-
Finder.app
を開き、プロジェクトの.xcodeproj
もしくは.xcworkspace
のファイルをTerminal
のコマンドラインにドラッグアンドドロップします。
codesigndocでBitriseにファイルをアップロードする ⚓
-
一度コード署名のファイルが収集できたら、
codesigndoc
は次のようにファイルをアップロードするか確認してきます:Do you want to upload the provisioning profiles and certificates to Bitrise? [yes/no] :
もしファイルをアップロードしたければ
yes
と入力した上でEnter
を押してください。 -
Bitriseのあなたのアクセストークンを入力してください。
Please copy your personal access token to Bitrise. (To acquire a Personal Access Token for your user, sign in with that user on bitrise.io, go to your Account Settings page, and select the Security tab on the left side.) :
-
収集したファイルの対象となるBitriseのプロジェクトを選択してください:
Fetching your application list from Bitrise... Select the app which you want to upload the provisioning profiles Please select from the list:
これで完了です!
もしBitriseのiOS Auto Provisioning
で自動プロビジョニングを使いたい場合は、収集するファイルは証明書のみで大丈夫です。これはcodesigndoc scan
を実行するときに--certs-only
フラッグを設定することでできます。
codesigndoc
をマニュアルでインストールし実行することもできます。詳しい情報はcodesigndocのReadmeを確認してください!
ベストプラクティス ⚓
一番正確な結果を得るにはcodesigndoc
を実行する際にリポジトリと同じ状態、言い換えればコードを、ビルドサーバーが確認したあとのように、git clone
した直後に得られる状態にしておくとよいでしょう。(例えば、.gitignore
に指定したファイルがMac上に残っている場合、それらはあなたのMac上にはあってリポジトリや別のMacでgit clone
したものには含まれません。)
これらの理由から、一番いい結果を得るには次の方法をおすすめします:
-
Mac上で(新たなディレクトリに)
git clone
しただけのリポジトリを用意しておきます。 -
codesigndoc
は(そのプロジェクトで普段つかっているディレクトリではなく)1で用意したディレクトリ上で実行します。
またcodesigndoc
は完全にアーカイブと書き出し(署名済みの.ipa
ファイルを作成できるまで)をXcode.app
上で先に終えた後に実行してください。
これはXcode.app
がIPAを書き出す間にバックグラウンドでプロファイルをダウンロードもしくはアップデートしている可能性があるためです。codesigndoc
を.ipa
をXcodeから書き出した後に実行することで、全てのファイルを収集することができます。