Repository navigation
Expand file tree
/
Copy pathproject.yml
More file actions
331 lines (321 loc) · 10.8 KB
/
Copy pathproject.yml
File metadata and controls
331 lines (321 loc) · 10.8 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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
name: Yojam
options:
bundleIdPrefix: com.yojam
deploymentTarget:
macOS: "14.0"
xcodeVersion: "16.0"
generateEmptyDirectories: false
settings:
base:
SWIFT_VERSION: "6.0"
MACOSX_DEPLOYMENT_TARGET: "14.0"
ENABLE_HARDENED_RUNTIME: YES
SWIFT_STRICT_CONCURRENCY: complete
MARKETING_VERSION: "1.3.1"
CURRENT_PROJECT_VERSION: "16"
packages:
Sparkle:
url: https://github.com/sparkle-project/Sparkle
exactVersion: "2.9.1"
SwiftURL:
url: https://github.com/karwa/swift-url
exactVersion: "0.4.2"
targets:
YojamCore:
type: framework
platform: macOS
sources:
- path: Sources/YojamCore
dependencies:
- package: SwiftURL
product: WebURL
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.yojam.core
APPLICATION_EXTENSION_API_ONLY: YES
PRODUCT_NAME: YojamCore
SKIP_INSTALL: YES
GENERATE_INFOPLIST_FILE: YES
INFOPLIST_KEY_CFBundleDisplayName: YojamCore
CURRENT_PROJECT_VERSION: "$(CURRENT_PROJECT_VERSION)"
MARKETING_VERSION: "$(MARKETING_VERSION)"
Yojam:
type: application
platform: macOS
sources:
- path: Sources/Yojam
excludes:
- Resources/Info.plist
- Resources/Yojam.entitlements
- Resources/menubar.svg
dependencies:
- target: YojamCore
embed: true
- target: YojamShareExtension
embed: true
codeSign: true
copy:
destination: plugins
- target: YojamSafariExtension
embed: true
codeSign: true
copy:
destination: plugins
- target: YojamNativeHost
embed: true
codeSign: true
link: false
copy:
destination: wrapper
subpath: Contents/Helpers
- package: Sparkle
info:
path: Sources/Yojam/Resources/Info.plist
properties:
LSUIElement: true
LSApplicationCategoryType: public.app-category.utilities
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
SUFeedURL: https://yoj.am/appcast.xml
SUPublicEDKey: ewMIKU3we8bcoyPz/88uD1n1fpThNNnDJIfXk/eHLGA=
SUEnableAutomaticChecks: true
# Sparkle's floor is one hour. Yojam runs all day in the menu bar, so a
# daily check plus a background-only alert let users fall two releases
# behind without noticing (issue #38).
SUScheduledCheckInterval: 3600
CFBundleURLTypes:
- CFBundleURLName: Web URL
CFBundleURLSchemes:
- http
- https
- CFBundleURLName: Mail URL
CFBundleURLSchemes:
- mailto
- CFBundleURLName: Phone URL
CFBundleURLSchemes:
- tel
- CFBundleURLName: Yojam Control
CFBundleURLSchemes:
- yojam
NSAppleEventsUsageDescription: "Yojam needs to send Apple Events to open private browsing windows in Safari and Orion."
NSUserActivityTypes:
- NSUserActivityTypeBrowsingWeb
ASWebAuthenticationSessionWebBrowserSupportCapabilities:
IsSupported: true
CFBundleDocumentTypes:
- CFBundleTypeName: HTML Document
CFBundleTypeRole: Viewer
LSItemContentTypes:
- public.html
LSHandlerRank: Default
- CFBundleTypeName: XHTML Document
CFBundleTypeRole: Viewer
LSItemContentTypes:
- public.xhtml
LSHandlerRank: Default
- CFBundleTypeName: Web Internet Location
CFBundleTypeRole: Viewer
LSHandlerRank: Alternate
LSItemContentTypes:
- com.apple.web-internet-location
- com.apple.internet-location
- public.url
NSServices:
- NSMenuItem:
default: Open in Yojam
NSMessage: openURLViaService
NSPortName: Yojam
# An empty NSRequiredContext marks the service as contextual. Without
# it macOS files the entry under legacy services, which are switched
# off by default in Keyboard Shortcuts > Services, so "Open in Yojam"
# never appeared unless the user ticked it by hand (issue #37).
NSRequiredContext: {}
NSSendTypes:
- public.url
- public.rtf
- public.utf8-plain-text
- NSStringPboardType
- public.plain-text
entitlements:
path: Sources/Yojam/Resources/Yojam.entitlements
properties:
com.apple.developer.ubiquity-kvstore-identifier: "$(TeamIdentifierPrefix)$(CFBundleIdentifier)"
com.apple.security.automation.apple-events: true
com.apple.security.application-groups:
- group.org.yojam.shared
settings:
base:
INFOPLIST_FILE: Sources/Yojam/Resources/Info.plist
CODE_SIGN_ENTITLEMENTS: Sources/Yojam/Resources/Yojam.entitlements
CODE_SIGN_STYLE: Automatic
REGISTER_APP_GROUPS: YES
PRODUCT_BUNDLE_IDENTIFIER: com.yojam.app
PRODUCT_NAME: Yojam
GENERATE_INFOPLIST_FILE: NO
COMBINE_HIDPI_IMAGES: YES
LD_RUNPATH_SEARCH_PATHS:
- "@executable_path/../Frameworks"
YojamShareExtension:
type: app-extension
platform: macOS
sources:
- path: Sources/YojamShareExtension
excludes:
- Info.plist
- YojamShareExtension.entitlements
dependencies:
- target: YojamCore
embed: false
info:
path: Sources/YojamShareExtension/Info.plist
properties:
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
entitlements:
path: Sources/YojamShareExtension/YojamShareExtension.entitlements
properties:
com.apple.security.app-sandbox: true
com.apple.security.application-groups:
- group.org.yojam.shared
settings:
base:
INFOPLIST_FILE: Sources/YojamShareExtension/Info.plist
CODE_SIGN_ENTITLEMENTS: Sources/YojamShareExtension/YojamShareExtension.entitlements
PRODUCT_BUNDLE_IDENTIFIER: com.yojam.app.ShareExtension
PRODUCT_NAME: YojamShareExtension
CODE_SIGN_STYLE: Automatic
REGISTER_APP_GROUPS: YES
APPLICATION_EXTENSION_API_ONLY: YES
GENERATE_INFOPLIST_FILE: NO
SKIP_INSTALL: YES
LD_RUNPATH_SEARCH_PATHS:
- "@executable_path/../Frameworks"
- "@executable_path/../../../../Frameworks"
YojamSafariExtension:
type: app-extension
platform: macOS
sources:
- path: Sources/YojamSafariExtension
excludes:
- Info.plist
- YojamSafariExtension.entitlements
- Resources
dependencies:
- target: YojamCore
embed: false
info:
path: Sources/YojamSafariExtension/Info.plist
properties:
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
NSExtension:
NSExtensionPointIdentifier: com.apple.Safari.web-extension
NSExtensionPrincipalClass: "$(PRODUCT_MODULE_NAME).SafariWebExtensionHandler"
entitlements:
path: Sources/YojamSafariExtension/YojamSafariExtension.entitlements
properties:
com.apple.security.app-sandbox: true
com.apple.security.network.client: true
com.apple.security.application-groups:
- group.org.yojam.shared
settings:
base:
INFOPLIST_FILE: Sources/YojamSafariExtension/Info.plist
CODE_SIGN_ENTITLEMENTS: Sources/YojamSafariExtension/YojamSafariExtension.entitlements
PRODUCT_BUNDLE_IDENTIFIER: com.yojam.app.SafariExtension
PRODUCT_NAME: YojamSafariExtension
CODE_SIGN_STYLE: Automatic
REGISTER_APP_GROUPS: YES
APPLICATION_EXTENSION_API_ONLY: YES
GENERATE_INFOPLIST_FILE: NO
SKIP_INSTALL: YES
LD_RUNPATH_SEARCH_PATHS:
- "@executable_path/../Frameworks"
- "@executable_path/../../../../Frameworks"
preBuildScripts:
- name: Copy Safari Extension Resources
basedOnDependencyAnalysis: false
script: |
RESOURCE_DIR="${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
mkdir -p "${RESOURCE_DIR}"
rsync -av --delete "${SRCROOT}/Extensions/shared/" "${RESOURCE_DIR}/"
cp "${SRCROOT}/Extensions/safari/manifest.json" "${RESOURCE_DIR}/manifest.json"
YojamNativeHost:
type: application
platform: macOS
sources:
- path: Sources/YojamNativeHost
excludes:
- Info.plist
- YojamNativeHost.entitlements
dependencies:
- target: YojamCore
embed: false
info:
path: Sources/YojamNativeHost/Info.plist
properties:
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
LSBackgroundOnly: true
entitlements:
path: Sources/YojamNativeHost/YojamNativeHost.entitlements
properties:
com.apple.security.application-groups:
- group.org.yojam.shared
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.yojam.app.NativeHost
PRODUCT_NAME: YojamNativeHost
# A wildcard Mac profile does not authorise the shared App Group.
# Automatic Developer ID export derives the distribution profile from this App ID.
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: Apple Development
PROVISIONING_PROFILE_SPECIFIER: Yojam Native Host Development
CODE_SIGN_ENTITLEMENTS: Sources/YojamNativeHost/YojamNativeHost.entitlements
GENERATE_INFOPLIST_FILE: NO
SKIP_INSTALL: YES
LD_RUNPATH_SEARCH_PATHS:
- "@executable_path/../../../../Frameworks"
YojamCLI:
type: tool
platform: macOS
sources:
- path: Sources/YojamCLI
excludes:
- YojamCLI.entitlements
dependencies:
- target: YojamCore
embed: false
entitlements:
path: Sources/YojamCLI/YojamCLI.entitlements
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.yojam.app.CLI
PRODUCT_NAME: yojam-cli
CODE_SIGN_STYLE: Automatic
CODE_SIGN_ENTITLEMENTS: Sources/YojamCLI/YojamCLI.entitlements
SKIP_INSTALL: YES
LD_RUNPATH_SEARCH_PATHS:
- "@executable_path/../Frameworks"
YojamTests:
type: bundle.unit-test
platform: macOS
sources:
- path: Tests/YojamTests
dependencies:
- target: Yojam
settings:
base:
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Yojam.app/Contents/MacOS/Yojam"
BUNDLE_LOADER: "$(TEST_HOST)"
GENERATE_INFOPLIST_FILE: YES
YojamCoreTests:
type: bundle.unit-test
platform: macOS
sources:
- path: Tests/YojamCoreTests
dependencies:
- target: YojamCore
settings:
base:
GENERATE_INFOPLIST_FILE: YES