Post

Replies

Boosts

Views

Activity

Reply to DeviceActivity Report Extension cannot pass App Store Connect validation without becoming un-installable on device
@yosuke65 @cbcb After extensive debugging, I found a configuration that passes both App Store Connect validation AND works on device. The Problem: Embedding in PlugIns folder (dstSubfolderSpec = 13) → ASC rejects with "Missing NSExtensionPrincipalClass" Adding NSExtensionPrincipalClass → Device install fails with "not allowed for this extension point" The Solution: Use ExtensionKit extension type embedded in the Extensions folder (not PlugIns), with explicit dstPath: project.pbxproj - Embed Phase: /* Embed ExtensionKit Extensions / = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "$(EXTENSIONS_FOLDER_PATH)"; dstSubfolderSpec = 16; files = ( / YourReportExtension.appex in Embed ExtensionKit Extensions */, ); name = "Embed ExtensionKit Extensions"; runOnlyForDeploymentPostprocessing = 0; }; Key settings: dstSubfolderSpec = 16 (Extensions folder, NOT 13/PlugIns) dstPath = "$(EXTENSIONS_FOLDER_PATH)" ← Critical! productType = "com.apple.product-type.extensionkit-extension" explicitFileType = "wrapper.extensionkit-extension" Info.plist (EXAppExtensionAttributes only, no NSExtension): The missing piece for me was the explicit dstPath = "$(EXTENSIONS_FOLDER_PATH)" - without it, the extension wouldn't render properly even when in the Extensions folder. Hope this helps others hitting this wall!
Topic: App & System Services SubTopic: General Tags:
Dec ’25