iOSアプリをリモートレンタルMacでビルド・配布する際、コード署名と証明書・プロビジョニングプロファイルの管理は多くの開発者がつまずくポイントです。本記事では、リモートMac上で証明書を安全に配置し、XcodeやCIから正しく参照するための手順と使用シーンを、敬体で分かりやすく解説します。
リモートMacでコード署名が難しい理由
ローカルのMacでは、キーチェーンに証明書を入れておけばXcodeが自動で選択してくれます。一方、リモートレンタルMacでは、証明書の「置き場所」「インポート方法」「複数マシンでの共有」を意識しないと、ビルド失敗や「署名に必要な鍵が見つかりません」といったエラーに直面します。
- 証明書(.cer)と秘密鍵(.p12): Apple Developerで発行したディストリビューション証明書は、秘密鍵とペアでキーチェーンに存在する必要があります。リモートMacには最初から鍵がありません。
- プロビジョニングプロファイル: 開発用・配布用のプロファイルをダウンロードし、
~/Library/MobileDevice/Provisioning Profilesに配置する必要があります。 - チーム・Bundle ID の一致: 証明書のチームと、プロファイルに含まれるApp ID・デバイスが一致していないと署名できません。
「リモートMacでも、ローカルと同様に安心してコード署名したい」—— そのために必要なのは、証明書とプロファイルの一元管理と、再現可能なセットアップ手順です。
証明書とプロビジョニングプロファイルの基礎
Appleのコード署名では、次の2つが必須です。Apple Distribution(または Developer ID)証明書と、対応するプロビジョニングプロファイルです。証明書は「誰が署名したか」を証明し、プロファイルは「どのアプリを・どのデバイス向けに」ビルドするかを定義します。リモートMacでは、これらを手動で用意し、キーチェーンと所定のフォルダに配置します。
操作手順:リモートMacで証明書・プロファイルを管理する方法
以下、VNCMacなどでレンタルしたリモートMacに、証明書とプロビジョニングプロファイルをセットアップする具体的な手順です。
ローカルMac(または以前に証明書をエクスポートした環境)で、キーチェーンアクセスを開き、該当する「Apple Distribution」証明書を選択します。「ファイル」→「エクスポート」で.p12形式でエクスポートし、パスワードを設定して保管します。プロビジョニングプロファイルは、Apple Developerの「Certificates, Identifiers & Profiles」からダウンロードします。
VNCMacのダッシュボードから、割り当てられたMacにVNCまたはSSHで接続します。証明書をアップロードする際は、SFTPやSCP、あるいはVNC経由でドラッグ&ドロップで.p12と.mobileprovisionをリモートMacのホームディレクトリなどに転送します。
リモートMacでキーチェーンアクセスを開き、ログインキーチェーンを選択した状態で「ファイル」→「キーチェーンに項目を読み込む」から.p12を選択し、エクスポート時に設定したパスワードを入力してインポートします。これで、Xcodeがビルド時にその証明書を参照できるようになります。
# コマンドラインでインポートする場合(パスワードは対話入力)
security import /path/to/YourCertificate.p12 -k ~/Library/Keychains/login.keychain-db -T /usr/bin/codesign -T /usr/bin/security
ダウンロードした.mobileprovisionを、リモートMacの次のフォルダにコピーします。
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
cp ~/Downloads/YourApp.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/
Xcodeはこのフォルダ内のプロファイルを自動的にスキャンするため、再起動は不要です。Xcodeの「Signing & Capabilities」で、該当するプロファイルを手動で選択できます。
Xcodeでプロジェクトを開き、「Signing & Capabilities」タブで「Manual」を選択し、Distribution証明書と該当するプロビジョニングプロファイルを選択します。Archiveを作成して、App Store Connectにアップロードするか、Exportでipaを出力できることを確認してください。
使用シーン:いつ・誰がこの手順を使うか
シーン1:個人開発者がリモートMacで月1回リリースする
自宅にMacがなく、VNCMacのMac miniを月に数日だけレンタルしてビルド・申請を行う場合です。初回接続時に上記の手順で証明書とプロファイルをセットアップしておけば、次回以降は同じインスタンスを継続利用する限り、再設定は不要です。インスタンスが解放された場合は、再度.p12とプロファイルをインポートする必要があります。
シーン2:CI/CD(Fastlane・GitLab Runner)で自動ビルド
リモートMac上でGitLab RunnerやJenkinsを動かし、FastlaneでArchive・アップロードする場合、証明書とプロファイルをCI用のキーチェーンとパスに固定しておく必要があります。Fastlaneのmatchや、証明書をbase64で環境変数に持たせてCIで復元する方法を利用すると、複数マシンでも再現しやすくなります。
シーン3:チームで1台のリモートMacを共有する
同じApple Developerチームのメンバーが、1台のリモートMacを共有してビルドする場合、そのMacのキーチェーンには「チームのディストリビューション証明書」が1セットあれば十分です。プロファイルは、複数アプリ・複数構成がある場合は、必要な分だけProvisioning Profilesフォルダに置いておきます。
セキュリティ上の注意点
.p12は秘密鍵を含むため、転送時は必ずSFTPやVPN内など暗号化された経路を使い、保管はパスワード付きで行ってください。VNCMacは専用インスタンスを提供しているため、他ユーザーが同じMacにアクセスすることはありません。証明書のパスワードをCIの環境変数に置く場合は、そのリポジトリ・パイプラインのアクセス権限を厳格に管理してください。
よくある質問(FAQ)
Q1: リモートMacを解放したら、証明書はどうなりますか?
A: そのインスタンスのディスクは初期化されるため、キーチェーンにインポートした証明書は消えます。次回レンタル時は、再度.p12とプロファイルをインポートする必要があります。.p12はローカルなど安全な場所に保管しておいてください。
Q2: 同じ証明書を複数のリモートMacで使ってもよいですか?
A: Appleの利用規約上、同一チームのディストリビューション証明書を複数台で使うことは可能です。ただし、証明書の秘密鍵の管理(漏洩防止)は自己責任で行ってください。
Q3: 自動署名(Automatically manage signing)はリモートMacでも使えますか?
A: はい、Apple IDでサインインしていれば、Xcodeがプロファイルを自動作成・ダウンロードしてくれます。ただし、CIや手動で証明書を厳密に固定したい場合は、手動管理(Manual)の方が再現性が高くなります。
まとめ:リモートMacでもコード署名は確実にできる
リモートレンタルMacでコード署名を行うには、証明書(.p12)のキーチェーンへのインポートとプロビジョニングプロファイルの所定フォルダへの配置が肝です。手順を一度整えておけば、個人開発からCI/CD、チーム共有まで、同じ考え方で運用できます。VNCMacの専用Mac miniなら、証明書を預ける環境としても他ユーザーと共有しないため、安心して利用できます。リモート環境でも、ローカルと同様にスムーズにiOSアプリのビルド・配布を進めましょう。