Repository navigation
Expand file tree
/
Copy pathproject.yml
More file actions
153 lines (149 loc) · 6.73 KB
/
Copy pathproject.yml
File metadata and controls
153 lines (149 loc) · 6.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: Continuity
options:
bundleIdPrefix: com.continuity
deploymentTarget:
iOS: "26.0"
createIntermediateGroups: true
groupSortPosition: top
packages:
ContinuityCore:
path: Packages/ContinuityCore
ContinuityKit:
path: Packages/ContinuityKit
settings:
base:
SWIFT_VERSION: "5.0"
MARKETING_VERSION: "0.1.0"
CURRENT_PROJECT_VERSION: "2"
DEVELOPMENT_TEAM: "KP832RV67A"
CODE_SIGN_STYLE: Automatic
targets:
Continuity:
type: application
platform: iOS
deploymentTarget: "26.0"
sources:
- path: App/Continuity
dependencies:
- package: ContinuityCore
- package: ContinuityKit
product: Domain
- package: ContinuityKit
product: Ingest
- package: ContinuityKit
product: Playback
- target: ContinuityShare
# App group shared with the extension — the share-sheet → app handoff channel.
entitlements:
path: App/Continuity/Continuity.entitlements
properties:
com.apple.security.application-groups:
- group.com.sanylax.continuity
info:
path: App/Continuity/Info.plist
properties:
CFBundleDisplayName: Continuity
# Keep in sync with settings.base MARKETING_VERSION / CURRENT_PROJECT_VERSION —
# hard-coded 1.0 here drifted from project.yml's 0.1.0.
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
UILaunchScreen: {}
# audio only — "processing"/"fetch" need BGTaskSchedulerPermittedIdentifiers and we
# don't schedule BGTasks. Enabling them in Xcode Capabilities breaks TestFlight upload.
UIBackgroundModes:
- audio
ITSAppUsesNonExemptEncryption: false
# MPMediaQuery reads playlist titles/artists only — Apple Music audio is DRM-protected,
# so imported songs are re-sourced from YouTube like the Spotify path.
NSAppleMusicUsageDescription: Continuity reads your Apple Music playlists so you can import them into your library.
UISupportedInterfaceOrientations:
- UIInterfaceOrientationPortrait
# continuity://import?url=<encoded link> — deep-link entry into the import flow.
CFBundleURLTypes:
- CFBundleURLName: com.sanylax.continuity
CFBundleURLSchemes:
- continuity
# Shared scheme so `xcodebuild -scheme Continuity` works on a fresh checkout / CI without
# relying on Xcode's per-user scheme auto-creation (which xcodebuild does not perform).
scheme:
gatherCoverageData: false
archive:
config: Release
# Release signing lives in this xcconfig so it does not land on YouTubeKit.
# The committed file is empty (local archives stay Automatic). TestFlight
# overwrites it with Manual + an App Store profile before xcodegen.
configFiles:
Release: Signing/Continuity.release.xcconfig
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.sanylax.continuity
GENERATE_INFOPLIST_FILE: NO
TARGETED_DEVICE_FAMILY: "1"
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
ENABLE_PREVIEWS: YES
SWIFT_EMIT_LOC_STRINGS: YES
# onnxruntime SPM ships a *static* .framework (Mach-O archive, not a dylib). Xcode still
# copies a broken ~50 KB stub into Continuity.app/Frameworks. That stub:
# - fails code-sign / ITMS MinimumOSVersion checks (microsoft/onnxruntime#27396)
# - is useless at runtime — ORT is already statically linked into the app binary
# Remove the embed entirely. Do NOT patch+resign the stub (that papered over ITMS while
# leaving a poison Frameworks entry). See also RunAnywhere issue on static-framework embeds.
postBuildScripts:
- name: Remove embedded static onnxruntime
basedOnDependencyAnalysis: false
# Declare the stub frameworks' signatures as inputs so the build system orders this
# delete AFTER "Sign onnxruntime.framework". With no inputs the two tasks can run
# concurrently, and the delete landing mid-sign fails the build with
# "CodeSign failed ... onnxruntime.framework: No such file or directory".
inputFiles:
- $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/onnxruntime.framework/_CodeSignature/CodeResources
- $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/onnxruntime_extensions.framework/_CodeSignature/CodeResources
script: |
set -euo pipefail
FRAMEWORKS_PATH="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
for framework in onnxruntime onnxruntime_extensions; do
FRAMEWORK="${FRAMEWORKS_PATH}/${framework}.framework"
if [ -d "$FRAMEWORK" ]; then
rm -rf "$FRAMEWORK"
echo "Removed embedded static ${framework}.framework (linked into app binary)"
fi
done
# Leave an empty Frameworks dir alone — other embeds (none today) may appear later.
# Share-sheet entry point: stashes the shared URL in the app group for the app to import.
ContinuityShare:
type: app-extension
platform: iOS
deploymentTarget: "26.0"
sources:
- path: App/ShareExtension
dependencies:
# Same YouTube/Spotify classifiers the app uses — keeps "Added to Continuity" honest.
- package: ContinuityCore
entitlements:
path: App/ShareExtension/ContinuityShare.entitlements
properties:
com.apple.security.application-groups:
- group.com.sanylax.continuity
info:
path: App/ShareExtension/Info.plist
properties:
CFBundleDisplayName: Continuity
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
NSExtension:
NSExtensionPointIdentifier: com.apple.share-services
NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).ShareViewController
NSExtensionAttributes:
# Activate when any attachment is a URL — dictionary rules that only declare
# WebURL miss Spotify/YouTube shares that also attach image/text. Runtime still
# rejects non-music links via ContinuityCore before showing success.
NSExtensionActivationRule: 'SUBQUERY(extensionItems, $extensionItem, SUBQUERY($extensionItem.attachments, $attachment, ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" OR ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text").@count >= 1).@count >= 1'
configFiles:
Release: Signing/ContinuityShare.release.xcconfig
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.sanylax.continuity.share
GENERATE_INFOPLIST_FILE: NO
TARGETED_DEVICE_FAMILY: "1"
SWIFT_EMIT_LOC_STRINGS: YES