Files
tabatago/tabatago-swift/project.yml
Millian Lamiaux 0b476f5871 fix(project.yml): build watch targets in TabataGo scheme
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.
2026-07-19 16:50:47 +02:00

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