Watch: share with the complication through a Keychain group, not an App Group
Automatic signing with an App Store Connect API key registers bundle IDs and profiles but cannot create or assign App Groups, so the archive failed. A keychain-access-groups entry needs no portal setup. The demo flag and last summary move into the same group; tests cover the round trip and the migration of a pre-complication token. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
67992dbf43
commit
27469dbc77
11 files changed
+132
-49
No files matched your search
+8
-5
@@ -41,15 +41,17 @@ targets:
|
||||
CFBundleURLTypes:
|
||||
- CFBundleURLName: org.gbrown.wristcode
|
||||
CFBundleURLSchemes: [wristcode]
|
||||
WristCodeKeychainGroup: $(AppIdentifierPrefix)org.gbrown.wristcode.shared
|
||||
entitlements:
|
||||
path: WristCode/WristCode.entitlements
|
||||
properties:
|
||||
# Archives are signed for development; exporting for App Store Connect re-signs with the
|
||||
# distribution profile, which turns this into production.
|
||||
aps-environment: development
|
||||
# Shared with the complication: the App Group's defaults, and its Keychain access group
|
||||
# for the device token.
|
||||
com.apple.security.application-groups: [group.org.gbrown.wristcode]
|
||||
# Shared with the complication: the device token, gateway URL, demo flag and last summary.
|
||||
# A Keychain group rather than an App Group, because automatic signing with an App Store
|
||||
# Connect API key can register IDs and profiles but not App Groups.
|
||||
keychain-access-groups: [$(AppIdentifierPrefix)org.gbrown.wristcode.shared]
|
||||
settings:
|
||||
base:
|
||||
# The container's bundle ID plus .watchkitapp, as App Store validation requires. This is also
|
||||
@@ -57,7 +59,7 @@ targets:
|
||||
PRODUCT_BUNDLE_IDENTIFIER: org.gbrown.wristcode.watchkitapp
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
||||
# The complication. It shares the API client, models, Keychain store and demo fixtures with the
|
||||
# app, and reads the device token through the App Group.
|
||||
# app, and reads the device token through the shared Keychain group.
|
||||
WristCodeWidget:
|
||||
type: app-extension
|
||||
platform: watchOS
|
||||
@@ -76,10 +78,11 @@ targets:
|
||||
CFBundleVersion: $(CURRENT_PROJECT_VERSION)
|
||||
NSExtension:
|
||||
NSExtensionPointIdentifier: com.apple.widgetkit-extension
|
||||
WristCodeKeychainGroup: $(AppIdentifierPrefix)org.gbrown.wristcode.shared
|
||||
entitlements:
|
||||
path: WristCodeWidget/WristCodeWidget.entitlements
|
||||
properties:
|
||||
com.apple.security.application-groups: [group.org.gbrown.wristcode]
|
||||
keychain-access-groups: [$(AppIdentifierPrefix)org.gbrown.wristcode.shared]
|
||||
settings:
|
||||
base:
|
||||
# Extensions take the watch app's bundle ID as a prefix.
|
||||
|
||||
Reference in new issue
Block a user