XcodeでiPhoneやiPad向けアプリをビルドしようとした際に、次のようなエラーが表示されることがあります。
Signing for "AppName" requires a development team. Select a development team in the Signing & Capabilities editor.
このエラーは、Xcodeがアプリをコード署名するために必要なDevelopment Team(開発チーム)を特定できていないときに発生します。
多くの場合は、Xcodeの「Signing & Capabilities」でTeamを選択するだけで解決できますが、Apple AccountがXcodeに登録されていない、Bundle Identifierに問題がある、ターゲットごとに署名設定が異なっている、といった原因でも発生します。
- 「Signing for requires a development team」とは
- 主な原因
- 代表的な発生状況
- 確認手順
- 解決方法1:Teamを選択する
- 解決方法2:Automatically manage signingを有効にする
- 解決方法3:Apple AccountをXcodeへ追加する
- 解決方法4:すべてのTargetのTeamを確認する
- 解決方法5:Bundle Identifierを変更する
- 解決方法6:署名設定をコマンドで確認する
- 解決方法7:project.pbxprojのDEVELOPMENT_TEAMを確認する
- 解決方法8:Provisioning Profileを更新する
- 手動署名を使用している場合
- CIやxcodebuildで発生する場合
- それでも直らない場合
- 注意点
- まとめ
「Signing for requires a development team」とは
iOS、iPadOS、watchOS、tvOS、visionOSなどの実機向けアプリでは、アプリを実行・配布するためにコード署名が必要です。
Xcodeは、署名に使用する証明書やプロビジョニングプロファイルを作成・選択するために、どのApple Developerチームを使用するか確認します。
そのTeamが未設定の場合、次のようなエラーが表示されます。
Signing for "AppName" requires a development team. Select a development team in the Signing & Capabilities editor.
Appleも、Xcodeでプロジェクトをチームに割り当てることで、Xcodeが必要なプロビジョニングプロファイルを作成できると案内しています。自動署名を利用する場合、XcodeがDevelopment Provisioning Profileを管理します。 :contentReference[oaicite:0]{index=0}
主な原因
1. Signing & CapabilitiesでTeamが選択されていない
最も多い原因です。
新しいXcodeプロジェクトを作成した直後や、GitHubなどから別のMacへプロジェクトをコピーした場合、Development Teamが未設定になることがあります。
2. Apple AccountがXcodeに登録されていない
Xcodeが使用できるApple Accountを認識していない場合、Signing & CapabilitiesのTeam一覧に自分のチームが表示されません。
3. 正しいTargetではなくProject側だけ設定している
Xcodeでは、プロジェクト全体とは別に各Targetごとに署名設定があります。
アプリ本体だけでなく、Widget Extension、Notification Service Extension、Share Extensionなどを使用している場合は、それぞれのTargetにTeam設定が必要になることがあります。
4. Automatically manage signingが無効になっている
手動署名を使用している場合、Teamだけでなく証明書やProvisioning Profileも正しく設定する必要があります。
Appleは通常の開発では自動署名を利用でき、XcodeがDevelopment Provisioning Profileを管理すると案内しています。 :contentReference[oaicite:1]{index=1}
5. Bundle Identifierが正しくない
Bundle Identifierが他のアプリと競合していたり、Apple Developer側のApp IDと一致していなかったりすると、Teamを選択しても署名設定が完了しない場合があります。
6. 複数Targetの一部だけTeamが未設定
アプリ本体ではTeamを選択していても、TestsやExtensionsなど別TargetのTeamが未設定だとビルド時にエラーになることがあります。
代表的な発生状況
- 新規Xcodeプロジェクトを実機で実行したとき
- GitHubからCloneしたプロジェクトを初めてビルドしたとき
- 別のMacへプロジェクトを移動したとき
- Xcodeを再インストールしたとき
- Apple AccountをXcodeから削除したとき
- Bundle Identifierを変更したとき
- WidgetやNotification Extensionを追加したとき
- Automatically manage signingをオフにしたとき
確認手順
1. Signing & Capabilitiesを確認する
- Xcodeでプロジェクトを開きます。
- Project Navigatorでプロジェクト名をクリックします。
- TARGETSからアプリのTargetを選択します。
- 「Signing & Capabilities」を開きます。
- 「Team」を確認します。
Teamが「None」になっている場合は、使用するApple Developerチームを選択します。
2. Bundle Identifierを確認する
同じ画面でBundle Identifierを確認します。
例:
com.example.myapp
他人が使用しているBundle Identifierや、Apple Developer側で登録済みの別アプリと競合する識別子を使用すると、署名設定に失敗することがあります。
3. Apple Accountを確認する
Xcodeの設定からApple Accountが登録されているか確認します。
通常は次の場所から確認できます。
Xcode → Settings → Accounts
Apple Accountが表示されていない場合は追加します。
解決方法1:Teamを選択する
まず最初に試す方法です。
- Xcodeでプロジェクトを開きます。
- プロジェクト名を選択します。
- 対象Targetを選択します。
- 「Signing & Capabilities」を開きます。
- 「Team」から自分のチームを選択します。
無料のApple Accountでも、対応する範囲で実機テスト用の署名を行える場合があります。
ポイント:アプリ本体だけでなく、TestsやExtensionsが存在する場合は、それぞれのTargetのSigning & Capabilitiesも確認してください。
解決方法2:Automatically manage signingを有効にする
手動でProvisioning Profileを管理する必要がない場合は、自動署名を利用する方法が簡単です。
- Targetを選択します。
- 「Signing & Capabilities」を開きます。
- 「Automatically manage signing」にチェックを入れます。
- Teamを選択します。
自動署名を使用すると、XcodeがDevelopment Provisioning Profileを管理します。 :contentReference[oaicite:2]{index=2}
App Store Connectへのアップロード時も、自動署名を選択した場合はXcodeが配布用Provisioning Profileを管理できます。 :contentReference[oaicite:3]{index=3}
解決方法3:Apple AccountをXcodeへ追加する
Team一覧に自分のアカウントが表示されない場合は、Apple Accountを追加します。
- Xcodeを開きます。
- 「Xcode」→「Settings」を開きます。
- 「Accounts」を選択します。
- 「+」からApple Accountを追加します。
- Apple Accountでサインインします。
追加後、再度Signing & CapabilitiesのTeamを確認してください。
解決方法4:すべてのTargetのTeamを確認する
複数Targetが存在するプロジェクトでは、一部のTargetだけTeamが設定されていない場合があります。
例えば次のようなTargetを確認します。
- アプリ本体
- Unit Tests
- UI Tests
- Widget Extension
- Share Extension
- Notification Service Extension
各Targetの「Signing & Capabilities」を開き、必要に応じて同じTeamを設定します。
解決方法5:Bundle Identifierを変更する
個人開発やサンプルプロジェクトの場合、既存のBundle Identifierが使用できないことがあります。
その場合は、一意になるよう変更します。
変更前:
com.example.app
変更後:
jp.example.myapp
Bundle Identifierは通常、逆ドメイン形式で設定します。
解決方法6:署名設定をコマンドで確認する
現在のプロジェクトに設定されているSigning Teamを確認したい場合は、Terminalから次のコマンドを利用できます。
xcodebuild -showBuildSettings | grep DEVELOPMENT_TEAM
Team IDが設定されていれば、次のような結果が表示されます。
DEVELOPMENT_TEAM = ABCDE12345
値が空の場合は、Development Teamが設定されていない可能性があります。
解決方法7:project.pbxprojのDEVELOPMENT_TEAMを確認する
Xcodeのプロジェクト設定内部では、Development Teamは通常次のような形式で保存されています。
DEVELOPMENT_TEAM = ABCDE12345;
Gitでプロジェクトを共有している場合、この値が削除・変更されていないか確認すると原因を特定できることがあります。
注意:project.pbxprojを直接編集するとプロジェクトファイルを壊す可能性があります。基本的にはXcodeのSigning & Capabilitiesから変更してください。
解決方法8:Provisioning Profileを更新する
Teamを正しく設定しても署名エラーが続く場合は、Provisioning Profileが古い可能性があります。
Appleは、自動署名で新しいProvisioning ProfileをXcodeに要求させたい場合、キャッシュされたProvisioning Profileを整理して再ビルドする方法を案内しています。 :contentReference[oaicite:4]{index=4}
Provisioning Profileの保存場所は次のとおりです。
~/Library/MobileDevice/Provisioning Profiles/
Terminalでは次のように確認できます。
ls ~/Library/MobileDevice/Provisioning\ Profiles/
不要なProfileを削除したあと再ビルドすると、Automatic Signingによって新しいProfileが取得される場合があります。
注意:Provisioning Profileを削除する前に、必要であればバックアップしてください。
手動署名を使用している場合
Automatically manage signingを使わず手動署名を利用する場合は、Development Team以外にも次の項目を確認する必要があります。
- App ID
- Development Certificate
- Provisioning Profile
- 登録済みデバイス
- Bundle Identifier
Appleによると、手動でDevelopment Provisioning Profileを作成する場合は、App ID、Development Certificate、登録済みデバイスが必要です。 :contentReference[oaicite:5]{index=5}
CIやxcodebuildで発生する場合
ローカルのXcodeではビルドできるのに、CIやTerminalからのxcodebuildでエラーになる場合は、Development Teamを明示的に指定できる場合があります。
xcodebuild \ -project MyApp.xcodeproj \ -scheme MyApp \ DEVELOPMENT_TEAM=ABCDE12345 \ build
ただし、Team IDだけ指定しても証明書やProvisioning Profileが存在しなければ署名は成功しません。
それでも直らない場合
次の項目を順番に確認してください。
- XcodeのAccountsにApple Accountが登録されているか
- Signing & CapabilitiesでTeamが設定されているか
- Automatically manage signingが有効か
- Bundle Identifierが一意か
- すべてのTargetでTeamが設定されているか
- 証明書が有効期限切れになっていないか
- Provisioning Profileが古くなっていないか
注意点
Team IDやBundle Identifierをむやみに変更すると、Push Notifications、Associated Domains、Sign in with AppleなどのCapabilitiesやApp Store Connect側の設定に影響する場合があります。
既に公開中のアプリでは、Bundle Identifierは特に慎重に扱ってください。
また、組織のApple Developer Programでは、Developerロールに対してApp IDやテストデバイスの登録など、自動署名に関する制限が設定されている場合があります。 :contentReference[oaicite:6]{index=6}
まとめ
Xcodeの「Signing for requires a development team」は、コード署名に使用するDevelopment Teamが正しく設定されていないときに発生するエラーです。
まずはTargetの「Signing & Capabilities」を開き、Teamを選択して「Automatically manage signing」を有効にしてください。
それでも解決しない場合は、Apple Account、Bundle Identifier、複数Targetの署名設定、証明書、Provisioning Profileを順番に確認すると原因を特定しやすくなります。
