ビルドサーバーでの証明書の更新



多くの企業が継続的インテグレーションを使用しています。

たとえば、Gitには、顧客、マスター、テストの3つのブランチがあります。

顧客またはテストをプッシュすると、アセンブリの作成と、顧客のデバイスまたはテスターへの配信が開始されます。



iOSでテストビルドを配布するには、 アドホックプロファイルが使用されます。 一番下の行は、インストール可能なデバイスのUUIDを指定するプロファイルによってアセンブリに署名する必要があるということです。



デバイスをアドホックプロファイルに追加/削除する手順では、再作成が必要です。 プロファイルを更新したら、アセンブリノード(アセンブリが配置されるコンピューター)にインストールする必要があります。 通常、プロファイルの更新手順はXcodeを介して実行されます。これには、VNCを介したアセンブリノードへのアクセスと直接的な人間の関与が必要です。



幸いなことに、アセンブリの開始時にプロファイルを更新するプロセスなど、すべてを自動化できます。





私の知る限り、 Jenkinsを使用してプロファイルの更新を自動化する方法は2つあります。



プロファイルをリポジトリに保存します



  1. Apple Dev Centerから目的のプロファイルをダウンロードし、「profiles / customer.mobileprovision」としてGitに配置します。
  2. [埋め込みプロファイル]フィールドのアセンブリ設定で、パス「profiles / customer.mobileprovision」を記述します。
  3. Xcodeで、ビルド設定の適切な構成について、プロファイル-なしおよびID-自動を選択します。




組み立て前にプロファイルを更新する



Matt Thompsonという名前のとてもいい人(彼のBlogをお勧めします)は、コンソールからApple Dev Centerを操作するためのクライアントを作成しました。 クライアントは、 Cupertinoと呼ばれ、Rubyで記述され、1行で記述されます。

gem install cupertino
      
      





これで、Gitに「profiles / customer.mobileprovision」を配置することはできませんが、代わりにbashスクリプトで次のように記述できます。

 rm -rf profiles mkdir profiles update_cert "TestCert" profiles/customer.mobileprovision
      
      





前の方法と同様に、Xcodeで、ビルド設定の適切な構成について、プロファイル-なしおよびID-自動を選択します。



update_certスクリプトは次のようになります。

 #!/bin/bash if [ ! $# == 2 ]; then echo "Usage: $0 (certificate name) (file name)" exit fi cert_name=$1 new_file_name=$2 res=`ios profiles:download "${cert_name}" --username some_user_name --password some_password --team some_team_name -type distribution` if [ $? -gt 0 ]; then echo "ERROR!" exit fi echo "$res" file_name=$(echo "$res" | cut -d"'" -f 2) mv "${file_name}" "${new_file_name}"
      
      





update_certなしでも実行できますが、この場合、ダウンロードされた証明書の名前はApple Dev Centerと同じになります。



もちろん、スクリプトはニーズに合わせて変更できます。 たとえば、証明書をダウンロードできない場合(ネットワークの問題)、既存のものを使用します。



おわりに



プロファイルの自動更新は簡単で便利です。

健康に使用してください。



All Articles