Repository navigation
Expand file tree
/
Copy pathproject.yml
More file actions
187 lines (182 loc) · 6.08 KB
/
Copy pathproject.yml
File metadata and controls
187 lines (182 loc) · 6.08 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
name: TaskMenu
options:
bundleIdPrefix: dev.crazytan
deploymentTarget:
macOS: "14.4"
xcodeVersion: "26.4"
generateEmptyDirectories: true
configs:
Debug: debug
Release: release
AppStore: release
configFiles:
Debug: BuildConfig.xcconfig
Release: BuildConfig.xcconfig
AppStore: BuildConfig.xcconfig
settings:
base:
CURRENT_PROJECT_VERSION: "1"
DEAD_CODE_STRIPPING: YES
ENABLE_USER_SCRIPT_SANDBOXING: YES
GCC_TREAT_WARNINGS_AS_ERRORS: YES
SWIFT_VERSION: "6.0"
MARKETING_VERSION: "1.7.0"
MACOSX_DEPLOYMENT_TARGET: "14.4"
SWIFT_STRICT_CONCURRENCY: complete
SWIFT_TREAT_WARNINGS_AS_ERRORS: YES
configs:
Release:
SWIFT_OPTIMIZATION_LEVEL: "-Osize"
# Compiles out the update checker (guideline 2.4.5(vii)) and the donation
# link (guideline 3.1.1); both stay in Debug and Release for the DMG.
AppStore:
SWIFT_OPTIMIZATION_LEVEL: "-Osize"
SWIFT_ACTIVE_COMPILATION_CONDITIONS: "$(inherited) APP_STORE_BUILD"
targets:
TaskMenu:
type: application
platform: macOS
sources:
- path: TaskMenu
excludes: ["README.md", "**/README.md"]
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: dev.crazytan.TaskMenu
INFOPLIST_FILE: TaskMenu/Resources/Info.plist
CODE_SIGN_ENTITLEMENTS: TaskMenu/Resources/TaskMenu.entitlements
ENABLE_APP_SANDBOX: YES
ENABLE_HARDENED_RUNTIME: YES
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
CODE_SIGN_STYLE: Automatic
REGISTER_APP_GROUPS: YES
COMBINE_HIDPI_IMAGES: YES
PRODUCT_NAME: TaskMenu
PROVISIONING_PROFILE_SPECIFIER: ""
# macOS requires the team prefix on App Group ids; $(DEVELOPMENT_TEAM)
# (not $(AppIdentifierPrefix)/$(TeamIdentifierPrefix), which only
# expand with a provisioning profile present) resolves it at build
# time. Runtime code treats an empty/unexpanded value as absent; see
# SharedConstants.appGroupIdentifier / .keychainAccessGroup.
APP_GROUP_IDENTIFIER: "$(DEVELOPMENT_TEAM).group.dev.crazytan.TaskMenu.shared"
KEYCHAIN_ACCESS_GROUP: "$(DEVELOPMENT_TEAM).dev.crazytan.TaskMenu.shared"
configs:
Release:
PROVISIONING_PROFILE_SPECIFIER: "$(TASKMENU_DEVELOPER_ID_PROFILE)"
entitlements:
path: TaskMenu/Resources/TaskMenu.entitlements
properties:
com.apple.security.app-sandbox: true
com.apple.security.network.client: true
com.apple.security.application-groups:
- "$(DEVELOPMENT_TEAM).group.dev.crazytan.TaskMenu.shared"
keychain-access-groups:
- "$(DEVELOPMENT_TEAM).dev.crazytan.TaskMenu.shared"
dependencies:
- target: TaskMenuWidget
embed: true
codeSign: true
TaskMenuWidget:
type: app-extension
platform: macOS
sources:
- path: TaskMenuWidget
excludes: ["README.md"]
- path: TaskMenu/WidgetSupport
excludes: ["README.md"]
- path: TaskMenu/Models/TaskItem.swift
- path: TaskMenu/Models/TaskList.swift
- path: TaskMenu/Models/TaskSortOrder.swift
- path: TaskMenu/Models/TaskOrdering.swift
- path: TaskMenu/Utilities/DateFormatting.swift
- path: TaskMenu/Utilities/SharedConstants.swift
- path: TaskMenu/Services/KeychainService.swift
- path: TaskMenu/Services/TasksAPIProtocol.swift
- path: TaskMenu/Services/GoogleTasksAPI.swift
- path: TaskMenu/Services/AccessTokenProviding.swift
- path: TaskMenu/Services/GoogleTokenRefresher.swift
- path: TaskMenu/Services/WidgetGoogleAccessTokenProvider.swift
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: dev.crazytan.TaskMenu.Widget
INFOPLIST_FILE: TaskMenuWidget/Info.plist
CODE_SIGN_ENTITLEMENTS: TaskMenuWidget/TaskMenuWidget.entitlements
ENABLE_APP_SANDBOX: YES
ENABLE_HARDENED_RUNTIME: YES
APPLICATION_EXTENSION_API_ONLY: YES
SKIP_INSTALL: YES
CODE_SIGN_STYLE: Automatic
REGISTER_APP_GROUPS: YES
PRODUCT_NAME: TaskMenuWidget
PROVISIONING_PROFILE_SPECIFIER: ""
APP_GROUP_IDENTIFIER: "$(DEVELOPMENT_TEAM).group.dev.crazytan.TaskMenu.shared"
KEYCHAIN_ACCESS_GROUP: "$(DEVELOPMENT_TEAM).dev.crazytan.TaskMenu.shared"
configs:
Release:
PROVISIONING_PROFILE_SPECIFIER: "$(TASKMENU_WIDGET_DEVELOPER_ID_PROFILE)"
entitlements:
path: TaskMenuWidget/TaskMenuWidget.entitlements
properties:
com.apple.security.app-sandbox: true
com.apple.security.network.client: true
com.apple.security.application-groups:
- "$(DEVELOPMENT_TEAM).group.dev.crazytan.TaskMenu.shared"
keychain-access-groups:
- "$(DEVELOPMENT_TEAM).dev.crazytan.TaskMenu.shared"
TaskMenuTests:
type: bundle.unit-test
platform: macOS
sources:
- path: TaskMenuTests
excludes: ["README.md"]
dependencies:
- target: TaskMenu
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: dev.crazytan.TaskMenuTests
GENERATE_INFOPLIST_FILE: YES
BUNDLE_LOADER: "$(TEST_HOST)"
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/TaskMenu.app/Contents/MacOS/TaskMenu"
schemes:
TaskMenu:
build:
preActions:
- script: |
"${SRCROOT}/scripts/stamp_build_metadata.sh" "${SRCROOT}"
name: Stamp build metadata
settingsTarget: TaskMenu
targets:
TaskMenu: all
run:
config: Debug
test:
config: Debug
targets:
- name: TaskMenuTests
profile:
config: Release
analyze:
config: Debug
archive:
config: Release
# Archive with this scheme for Mac App Store uploads.
TaskMenu (App Store):
build:
preActions:
- script: |
"${SRCROOT}/scripts/stamp_build_metadata.sh" "${SRCROOT}"
name: Stamp build metadata
settingsTarget: TaskMenu
targets:
TaskMenu: all
run:
config: AppStore
test:
config: Debug
targets:
- name: TaskMenuTests
profile:
config: AppStore
analyze:
config: AppStore
archive:
config: AppStore