Watch: waiting-count complication and multi-select questions
A WidgetKit extension (accessoryCircular, Rectangular, Inline, Corner) shows GET /v1/summary. The device token moves to the App Group's Keychain access group on launch so the extension can read it without re-pairing; the app reloads the timeline when its feed counts change and on notifications. Multi-select questions toggle options and send an array of values. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
d4d67295c6
commit
0994fd7d5a
18 files changed
+800
-23
No files matched your search
@@ -19,6 +19,9 @@ targets:
|
||||
platform: watchOS
|
||||
sources:
|
||||
- WristCode
|
||||
dependencies:
|
||||
# Embedded in the watch app's PlugIns folder.
|
||||
- target: WristCodeWidget
|
||||
info:
|
||||
path: WristCode/Info.plist
|
||||
properties:
|
||||
@@ -32,18 +35,53 @@ targets:
|
||||
WKWatchOnly: true
|
||||
# HTTPS only, so no export compliance documentation is needed.
|
||||
ITSAppUsesNonExemptEncryption: false
|
||||
# wristcode://thread/<hostId>/<threadId>, which the complication opens.
|
||||
CFBundleURLTypes:
|
||||
- CFBundleURLName: org.gbrown.wristcode
|
||||
CFBundleURLSchemes: [wristcode]
|
||||
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]
|
||||
settings:
|
||||
base:
|
||||
# The container's bundle ID plus .watchkitapp, as App Store validation requires. This is also
|
||||
# the APNs topic.
|
||||
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.
|
||||
WristCodeWidget:
|
||||
type: app-extension
|
||||
platform: watchOS
|
||||
sources:
|
||||
- WristCodeWidget
|
||||
- WristCode/API
|
||||
- WristCode/Auth
|
||||
- WristCode/Demo
|
||||
- WristCode/Shared
|
||||
- WristCode/Views/Theme.swift
|
||||
info:
|
||||
path: WristCodeWidget/Info.plist
|
||||
properties:
|
||||
CFBundleDisplayName: WristCode
|
||||
CFBundleShortVersionString: $(MARKETING_VERSION)
|
||||
CFBundleVersion: $(CURRENT_PROJECT_VERSION)
|
||||
NSExtension:
|
||||
NSExtensionPointIdentifier: com.apple.widgetkit-extension
|
||||
entitlements:
|
||||
path: WristCodeWidget/WristCodeWidget.entitlements
|
||||
properties:
|
||||
com.apple.security.application-groups: [group.org.gbrown.wristcode]
|
||||
settings:
|
||||
base:
|
||||
# Extensions take the watch app's bundle ID as a prefix.
|
||||
PRODUCT_BUNDLE_IDENTIFIER: org.gbrown.wristcode.watchkitapp.widget
|
||||
# The App Store only takes a watch-only app inside an empty iOS stub, the same pair Xcode's
|
||||
# "Watch-only App" template creates. The stub owns the App Store Connect record
|
||||
# (org.gbrown.wristcode) and embeds the watch app; it never installs on an iPhone.
|
||||
|
||||
Reference in new issue
Block a user