Xcode 27.1 betaでiPhone Duo Simulatorを実行しようとすると、ビルド自体は完了しても、実行先との互換性判定で「iPhone Duo’s iOS Simulator platform doesn’t match App.app’s supported platforms.」と表示されることがあります。本記事では、確認できている公式情報と、まだAppleが原因を確定していない部分を分けながら、安全な切り分け手順を説明します。
表示されるエラー
iPhone Duo’s iOS Simulator platform doesn’t match App.app’s supported platforms.
You can change App.app’s Base SDK or Supported Platforms to support iPhone Duo.
Apple Developer Forumsでは、Xcode 27.1でiPhone Duo Simulatorを選択し、ターゲットのSupported PlatformsがすでにiOSになっているにもかかわらず、この診断が出た事例が報告されています。
原因
直接の意味は、Xcodeがビルド済みのApp.appに記録された対応プラットフォームと、選択中のiPhone Duo Simulatorランタイムを一致すると判定できなかった、というものです。比較にはBase SDK、Supported Platforms、実際に使われたSDK、生成物のCFBundleSupportedPlatformsなどが関係します。
ただし、2026年9月30日時点で、該当フォーラム投稿にはAppleからの回答がなく、この事例固有の根本原因や修正版は公表されていません。したがって「Supported Platformsへ特定の未公開文字列を追加すれば直る」などの断定はできません。
確認済みの重要点:AppleはiPhone Duo用のSDKとSimulatorをXcode 27.1 betaで提供しています。Xcode 27.2 betaのリリースノートにも、iPhone Duoを使う場合はXcode 27.1 betaをダウンロードするよう明記されています。Xcode 27.2 betaの方が新しくても、Duoの実行環境として置き換えられるとは限りません。
発生条件・対象バージョン
- Xcode 27.1 betaでiPhone Duo Simulatorを実行先に選択する
- iPhone Duo用のiOS 27.1 Simulatorランタイムを使う
- ターゲットまたはConfigurationごとのBase SDK/Supported Platformsが、生成物に期待どおり反映されていない
- 別のXcode、古いDerivedData、以前のSDKで作った生成物が残っている
- コマンドラインツールとGUIのXcodeが別のDeveloper Directoryを参照している
最後の4項目は一般的な切り分け候補です。今回のフォーラム事例についてAppleがどれを根本原因と認定したわけではありません。
推奨する対処手順
1. iPhone Duo対応のXcodeを使っているか確認する
Apple DeveloperのダウンロードからXcode 27.1 betaを入手し、そのXcodeでプロジェクトを開きます。Xcode 27.2 betaではなく、Duo対応が明記された27.1 betaを使う点が重要です。
xcodebuild -version
xcode-select -p
xcrun simctl list runtimes | grep -i "iOS 27.1"
複数のXcodeを併用している場合は、Terminalが参照するDeveloper Directoryも確認してください。変更が必要なら、対象のXcodeを指定します。
sudo xcode-select -s /Applications/Xcode-27.1-beta.app/Contents/Developer
2. Base SDKとSupported Platformsを既定値へ戻す
- 対象ターゲットを選択し、Build Settingsを開きます。
- Base SDKを「Latest iOS」にします。
- Supported Platformsで独自の値を手入力している場合は削除し、iOSアプリの標準設定または継承値に戻します。
- Debug、Release、独自Configurationの各列に別値がないか確認します。
- アプリ本体だけでなく、実行に含まれるExtensionやFrameworkターゲットも確認します。
設定値は次のように確認できます。
xcodebuild -showBuildSettings -scheme App -configuration Debug -sdk iphonesimulator | egrep 'SDKROOT|SUPPORTED_PLATFORMS|PLATFORM_NAME|EFFECTIVE_PLATFORM_NAME'
3. iPhone Simulator向けに作り直す
Product → Clean Build Folderを実行し、iPhone Duo Simulatorを選び直して再ビルドします。改善しない場合はXcodeを終了し、該当プロジェクトのDerivedDataだけを退避または削除して再試行します。
DerivedDataの削除はビルドキャッシュや索引を再生成させます。プロジェクトを限定して実施し、署名設定やソースコードまで削除しないよう注意してください。
4. 実際の生成物を確認する
設定画面だけでなく、Xcodeが生成したApp.appのメタデータを確認します。
plutil -p "/path/to/Build/Products/Debug-iphonesimulator/App.app/Info.plist" | grep -A 4 CFBundleSupportedPlatforms
file "/path/to/Build/Products/Debug-iphonesimulator/App.app/App"
生成先がDebug-iphonesimulatorであること、iOS Simulator向けの生成物であることを確認します。App.app内のInfo.plistを直接編集するのではなく、問題があればターゲットのBuild Settingsを修正して再生成してください。
代替策
- iPhone Duo固有のテストが不要な作業は、通常のiPhone/iPad Simulatorで継続する
- レイアウトの可変性は、iPadのウインドウサイズ変更や通常のサイズクラスでも先に確認する
- CIではXcodeのバージョンと
DEVELOPER_DIRを固定し、Duo用ジョブだけXcode 27.1 betaへ分離する - 再現用の最小プロジェクトでも同じエラーが出る場合は、sysdiagnoseとXcodeの診断レポートを添えてFeedback Assistantへ報告する
Appleが修正版を明示するまでは、未確認のプラットフォーム名をSUPPORTED_PLATFORMSへ手動追加する方法は推奨できません。
確認方法
- Xcode 27.1 betaでiPhone Duo Simulatorが実行先に表示されることを確認します。
xcodebuild -showBuildSettingsで、GUIと同じConfigurationがiPhone Simulator SDKを使っていることを確認します。- Clean Build Folder後に再ビルドし、生成先が
*-iphonesimulatorであることを確認します。 - アプリを起動し、プラットフォーム不一致の診断が再表示されないことを確認します。
- 通常のiPhone Simulatorでも起動し、変更による回帰がないことを確認します。
注意点
- Xcode 27.1 betaはベータ版です。本番のアーカイブや提出可否は、当時のApp Store Connect要件も別途確認してください。
- iPhone Duo Simulatorでは、StandByや多くのApp Extensionの実行・デバッグが利用できない既知制限があります。別の失敗を本エラーと混同しないでください。
- Xcode 27.2 betaはiPhone Duo用SDK/Simulatorの入手先ではありません。Appleの案内どおり27.1 betaを併用します。
- フォーラム報告にはまだAppleの回答がないため、設定を直しても再現する場合はツール側の不具合の可能性を残して扱います。
まとめ
iPhone Duo’s iOS Simulator platform doesn’t match App.app’s supported platforms.は、ビルド済みアプリとiPhone Duo Simulatorのプラットフォーム互換性判定に失敗した診断です。まずiPhone Duo対応が明記されたXcode 27.1 betaを使用し、Base SDKとSupported Platformsを既定値へ戻し、古い生成物を消してSimulator向けに再ビルドします。Appleが事例固有の原因や修正版をまだ公表していないため、未確認の設定値を断定的に追加せず、生成物と実際のBuild Settingsを照合しながら切り分けるのが安全です。
