krz/moonrise

Night-sky companion for iPhone, Apple Watch and Vision Pro: what's up tonight, the Moon, planets, launches and missions, and a Library of the solar system. SwiftUI app with a Cloudflare Workers backend. astronomy cloudflare-workers ios night-sky space swiftui visionos watchos

App/project.yml

196 lines · 6423 bytes

  1name: Moonrise
  2options:
  3  bundleIdPrefix: sh.krz
  4  deploymentTarget:
  5    iOS: "26.0"
  6    watchOS: "26.0"
  7    visionOS: "26.0"
  8packages:
  9  MoonriseKit:
 10    path: ../Packages/MoonriseKit
 11targets:
 12  Moonrise:
 13    type: application
 14    platform: iOS
 15    scheme:
 16      testTargets: [MoonriseUITests]
 17    sources:
 18      - Sources
 19      - Shared
 20      - path: Globes
 21        type: folder
 22    dependencies:
 23      - package: MoonriseKit
 24        product: SkyEngine
 25      - package: MoonriseKit
 26        product: SkyRenderer
 27      - package: MoonriseKit
 28        product: Feeds
 29      - package: MoonriseKit
 30        product: Library
 31      - package: MoonriseKit
 32        product: ObservingLog
 33      - package: MoonriseKit
 34        product: Answers
 35      - target: MoonriseWidgets
 36      - target: MoonriseWatch
 37    entitlements:
 38      path: Sources/Moonrise.entitlements
 39      properties:
 40        aps-environment: development
 41    info:
 42      path: Sources/Info.plist
 43      properties:
 44        MoonriseAPIURL: $(MOONRISE_API_URL)
 45        NSAppTransportSecurity:
 46          NSAllowsLocalNetworking: true
 47    settings:
 48      configs:
 49        Debug:
 50          MOONRISE_API_URL: https://moonrise-server.audit-labs.workers.dev
 51        Release:
 52          MOONRISE_API_URL: https://moonrise-server.audit-labs.workers.dev
 53      base:
 54        PRODUCT_BUNDLE_IDENTIFIER: sh.krz.moonrise
 55        DEVELOPMENT_TEAM: ZCNAX3VL9D
 56        CODE_SIGN_STYLE: Automatic
 57        SWIFT_VERSION: "6.0"
 58        TARGETED_DEVICE_FAMILY: "1,2"
 59        MARKETING_VERSION: "1.0.0"
 60        CURRENT_PROJECT_VERSION: "52"
 61        GENERATE_INFOPLIST_FILE: YES
 62        INFOPLIST_KEY_CFBundleDisplayName: Moonrise
 63        INFOPLIST_KEY_NSSupportsLiveActivities: YES
 64        INFOPLIST_KEY_ITSAppUsesNonExemptEncryption: NO
 65        INFOPLIST_KEY_UIFileSharingEnabled: YES
 66        INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace: YES
 67        ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
 68        INFOPLIST_KEY_UILaunchScreen_Generation: YES
 69        INFOPLIST_KEY_UIStatusBarStyle: UIStatusBarStyleLightContent
 70        INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: UIInterfaceOrientationPortrait
 71        INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight
 72        INFOPLIST_KEY_NSLocationWhenInUseUsageDescription: Moonrise uses your location to draw the sky above you.
 73  MoonriseWidgets:
 74    type: app-extension
 75    platform: iOS
 76    sources: [Widgets, Shared]
 77    dependencies:
 78      - package: MoonriseKit
 79        product: SkyEngine
 80      - package: MoonriseKit
 81        product: SkyRenderer
 82      - sdk: WidgetKit.framework
 83      - sdk: SwiftUI.framework
 84    info:
 85      path: Widgets/Info.plist
 86      properties:
 87        CFBundleDisplayName: Moonrise
 88        CFBundleShortVersionString: $(MARKETING_VERSION)
 89        CFBundleVersion: $(CURRENT_PROJECT_VERSION)
 90        NSWidgetWantsLocation: true
 91        NSExtension:
 92          NSExtensionPointIdentifier: com.apple.widgetkit-extension
 93    settings:
 94      base:
 95        PRODUCT_BUNDLE_IDENTIFIER: sh.krz.moonrise.widgets
 96        DEVELOPMENT_TEAM: ZCNAX3VL9D
 97        CODE_SIGN_STYLE: Automatic
 98        SWIFT_VERSION: "6.0"
 99        TARGETED_DEVICE_FAMILY: "1,2"
