Summary
xcrun simctl install <valid.app> fails even though the app's Info.plist contains a correct, well-formed CFBundleIdentifier — verified independently with plutil -p. The app builds successfully via xcodebuild twice, under two different signing configurations. This is purely an install-time failure.
ERROR · EVERY ATTEMPT
An error was encountered processing the command (domain=IXErrorDomain, code=13):
Simulator device failed to install the application.
Missing bundle ID.
Underlying error (domain=IXErrorDomain, code=13):
Failed to get bundle ID from /QuestionsWeCarry.app
Missing bundle ID.
Environment
MACOS
26.5.2 · Build 25F84
XCODE
26.6 · Build 17F113
SIMULATOR RUNTIME
iOS 26.5 (23F77)
HARDWARE
Apple M5
KERNEL
Darwin 25.5.0 arm64
XCODE.APP / SIMULATOR PLATFORM
both freshly installed
Xcode.app and the iOS Simulator platform were both freshly installed immediately before this was discovered — this may be a first-run / first-boot issue specific to this Xcode 26.6 + iOS 26.5 combination.
Project being built
A SwiftUI iOS app target generated via XcodeGen from project.yml, depending on a local Swift Package with four library products. Nothing exotic — no third-party SDKs, no CocoaPods, no entitlements file.
PROJECT.YML — RELEVANT TARGET BLOCK
PROJECT.YML
targets:
QuestionsWeCarry:
type: application
platform: iOS
deploymentTarget: "17.0"
sources:
- path: App/Sources
- path: App/Resources
type: folder
buildPhase: resources
info:
path: App/Info.plist
properties:
CFBundleDisplayName: "Questions We Carry"
UILaunchScreen: {}
ITSAppUsesNonExemptEncryption: false
UIApplicationSceneManifest:
UIApplicationSupportsMultipleScenes: false
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.brodywolfstudio.questionswecarry
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
SWIFT_VERSION: "5.10"
TARGETED_DEVICE_FAMILY: "1,2"
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
CODE_SIGNING_REQUIRED: NO
CODE_SIGNING_ALLOWED: YES
dependencies:
- package: QWCKit
product: QWCCore
- package: QWCKit
product: QWCEngine
- package: QWCKit
product: QWCStore
- package: QWCKit
product: QWCUI
BUILD COMMAND THAT SUCCEEDS
SHELL
xcodebuild -project QuestionsWeCarry.xcodeproj -scheme QuestionsWeCarry
-configuration Debug -destination "platform=iOS Simulator,id="
-derivedDataPath DerivedData build
Result: BUILD SUCCEEDED, produces DerivedData/Build/Products/Debug-iphonesimulator/QuestionsWeCarry.app.
INFO.PLIST INSIDE THE BUILT .APP (VIA PLUTIL -P)
INFO.PLIST
{
"BuildMachineOSBuild" => "25F84"
"CFBundleDevelopmentRegion" => "en"
"CFBundleDisplayName" => "Questions We Carry"
"CFBundleExecutable" => "QuestionsWeCarry"
"CFBundleIdentifier" => "com.brodywolfstudio.questionswecarry"
"CFBundleInfoDictionaryVersion" => "6.0"
"CFBundleName" => "QuestionsWeCarry"
"CFBundlePackageType" => "APPL"
"CFBundleShortVersionString" => "1.0"
"CFBundleSupportedPlatforms" => [
0 => "iPhoneSimulator"
]
"CFBundleVersion" => "1"
"DTCompiler" => "com.apple.compilers.llvm.clang.1_0"
"DTPlatformBuild" => "23F81a"
"DTPlatformName" => "iphonesimulator"
"DTPlatformVersion" => "26.5"
"DTSDKBuild" => "23F81a"
"DTSDKName" => "iphonesimulator26.5"
"DTXcode" => "2660"
"DTXcodeBuild" => "17F113"
"ITSAppUsesNonExemptEncryption" => false
"MinimumOSVersion" => "17.0"
"UIApplicationSceneManifest" => {
"UIApplicationSupportsMultipleScenes" => false
}
"UIDeviceFamily" => [
0 => 1
1 => 2
]
"UILaunchScreen" => {
}
}
CFBundleIdentifier is present, correctly formed, and matches PRODUCT_BUNDLE_IDENTIFIER. file confirms this is a valid Apple binary property list, not corrupted.
CODESIGN -DV ON THE BUILT APP
CODESIGN -DV
Executable=/QuestionsWeCarry.app/QuestionsWeCarry
Identifier=QuestionsWeCarry-*******
Format=bundle with Mach-O thin (arm64)
CodeDirectory v=20400 size=338 flags=0x2(adhoc) hashes=3+3 location=embedded
Signature=adhoc
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources version=2 rules=13 files=4
Internal requirements count=0 size=12
Note Info.plist=not bound — unclear whether this is expected for an ad-hoc-signed bundle app (as opposed to a framework), or is itself a symptom of the underlying problem.
Reproduction
Minimal, reproducible with the plain command-line tool — no Claude tooling involved in this step:
SHELL
xcrun simctl install "iPhone 17 Pro"
"/DerivedData/Build/Products/Debug-iphonesimulator/QuestionsWeCarry.app"
Result (100% reproducible, every attempt):
STDERR
An error was encountered processing the command (domain=IXErrorDomain, code=13):
Simulator device failed to install the application.
Missing bundle ID.
Underlying error (domain=IXErrorDomain, code=13):
Failed to get bundle ID from /QuestionsWeCarry.app
Missing bundle ID.
Also reproduced with xcrun simctl launch, which fails as a consequence:
Isolation steps taken
All of the following were tried, and none changed the outcome — the exact same "Missing bundle ID" error occurs every time:
01
Two signing configurations — unsigned/linker-signed (Sealed Resources=none) vs. proper ad-hoc sign (Sealed Resources version=2 rules=13 files=4), plus a manual codesign --force --deep --sign - re-sign pass. Same failure every time.
02
Two simulator destinations — generic/platform=iOS Simulator and a concrete device id for iPhone 17 Pro.
03
Two never-before-used simulator devices — iPhone 17 Pro and iPhone Air — ruling out per-device CoreSimulator state corruption.
04
Erase + cold boot — simctl shutdown, erase, boot immediately before a fresh install attempt.
05
Real Simulator.app GUI running — not just a headless simctl boot — ruled out a CoreSimulatorService/GUI dependency.
06
Path with no spaces — copied the .app out of a path containing "Application Support" — ruled out a path-quoting issue.
The build itself is never in question — xcodebuild reports BUILD SUCCEEDED every time; only the subsequent simctl install step fails.
What I'd like feedback on
Is this a known issue with this specific Xcode 26.6 / iOS 26.5 Simulator runtime combination — both very recently installed, so possibly a fresh-install/first-boot bug?
Is there a required build setting for this Xcode version not yet reflected in commonly-documented XcodeGen/xcodebuild recipes — e.g. an entitlements file now required even for simulator-only, no-team builds, or a different expected code-signing identity/format?
Is Info.plist=not bound in the codesign -dv output actually abnormal for an app bundle (as opposed to a framework), and could that be the root cause simctl is choking on?
0
0
16