Repository navigation
Expand file tree
/
Copy pathproject.yml
More file actions
199 lines (188 loc) · 6.05 KB
/
Copy pathproject.yml
File metadata and controls
199 lines (188 loc) · 6.05 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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
name: OpenHosts
options:
bundleIdPrefix: com.debuginn
deploymentTarget:
macOS: "26.0"
xcodeVersion: "26.0"
createIntermediateGroups: true
settings:
base:
SWIFT_VERSION: "6.0"
MACOSX_DEPLOYMENT_TARGET: "26.0"
DEVELOPMENT_TEAM: TXVGDTDY84
CODE_SIGN_STYLE: Automatic
CURRENT_PROJECT_VERSION: 1
MARKETING_VERSION: "1.0.1"
targets:
OpenHosts:
type: application
platform: macOS
deploymentTarget: "26.0"
sources:
- path: OpenHosts
excludes:
- "Resources/LaunchDaemons/**"
- "Info-AppStore.plist"
- "OpenHostsAppStore.entitlements"
createIntermediateGroups: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.debuginn.OpenHosts
PRODUCT_NAME: OpenHosts
INFOPLIST_FILE: OpenHosts/Info.plist
CODE_SIGN_ENTITLEMENTS: OpenHosts/OpenHosts.entitlements
ENABLE_HARDENED_RUNTIME: YES
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
dependencies:
- target: OpenHostsHelper
embed: false
- target: OpenHostsWidget
embed: true
codeSign: true
- package: SharedKit
- package: Sparkle
postBuildScripts:
- name: Copy LaunchDaemon files
basedOnDependencyAnalysis: false
script: |
set -e
LAUNCHER_DIR="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/Library/LaunchDaemons"
mkdir -p "$LAUNCHER_DIR"
cp -f "${SRCROOT}/OpenHosts/Resources/LaunchDaemons/com.debuginn.OpenHosts.Helper.plist" "$LAUNCHER_DIR/"
if [ -f "${BUILT_PRODUCTS_DIR}/OpenHostsHelper" ]; then
cp -f "${BUILT_PRODUCTS_DIR}/OpenHostsHelper" "$LAUNCHER_DIR/"
fi
# Same bundle id as OpenHosts (com.debuginn.OpenHosts): this is the Mac App Store
# variant of that app, not a second installable product. The widget and
# group.com.debuginn.OpenHosts are tied to that id. A different id would need
# another widget. Build the OpenHosts and OpenHostsAppStore schemes separately;
# both emit OpenHosts.app.
OpenHostsAppStore:
type: application
platform: macOS
deploymentTarget: "26.0"
productName: OpenHosts
sources:
- path: OpenHosts
excludes:
- "Resources/LaunchDaemons/**"
- "Info.plist"
- "OpenHosts.entitlements"
createIntermediateGroups: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.debuginn.OpenHosts
PRODUCT_NAME: OpenHosts
INFOPLIST_FILE: OpenHosts/Info-AppStore.plist
CODE_SIGN_ENTITLEMENTS: OpenHosts/OpenHostsAppStore.entitlements
ENABLE_HARDENED_RUNTIME: YES
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
SWIFT_ACTIVE_COMPILATION_CONDITIONS: APPSTORE
configs:
Debug:
SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG APPSTORE"
dependencies:
# Not OpenHostsWidget: that target's entitlements are unrestricted on
# macOS, so App Store export of an ad-hoc archive never requests a
# profile for the appex. This target is the same extension with one
# restricted entitlement, which makes export provision it.
- target: OpenHostsWidgetAppStore
embed: true
codeSign: true
- package: SharedKit
OpenHostsHelper:
type: tool
platform: macOS
deploymentTarget: "26.0"
sources:
- path: OpenHostsHelper
createIntermediateGroups: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.debuginn.OpenHosts.Helper
PRODUCT_NAME: OpenHostsHelper
INFOPLIST_FILE: OpenHostsHelper/Info.plist
SKIP_INSTALL: NO
ENABLE_HARDENED_RUNTIME: YES
CODE_SIGN_ENTITLEMENTS: OpenHostsHelper/OpenHostsHelper.entitlements
OpenHostsWidget:
type: app-extension
platform: macOS
deploymentTarget: "26.0"
sources:
- path: OpenHostsWidget
createIntermediateGroups: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.debuginn.OpenHosts.Widget
PRODUCT_NAME: OpenHostsWidget
INFOPLIST_FILE: OpenHostsWidget/Info.plist
CODE_SIGN_ENTITLEMENTS: OpenHostsWidget/OpenHostsWidget.entitlements
dependencies:
- package: SharedKit
# Same appex as OpenHostsWidget (bundle id, Info.plist, product name), embedded
# only in OpenHostsAppStore. App Sandbox and App Groups are unrestricted on
# macOS, so export marks a profile optional and skips POST /profiles for
# com.debuginn.OpenHosts.Widget. keychain-access-groups is restricted, so
# export requests a Mac App Store profile; the App ID already has App Groups,
# and that profile allowlists group.com.debuginn.OpenHosts. Developer ID
# keeps OpenHostsWidget and does not sign this entitlements file.
OpenHostsWidgetAppStore:
type: app-extension
platform: macOS
deploymentTarget: "26.0"
productName: OpenHostsWidget
sources:
- path: OpenHostsWidget
createIntermediateGroups: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.debuginn.OpenHosts.Widget
PRODUCT_NAME: OpenHostsWidget
INFOPLIST_FILE: OpenHostsWidget/Info.plist
CODE_SIGN_ENTITLEMENTS: OpenHostsWidget/OpenHostsWidgetAppStore.entitlements
CODE_SIGN_INJECT_BASE_ENTITLEMENTS: YES
dependencies:
- package: SharedKit
SharedKitTests:
type: bundle.unit-test
platform: macOS
deploymentTarget: "26.0"
sources:
- path: SharedKitTests
createIntermediateGroups: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.debuginn.OpenHostsTests
dependencies:
- package: SharedKit
schemes:
OpenHosts:
build:
targets:
OpenHosts: all
run:
config: Debug
archive:
config: Release
OpenHostsAppStore:
build:
targets:
OpenHostsAppStore: all
run:
config: Debug
archive:
config: Release
OpenHostsWidget:
build:
targets:
OpenHostsWidget: all
run:
config: Debug
askForAppToLaunch: true
packages:
SharedKit:
path: SharedKit
Sparkle:
url: https://github.com/sparkle-project/Sparkle
from: "2.6.0"