署名エラー:MacBook NeoからリモートMacへ切り替えたら、Xcode 27で証明書や署名 ID が見つからない。
最短の切り分け:リモートMacのキーチェーンで証明書と対応する秘密鍵を確認し、次にプロビジョニングプロファイル、Bundle ID、チーム権限を調べます。
MacBook Neoを持ち歩き、リモートMacでiOSアプリをビルドする独立開発者向けです。新しいホストで署名資産が見つからない場合に、原因を分けて調べられます。
顧客やチーム向けにアプリを提出する方には、個人のMacにある資産とチーム共有の資産を区別する手順が役立ちます。旅先でアーカイブやテスト用ビルドを行う方も、提出前の確認に使えます。
まず署名 ID とビルドエラーを切り分ける
署名の問題は、ビルド設定全体を変更する前に、署名 ID が使える状態か確認します。Appleの説明では、署名 ID は証明書と対応する秘密鍵で構成されます。証明書だけがあっても、対応する秘密鍵がなければ、その ID でコード署名できません。Appleのコード署名証明書に関する技術資料で構成を確認できます。
エラーの内容は、次のように分けて読みます。
- 署名 ID や秘密鍵が見つからない:リモートMacのキーチェーンを確認します。
- プロビジョニングプロファイルが一致しない:Bundle ID、証明書、対象デバイス、機能の設定を照合します。
- チームが選べない、または権限エラーが出る:Xcodeのアカウントとチームの役割を確認します。
- 署名設定に問題がないのにビルドが失敗する:署名の修復とは分けて、ビルドログと該当するビルド設定を調べます。
Xcode 27で表示される画面名やエラー文言は、ここでは特定の表示に決めつけません。ログの最初の失敗箇所を基準に、署名の問題とコンパイルなどのビルドエラーを分離してください。
リモートMacのアカウントとチームを照合する
まずXcodeが使うApple Accountと、対象アプリを管理するチームが一致しているか確認します。プロジェクトの署名設定で選択したTeamも、提出先のチームと照合します。アカウントにサインインできることは、必要な証明書を使えることや、チーム内の操作権限があることを意味しません。
Appleは、開発者アカウントの役割ごとに利用できる操作を案内しています。Apple Developer Programの役割とアクセス権を確認し、証明書や識別子を管理する権限が必要な作業を、権限のないアカウントで進めないようにします。
注意:チーム共有の証明書を新しく作成したり、既存の証明書を失効させたりする前に、管理者へ確認してください。チーム内の別のビルドや提出に影響する可能性があります。
チームとアカウントが正しいのに署名 ID が表示されない場合は、キーチェーンにある証明書だけでなく、対応する秘密鍵も調べます。Xcodeでの証明書管理は、チーム署名証明書の共有に関するAppleの説明に沿って確認してください。
証明書と秘密鍵を安全に確認する
リモートMacのキーチェーンで対象の署名証明書を探し、対応する秘密鍵が組になっているか確認します。証明書が表示されても、秘密鍵がなければ署名 ID が揃っているとは判断できません。Appleの証明書概要も参照し、対象の証明書が開発用か配布用か、状態が有効かを確かめます。
元のMacを利用できる場合は、秘密鍵を含む署名 ID を安全に移せるか、本人またはチーム管理者と確認します。チームの承認を得たら、パスワードで保護した書き出し形式を使い、リモートMac側へ読み込みます。秘密鍵のファイルや書き出し用パスワードは、ソース管理、ビルドログ、共有チャットに保存しないでください。リモート環境でのアカウントやデータの保護については、MergeMacのセキュリティ案内も確認し、チームの規定と照らし合わせます。
元のMacに秘密鍵がない場合や、移行権限がない場合は、証明書を急いで失効させないでください。既存の署名 ID が他のメンバーやビルド環境で使われている可能性があります。チーム管理者に状態を確認し、再発行が必要か判断してもらいます。
現場の例: MacBook NeoからリモートMacへ切り替えた直後、プロジェクト設定ではチーム名が選べても署名に失敗する場合があります。このとき、アカウントの表示だけで移行完了と見なさず、リモートMacのキーチェーンに証明書と秘密鍵の両方があるかを先に確認します。
プロファイルとプロジェクト設定を突き合わせる
署名 ID が利用可能なら、プロビジョニングプロファイルとプロジェクトの値を照合します。Bundle IDが登録済みApp IDと異なる場合や、プロファイルが別の証明書、対象デバイス、必要な機能を前提にしている場合、署名構成は一致しません。App IDの登録はAppleの識別子登録手順で確認できます。
アプリが使用する機能も照合します。必要な機能がチーム側のApp IDやプロファイルに反映されているかは、AppleのApp ID機能設定ガイドを参照してください。プロファイルが期限切れ、無効、または設定変更前の内容なら、単に再ダウンロードするのではなく、どの項目が一致していないかを特定します。
自動署名の場合
Xcodeに署名管理を任せる構成なら、プロジェクトの自動署名設定、選択中のチーム、Bundle IDを確認します。アカウントに必要な権限があることも確認してください。設定を確認した後に、Xcodeが更新や管理を行えるか試します。自動署名を使っているからといって、すべてのチーム権限や資産不足が自動で解消されるわけではありません。
手動署名の場合
手動で署名する場合は、選択した証明書とプロビジョニングプロファイルが組み合わせとして一致しているか確認します。Bundle ID、対象デバイス、必要な機能も照合対象です。修正が必要と分かった場合は、チームの手順に従ってプロファイルを編集または再生成します。Appleのプロファイル編集・ダウンロード手順を使い、理由がないまま削除や再作成を繰り返さないでください。
失敗原因に合わせて復旧する
Xcode 27のコード署名で問題が起きたときは、次のチェック項目を上から実施します。原因が確認できる前に、証明書の失効や作り直しを始めないことが重要です。
- [ ] Xcodeで選択中のApple Accountとチームが、対象アプリの管理先と一致しています。
- [ ] リモートMacのキーチェーンに対象の証明書と対応する秘密鍵があります。
- [ ] 証明書が有効で、開発用または配布用の用途が作業に合っています。
- [ ] プロジェクトのBundle IDと登録済みApp IDが一致しています。
- [ ] プロビジョニングプロファイルが、使う証明書、対象デバイス、必要な機能と整合しています。
- [ ] 自動署名または手動署名のどちらを使うかが明確で、その設定とチーム権限に問題がありません。
- [ ] 秘密鍵や書き出しパスワードをログや共有場所へ保存していません。
修正したら、設定画面が整って見えるだけで完了と判断せず、同じプロジェクトを再ビルドします。アーカイブが目的ならアーカイブまで行い、ログで実際に選ばれた署名 ID とビルド結果を確認します。その後、チームで定めたテストや提出前の確認へ進みます。
それでも失敗する場合は、Xcodeのビルド設定と署名設定を分けて調べます。AppleのXcodeビルド設定リファレンスを使い、該当する設定が意図した値か確かめてください。エラー文言だけを根拠に、証明書の失効やチーム全体の設定変更へ進むのは避けます。
秘密鍵の所在を確認できない場合や、チーム資産への変更権限がない場合は、作業を止めて管理者へ引き継ぎます。署名を通すことより、共有資産と顧客データを守ることを優先してください。
方式ごとの修復範囲を比べる
自動署名と手動署名では、確認や更新を担う場所が異なります。選択はプロジェクトの設定だけで決めず、チームの管理方法と実行アカウントの権限に合わせます。
| 状況 | 自動署名 | 手動署名 |
|---|---|---|
| プロファイルの管理 | Xcodeに管理を任せ、アカウントとチームの利用権限を確認します。 | チームの手順に沿って、必要なプロファイルを確認・更新します。 |
| 先に調べる項目 | Apple Account、選択中のチーム、Bundle ID、署名 IDを確認します。 | 証明書と秘密鍵、プロファイル、Bundle ID、対象デバイスを照合します。 |
| 適する条件 | チームがXcodeによる管理を許可し、必要な権限を付与している場合です。 | チームが署名資産を明示的に管理し、手動設定を運用している場合です。 |
| 避けたい対応 | 自動で直ると決めつけ、権限不足を見落とすことです。 | 不一致の理由を確認せず、証明書やプロファイルを再作成することです。 |
作業環境を選ぶ前の判断
リモートMac開発では、移動中にMacBook Neoだけで作業しやすくなる一方、署名に必要な秘密鍵やチーム資産を遠隔環境へ安全に持ち込む運用が必要です。短期間のビルド環境を確保したい場合は、MergeMacの利用条件とプランを確認し、使えるmacOSやXcode環境、アカウント権限、署名資産の取り扱いを契約前に照合してください。利用環境の条件は、チームの証明書管理ルールの代わりにはなりません。
ローカルMacだけで続ける方法は、秘密鍵を外部環境へ移さずに済む一方、持ち運びや端末の故障・紛失に備えた環境管理が残ります。別の遠隔環境を使う場合も、権限、秘密鍵の保護、プロファイルの更新手順を個別に確かめる必要があります。短期の開発や出先での復旧環境が必要なら、MergeMacのレンタル環境を候補に加えると、Mac実機を常に持ち歩かずに作業場所を分けられます。ただし、署名資産が自動で移行する、またはビルドが必ず通るという意味ではありません。事前に環境条件とチームの運用ルールを確認したうえで選んでください。
よくある質問
リモートMacに切り替えたら、以前の署名証明書がXcodeに表示されないのはなぜですか?
証明書の情報だけが見えていても、署名に必要な対応する秘密鍵がリモートMacのキーチェーンにない場合があります。元のMacまたはチームの管理者に、署名 ID の完全な移行が可能か確認してください。Apple Accountへのサインインだけで、秘密鍵まで自動的に移るとは限りません。
証明書はありますが、秘密鍵がありません。この状態でiOSアプリに署名できますか?
対応する秘密鍵がない署名 ID では、その証明書を使ったコード署名はできません。元のMacに秘密鍵が残っている場合は、権限を確認したうえでパスワード保護された方法で書き出し、リモートMacへ安全に読み込む手順を検討します。秘密鍵や書き出しパスワードをログやチャットへ貼り付けないでください。
Xcodeの自動署名が通らない場合、チーム権限とプロファイルのどちらを先に確認しますか?
まずXcodeで選ばれているApple Accountとチームが、対象アプリのチームに合っているかを確認します。その後、Bundle ID、署名証明書、必要な機能、テスト対象デバイスにプロビジョニングプロファイルが合っているかを調べます。自動署名でも、アカウントの役割やチーム側の設定が足りなければ解決しません。
リモートMacのプロビジョニングプロファイルとBundle IDが一致しないときは、どう直しますか?
まずプロジェクトのBundle IDと、Apple Developer側に登録されたApp IDを照合します。意図した識別子が違っている場合は、プロジェクト設定を直すのか、チームで登録情報を更新するのかを決めてから進めてください。手動署名なら整合するプロファイルを用意し、自動署名ならXcodeに管理させる設定とチーム権限を確認します。
署名環境を、専有のリモートMacに整えませんか?
MergeMacなら、専有の物理Mac miniで証明書やキーチェーンを管理しながら、署名とビルドを実行できます。
