Files
iceglass/project.yml
T
rzen aaffa3771c Add iPhone target with shared data layer and persistent cache
Two-target restructure: shared sources (models, services, settings,
extensions, team logos) move into Shared/, consumed by both the
existing macOS menu bar app and a new iOS app. MainService no longer
imports AppKit — platform code attaches via a MainServiceObserver
protocol (MacObserverAdapter wires back to MenuManager / StatusItemManager
/ NotificationManager).

iPhone app is a single SwiftUI page mirroring the macOS menu (playoff
round + yesterday/today/tomorrow), with a gear-icon settings sheet
(display option + IndieAbout for license/changelog). Persistent JSON
snapshot in Application Support paints last-known data on cold launch;
"Updated …" header escalates secondary → orange (>5min) → red (>30min)
so staleness is visually unmistakable. Foreground polling, scenePhase
refresh, and pull-to-refresh; no notifications on iOS in v1.
2026-04-25 06:34:36 -04:00

119 lines
3.0 KiB
YAML

name: IceGlass
options:
bundleIdPrefix: dev.rzen.indie
deploymentTarget:
macOS: "13.0"
iOS: "17.0"
xcodeVersion: "16.0"
generateEmptyDirectories: true
packages:
IndieAbout:
url: https://git.rzen.dev/rzen/indie-about.git
from: 0.1.0
targets:
IceGlass:
type: application
platform: macOS
sources:
- path: Shared
excludes:
- Resources/TeamLogos
- path: Shared/Resources/TeamLogos
type: folder
buildPhase: resources
- path: IceGlass
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: dev.rzen.indie.IceGlass
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
INFOPLIST_FILE: IceGlass/Info.plist
CODE_SIGN_ENTITLEMENTS: IceGlass.entitlements
DEVELOPMENT_TEAM: C32Z8JNLG6
SWIFT_VERSION: "6.0"
MACOSX_DEPLOYMENT_TARGET: "13.0"
PRODUCT_NAME: IceGlass
COMBINE_HIDPI_IMAGES: true
SWIFT_STRICT_CONCURRENCY: complete
ENABLE_USER_SCRIPT_SANDBOXING: false
ENABLE_HARDENED_RUNTIME: true
configs:
Debug:
SWIFT_ACTIVE_COMPILATION_CONDITIONS: DEBUG
Release:
SWIFT_OPTIMIZATION_LEVEL: -O
dependencies:
- package: IndieAbout
postCompileScripts:
- script: "\"${SRCROOT}/Scripts/update_build_number.sh\""
name: "Update Build Number"
shell: /bin/sh
inputFiles:
- $(TARGET_BUILD_DIR)/$(INFOPLIST_PATH)
- $(DWARF_DSYM_FOLDER_PATH)/$(DWARF_DSYM_FILE_NAME)/Contents/Info.plist
entitlements:
path: IceGlass.entitlements
properties:
com.apple.security.app-sandbox: true
com.apple.security.network.client: true
IceGlass-iOS:
type: application
platform: iOS
sources:
- path: Shared
excludes:
- Resources/TeamLogos
- path: Shared/Resources/TeamLogos
type: folder
buildPhase: resources
- path: IceGlass-iOS
excludes:
- Resources
- path: LICENSE.md
buildPhase: resources
- path: CHANGELOG.md
buildPhase: resources
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: dev.rzen.indie.IceGlass.iOS
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: "1"
INFOPLIST_FILE: IceGlass-iOS/Info.plist
DEVELOPMENT_TEAM: C32Z8JNLG6
SWIFT_VERSION: "6.0"
IPHONEOS_DEPLOYMENT_TARGET: "17.0"
TARGETED_DEVICE_FAMILY: "1"
PRODUCT_NAME: IceGlass
SWIFT_STRICT_CONCURRENCY: complete
ENABLE_USER_SCRIPT_SANDBOXING: false
GENERATE_INFOPLIST_FILE: false
configs:
Debug:
SWIFT_ACTIVE_COMPILATION_CONDITIONS: DEBUG
Release:
SWIFT_OPTIMIZATION_LEVEL: -O
dependencies:
- package: IndieAbout
schemes:
IceGlass:
build:
targets:
IceGlass: all
run:
config: Debug
archive:
config: Release
IceGlass-iOS:
build:
targets:
IceGlass-iOS: all
run:
config: Debug
archive:
config: Release