learning_ai_clock/ios/project.yml
saravanakumardb1 d1b4534b22 refactor(ios): migrate Cloud/ files to ByteLystPlatformSDK — eliminate duplicated platform code
Replaced standalone implementations with thin wrappers over shared SDK:
- KeychainHelper → delegates to BLKeychain (53→27 lines)
- TelemetryService → delegates to BLTelemetryClient (139→55 lines)
- FeatureFlagService → delegates to BLFeatureFlagClient (72→39 lines)
- AuthService → delegates to BLAuthClient (359→171 lines)
- project.yml → added ByteLystPlatformSDK local package dependency

Total: 623 lines of duplicated code → 292 lines of thin wrappers.
PlatformSyncManager kept as-is (product-specific timer DTOs).
All existing call-site APIs preserved — zero breaking changes.
2026-02-28 22:12:37 -08:00

232 lines
6.8 KiB
YAML

name: ChronoMind
options:
bundleIdPrefix: com.chronomind
deploymentTarget:
iOS: "17.0"
watchOS: "10.0"
macOS: "14.0"
xcodeVersion: "16.0"
createIntermediateGroups: true
generateEmptyDirectories: true
groupSortPosition: top
packages:
ByteLystPlatformSDK:
path: ../../learning_ai_common_plat/packages/swift-platform-sdk
settings:
base:
SWIFT_VERSION: "5.9"
TARGETED_DEVICE_FAMILY: "1,2"
DEVELOPMENT_TEAM: 748N7QPX7J
CODE_SIGN_STYLE: Automatic
targets:
ChronoMind:
type: application
platform: iOS
deploymentTarget: "17.0"
sources:
- path: ChronoMind
excludes:
- "**/.DS_Store"
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.chronomind.app
INFOPLIST_GENERATION_MODE: GeneratedFile
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
GENERATE_INFOPLIST_FILE: true
INFOPLIST_KEY_UIApplicationSceneManifest_Generation: true
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: true
INFOPLIST_KEY_UILaunchScreen_Generation: true
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"
INFOPLIST_KEY_CFBundleDisplayName: ChronoMind
SUPPORTS_MACCATALYST: false
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD: false
INFOPLIST_KEY_NSSupportsLiveActivities: true
dependencies:
- target: ChronoMindWidgets
- target: ChronoMindWatch
- package: ByteLystPlatformSDK
entitlements:
path: ChronoMind/ChronoMind.entitlements
properties:
com.apple.security.application-groups:
- group.com.chronomind.shared
ChronoMindTests:
type: bundle.unit-test
platform: iOS
deploymentTarget: "17.0"
sources:
- path: ChronoMindTests
excludes:
- "**/.DS_Store"
dependencies:
- target: ChronoMind
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.chronomind.tests
GENERATE_INFOPLIST_FILE: true
ChronoMindWidgets:
type: app-extension
platform: iOS
deploymentTarget: "17.0"
sources:
- path: ChronoMindWidgets
excludes:
- "**/.DS_Store"
- path: ChronoMind/Shared/TimerEngine
- path: ChronoMind/Shared/AppGroup
- path: ChronoMind/LiveActivity/TimerActivityAttributes.swift
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.chronomind.app.widgets
INFOPLIST_GENERATION_MODE: GeneratedFile
GENERATE_INFOPLIST_FILE: true
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
INFOPLIST_KEY_NSExtension_NSExtensionPointIdentifier: com.apple.widgetkit-extension
INFOPLIST_KEY_CFBundleDisplayName: ChronoMind Widgets
entitlements:
path: ChronoMindWidgets/ChronoMindWidgets.entitlements
properties:
com.apple.security.application-groups:
- group.com.chronomind.shared
ChronoMindWatch:
type: application
platform: watchOS
deploymentTarget: "10.0"
sources:
- path: ChronoMindWatch
excludes:
- "**/.DS_Store"
- Complications
- path: ChronoMind/Shared/TimerEngine
- path: ChronoMind/Shared/AppGroup
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.chronomind.app.watchkitapp
INFOPLIST_GENERATION_MODE: GeneratedFile
GENERATE_INFOPLIST_FILE: true
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
INFOPLIST_KEY_WKCompanionAppBundleIdentifier: com.chronomind.app
INFOPLIST_KEY_CFBundleDisplayName: ChronoMind
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp: true
dependencies:
- target: ChronoMindWatchComplications
entitlements:
path: ChronoMindWatch/ChronoMindWatch.entitlements
properties:
com.apple.security.application-groups:
- group.com.chronomind.shared
ChronoMindWatchComplications:
type: app-extension
platform: watchOS
deploymentTarget: "10.0"
sources:
- path: ChronoMindWatch/Complications
excludes:
- "**/.DS_Store"
- path: ChronoMind/Shared/TimerEngine
- path: ChronoMind/Shared/AppGroup
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.chronomind.app.watchkitapp.complications
INFOPLIST_GENERATION_MODE: GeneratedFile
GENERATE_INFOPLIST_FILE: true
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
INFOPLIST_KEY_NSExtension_NSExtensionPointIdentifier: com.apple.widgetkit-extension
INFOPLIST_KEY_CFBundleDisplayName: ChronoMind Complications
entitlements:
path: ChronoMindWatch/ChronoMindWatch.entitlements
properties:
com.apple.security.application-groups:
- group.com.chronomind.shared
ChronoMindMac:
type: application
platform: macOS
deploymentTarget: "14.0"
sources:
- path: ChronoMindMac
excludes:
- "**/.DS_Store"
- path: ChronoMind/Shared/TimerEngine
- path: ChronoMind/Shared/AppGroup
- path: ChronoMind/Shared/Reschedule
- path: ChronoMind/Shared/Gamification
- path: ChronoMind/Shared/Cloud
dependencies:
- package: ByteLystPlatformSDK
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.chronomind.mac
INFOPLIST_GENERATION_MODE: GeneratedFile
GENERATE_INFOPLIST_FILE: true
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
INFOPLIST_KEY_CFBundleDisplayName: ChronoMind
INFOPLIST_KEY_LSUIElement: true
entitlements:
path: ChronoMindMac/ChronoMindMac.entitlements
properties:
com.apple.security.application-groups:
- group.com.chronomind.shared
com.apple.security.app-sandbox: true
com.apple.security.network.client: true
schemes:
ChronoMind:
build:
targets:
ChronoMind: all
ChronoMindWidgets: all
ChronoMindTests: [test]
run:
config: Debug
test:
config: Debug
targets:
- ChronoMindTests
profile:
config: Release
analyze:
config: Debug
archive:
config: Release
ChronoMindWatch:
build:
targets:
ChronoMindWatch: all
ChronoMindWatchComplications: all
run:
config: Debug
profile:
config: Release
analyze:
config: Debug
archive:
config: Release
ChronoMindMac:
build:
targets:
ChronoMindMac: all
run:
config: Debug
profile:
config: Release
analyze:
config: Debug
archive:
config: Release