The TabataGo scheme only listed TabataGo + TabataGoWidget (iOS), so
xcodebuild -scheme TabataGo never compiled the watchOS app in CI. Add
TabataGoWatch + TabataGoWatchWidget to the build targets so watch-side
breakage is caught before deploy.
Note: TabataGoWidget is a real iOS widget target (defined at project.yml
line 165, app-extension/iOS), NOT a phantom — the prior review was wrong
on that point. The real gap was the missing watch targets.
Embed deps were already correct (TabataGo embeds TabataGoWatch, which
embeds TabataGoWatchWidget). Verified locally with xcodegen 2.45.4:
the generated xcscheme now lists all 4 BlueprintNames.
⚠️ Risk: if the watch target has latent build issues (never compiled in
CI before), this will surface them on the next PR. Desirable — catch
before merge, not in the field.
225 lines
6.7 KiB
YAML
225 lines
6.7 KiB
YAML
name: TabataGo
|
|
|
|
options:
|
|
bundleIdPrefix: fr.millianlmx.tabatago
|
|
deploymentTarget:
|
|
iOS: "26.0"
|
|
watchOS: "11.0"
|
|
xcodeVersion: "26"
|
|
generateEmptyDirectories: true
|
|
createIntermediateGroups: true
|
|
groupSortPosition: top
|
|
|
|
settings:
|
|
base:
|
|
SWIFT_VERSION: "6.0"
|
|
IPHONEOS_DEPLOYMENT_TARGET: "26.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
SWIFT_EMIT_MODULE_FOR_EXPLICIT_BUILD: NO
|
|
GCC_TREAT_WARNINGS_AS_ERRORS: NO
|
|
SWIFT_TREAT_WARNINGS_AS_ERRORS: NO
|
|
DEBUG_INFORMATION_FORMAT: dwarf-with-dsym
|
|
DEVELOPMENT_TEAM: "2MJF39L8VY"
|
|
|
|
packages:
|
|
Supabase:
|
|
url: https://github.com/supabase/supabase-swift
|
|
from: "2.5.0"
|
|
RevenueCat:
|
|
url: https://github.com/RevenueCat/purchases-ios
|
|
from: "5.0.0"
|
|
|
|
targets:
|
|
TabataGo:
|
|
type: application
|
|
platform: iOS
|
|
deploymentTarget: "26.0"
|
|
sources:
|
|
- path: TabataGo
|
|
excludes:
|
|
- "**/.DS_Store"
|
|
resources:
|
|
- path: TabataGo/Resources
|
|
excludes:
|
|
- Info.plist
|
|
info:
|
|
path: TabataGo/Resources/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: TabataGo
|
|
CFBundleShortVersionString: "1.0"
|
|
CFBundleVersion: "2"
|
|
UILaunchScreen:
|
|
UIColorName: ""
|
|
UIImageName: ""
|
|
UISupportedInterfaceOrientations:
|
|
- UIInterfaceOrientationPortrait
|
|
NSHealthShareUsageDescription: "TabataGo reads your health data to show fitness stats and personalize your workouts."
|
|
NSHealthUpdateUsageDescription: "TabataGo saves your Tabata workouts to Apple Health to track calories, heart rate, and contribute to your Activity Rings."
|
|
NSMotionUsageDescription: "TabataGo uses motion data to improve calorie estimates during workouts."
|
|
SUPABASE_URL: $(SUPABASE_URL)
|
|
SUPABASE_ANON_KEY: $(SUPABASE_ANON_KEY)
|
|
REVENUECAT_API_KEY: $(REVENUECAT_API_KEY)
|
|
POSTHOG_API_KEY: $(POSTHOG_API_KEY)
|
|
NSSupportsLiveActivities: true
|
|
NSSupportsLiveActivitiesFrequentUpdates: true
|
|
UIBackgroundModes:
|
|
- audio
|
|
entitlements:
|
|
path: TabataGo/Resources/TabataGo.entitlements
|
|
properties:
|
|
com.apple.developer.healthkit: true
|
|
com.apple.developer.healthkit.access:
|
|
- health-records
|
|
com.apple.security.application-groups:
|
|
- group.fr.millianlmx.tabatago
|
|
dependencies:
|
|
- package: Supabase
|
|
product: Supabase
|
|
- package: RevenueCat
|
|
product: RevenueCat
|
|
|
|
- target: TabataGoWatch
|
|
embed: true
|
|
- target: TabataGoWidget
|
|
embed: true
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: fr.millianlmx.tabatago
|
|
INFOPLIST_FILE: TabataGo/Resources/Info.plist
|
|
CODE_SIGN_ENTITLEMENTS: TabataGo/Resources/TabataGo.entitlements
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
|
|
ENABLE_PREVIEWS: YES
|
|
configFiles:
|
|
Debug: Config/Secrets.xcconfig
|
|
Release: Config/Secrets.xcconfig
|
|
|
|
TabataGoWatch:
|
|
type: application
|
|
platform: watchOS
|
|
deploymentTarget: "11.0"
|
|
sources:
|
|
- path: TabataGoWatch
|
|
excludes:
|
|
- "**/.DS_Store"
|
|
- "Resources/Info.plist"
|
|
- "Complications/**"
|
|
# Shared protocol types — referenced by both targets
|
|
- path: TabataGo/Services/WatchConnectivityTypes.swift
|
|
group: TabataGoWatch/Services
|
|
resources:
|
|
- path: TabataGoWatch/Resources
|
|
excludes:
|
|
- Info.plist
|
|
info:
|
|
path: TabataGoWatch/Resources/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: TabataGo
|
|
CFBundleShortVersionString: "1.0"
|
|
CFBundleVersion: "2"
|
|
WKApplication: true
|
|
WKCompanionAppBundleIdentifier: fr.millianlmx.tabatago
|
|
NSHealthShareUsageDescription: "TabataGo reads your heart rate and calories during workouts."
|
|
NSHealthUpdateUsageDescription: "TabataGo saves workout data to Apple Health directly from your Watch."
|
|
entitlements:
|
|
path: TabataGoWatch/Resources/TabataGoWatch.entitlements
|
|
properties:
|
|
com.apple.developer.healthkit: true
|
|
com.apple.security.application-groups:
|
|
- group.fr.millianlmx.tabatago
|
|
dependencies:
|
|
- target: TabataGoWatchWidget
|
|
embed: true
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: fr.millianlmx.tabatago.watchkitapp
|
|
INFOPLIST_FILE: TabataGoWatch/Resources/Info.plist
|
|
CODE_SIGN_ENTITLEMENTS: TabataGoWatch/Resources/TabataGoWatch.entitlements
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
WATCHOS_DEPLOYMENT_TARGET: "11.0"
|
|
TARGETED_DEVICE_FAMILY: "4"
|
|
ENABLE_PREVIEWS: YES
|
|
|
|
TabataGoWatchWidget:
|
|
type: app-extension
|
|
platform: watchOS
|
|
deploymentTarget: "11.0"
|
|
sources:
|
|
- path: TabataGoWatch/Complications
|
|
excludes:
|
|
- "**/.DS_Store"
|
|
info:
|
|
path: TabataGoWatch/Complications/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: TabataGoWidget
|
|
CFBundleShortVersionString: "1.0"
|
|
CFBundleVersion: "2"
|
|
NSExtension:
|
|
NSExtensionPointIdentifier: com.apple.widgetkit-extension
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: fr.millianlmx.tabatago.watchkitapp.widget
|
|
TARGETED_DEVICE_FAMILY: "4"
|
|
WATCHOS_DEPLOYMENT_TARGET: "11.0"
|
|
|
|
TabataGoWidget:
|
|
type: app-extension
|
|
platform: iOS
|
|
deploymentTarget: "26.0"
|
|
sources:
|
|
- path: TabataGoWidget
|
|
excludes:
|
|
- "**/.DS_Store"
|
|
- path: TabataGo/Models/WorkoutActivityAttributes.swift
|
|
- path: TabataGo/Models/MusicActivityAttributes.swift
|
|
info:
|
|
path: TabataGoWidget/Info.plist
|
|
properties:
|
|
NSExtension:
|
|
NSExtensionPointIdentifier: com.apple.widgetkit-extension
|
|
NSSupportsLiveActivities: true
|
|
NSSupportsLiveActivitiesFrequentUpdates: true
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: fr.millianlmx.tabatago.widget
|
|
IPHONEOS_DEPLOYMENT_TARGET: "26.0"
|
|
TARGETED_DEVICE_FAMILY: "1"
|
|
ENABLE_PREVIEWS: YES
|
|
|
|
TabataGoTests:
|
|
type: bundle.unit-test
|
|
platform: iOS
|
|
deploymentTarget: "26.0"
|
|
sources:
|
|
- TabataGoTests
|
|
dependencies:
|
|
- target: TabataGo
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: fr.millianlmx.tabatago.tests
|
|
|
|
TabataGoUITests:
|
|
type: bundle.ui-testing
|
|
platform: iOS
|
|
deploymentTarget: "26.0"
|
|
sources:
|
|
- TabataGoUITests
|
|
dependencies:
|
|
- target: TabataGo
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: fr.millianlmx.tabatago.uitests
|
|
|
|
schemes:
|
|
TabataGo:
|
|
build:
|
|
targets:
|
|
TabataGo: all
|
|
TabataGoWidget: all
|
|
TabataGoWatch: all
|
|
TabataGoWatchWidget: all
|
|
run:
|
|
config: Debug
|
|
archive:
|
|
config: Release
|