100        MARKETING_VERSION: "1.0.0"
101        CURRENT_PROJECT_VERSION: "52"
102  MoonriseWatch:
103    type: application
104    platform: watchOS
105    sources: [Watch]
106    dependencies:
107      - package: MoonriseKit
108        product: SkyEngine
109      - package: MoonriseKit
110        product: SkyRenderer
111      - target: MoonriseWatchWidgets
112    settings:
113      base:
114        PRODUCT_BUNDLE_IDENTIFIER: sh.krz.moonrise.watchkitapp
115        DEVELOPMENT_TEAM: ZCNAX3VL9D
116        CODE_SIGN_STYLE: Automatic
117        SWIFT_VERSION: "6.0"
118        MARKETING_VERSION: "1.0.0"
119        CURRENT_PROJECT_VERSION: "52"
120        GENERATE_INFOPLIST_FILE: YES
121        INFOPLIST_KEY_CFBundleDisplayName: Moonrise
122        INFOPLIST_KEY_WKCompanionAppBundleIdentifier: sh.krz.moonrise
123        INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp: YES
124        INFOPLIST_KEY_NSLocationWhenInUseUsageDescription: Moonrise uses your location to work out tonight's sky.
125        ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
126  MoonriseWatchWidgets:
127    type: app-extension
128    platform: watchOS
129    sources:
130      - Widgets/MoonriseWidgets.swift
131    dependencies:
132      - package: MoonriseKit
133        product: SkyEngine
134      - package: MoonriseKit
135        product: SkyRenderer
136      - sdk: WidgetKit.framework
137      - sdk: SwiftUI.framework
138    info:
139      path: Watch/Widgets-Info.plist
140      properties:
141        CFBundleDisplayName: Moonrise
142        CFBundleShortVersionString: $(MARKETING_VERSION)
143        CFBundleVersion: $(CURRENT_PROJECT_VERSION)
144        NSWidgetWantsLocation: true
145        NSExtension:
146          NSExtensionPointIdentifier: com.apple.widgetkit-extension
147    settings:
148      base:
149        PRODUCT_BUNDLE_IDENTIFIER: sh.krz.moonrise.watchkitapp.widgets
150        DEVELOPMENT_TEAM: ZCNAX3VL9D
151        CODE_SIGN_STYLE: Automatic
152        SWIFT_VERSION: "6.0"
153        MARKETING_VERSION: "1.0.0"
154        CURRENT_PROJECT_VERSION: "52"
155  MoonriseVision:
156    type: application
157    platform: visionOS
158    sources:
159      - Vision
160      - Sources/GlobeView.swift
161      - Sources/GlobeMaps.swift
162      - Sources/ColorHex.swift
163      - path: Globes
164        type: folder
165    dependencies:
166      - package: MoonriseKit
167        product: SkyEngine
168      - package: MoonriseKit
169        product: SkyRenderer
170      - package: MoonriseKit
171        product: Library
172    settings:
173      base:
174        PRODUCT_BUNDLE_IDENTIFIER: sh.krz.moonrise.vision
175        DEVELOPMENT_TEAM: ZCNAX3VL9D
176        CODE_SIGN_STYLE: Automatic
177        SWIFT_VERSION: "6.0"
178        MARKETING_VERSION: "1.0.0"
179        CURRENT_PROJECT_VERSION: "52"
180        GENERATE_INFOPLIST_FILE: YES
181        INFOPLIST_KEY_CFBundleDisplayName: Moonrise
182        INFOPLIST_KEY_UIApplicationSceneManifest_Generation: YES
183  MoonriseUITests:
184    type: bundle.ui-testing
185    platform: iOS
186    sources: [UITests]
187    dependencies:
188      - target: Moonrise
189    settings:
190      base:
191        PRODUCT_BUNDLE_IDENTIFIER: sh.krz.moonrise.uitests
192        DEVELOPMENT_TEAM: ZCNAX3VL9D
193        CODE_SIGN_STYLE: Automatic
194        SWIFT_VERSION: "5.0"
195        TARGETED_DEVICE_FAMILY: "1,2"
196        GENERATE_INFOPLIST_FILE: YES