Repository navigation
Expand file tree
/
Copy pathproject.yml
More file actions
182 lines (172 loc) · 6.31 KB
/
Copy pathproject.yml
File metadata and controls
182 lines (172 loc) · 6.31 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
name: LetItBrew
options:
createIntermediateGroups: true
deploymentTarget:
macOS: "14.0"
configs:
Debug: debug
Release: release
settings:
base:
DEVELOPMENT_TEAM: MV2UL94MDC
CODE_SIGN_STYLE: Automatic
ENABLE_HARDENED_RUNTIME: true
MACOSX_DEPLOYMENT_TARGET: "14.0"
SWIFT_VERSION: "6.0"
VERSIONING_SYSTEM: apple-generic
CURRENT_PROJECT_VERSION: 34
MARKETING_VERSION: 0.8.3
targets:
LetItBrewAppCore:
type: library.static
platform: macOS
sources:
- path: Sources/LetItBrewAppCore
dependencies:
- target: LetItBrewCore
settings:
base:
PRODUCT_NAME: LetItBrewAppCore
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.app-core
SKIP_INSTALL: true
LetItBrewCore:
type: library.static
platform: macOS
sources:
- path: Sources/LetItBrewCore
settings:
base:
PRODUCT_NAME: LetItBrewCore
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.core
SKIP_INSTALL: true
LetItBrewDaemonCore:
type: library.static
platform: macOS
sources:
- path: Sources/LetItBrewDaemonCore
dependencies:
- target: LetItBrewCore
settings:
base:
PRODUCT_NAME: LetItBrewDaemonCore
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.daemon-core
SKIP_INSTALL: true
LetItBrew:
type: application
platform: macOS
sources:
- path: Sources/LetItBrewApp
info:
path: Config/LetItBrew-Info.plist
properties:
CFBundleDisplayName: "Let It Brew"
CFBundleShortVersionString: $(MARKETING_VERSION)
CFBundleVersion: $(CURRENT_PROJECT_VERSION)
LSMinimumSystemVersion: $(MACOSX_DEPLOYMENT_TARGET)
LSUIElement: true
NSHighResolutionCapable: true
settings:
base:
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
GENERATE_INFOPLIST_FILE: false
PRODUCT_NAME: "Let It Brew"
PRODUCT_MODULE_NAME: LetItBrew
EXECUTABLE_NAME: LetItBrew
configs:
Debug:
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.dev
LETITBREW_DAEMON_LABEL: com.ruban24.letitbrew.dev.daemon
LETITBREW_DAEMON_PLIST: $(SRCROOT)/Config/LaunchDaemons/com.ruban24.letitbrew.dev.daemon.plist
Release:
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew
LETITBREW_DAEMON_LABEL: com.ruban24.letitbrew.daemon
LETITBREW_DAEMON_PLIST: $(SRCROOT)/Config/LaunchDaemons/com.ruban24.letitbrew.daemon.plist
dependencies:
- target: LetItBrewDaemon
embed: false
- target: LetItBrewCLI
embed: false
- target: LetItBrewAppCore
- target: LetItBrewDaemonCore
- target: LetItBrewCore
postBuildScripts:
- name: Embed signed launch daemon, update support, and legal resources
basedOnDependencyAnalysis: false
script: |
set -eu
services_dir="$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/Library/LaunchServices"
plists_dir="$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/Library/LaunchDaemons"
helpers_dir="$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/Helpers"
update_support_dir="$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/UpdateSupport"
legal_dir="$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/Legal"
/bin/mkdir -p "$services_dir" "$plists_dir" "$helpers_dir" "$update_support_dir" "$legal_dir"
/usr/bin/install -m 755 "$BUILT_PRODUCTS_DIR/LetItBrewDaemon" "$services_dir/LetItBrewDaemon"
/usr/bin/install -m 755 "$BUILT_PRODUCTS_DIR/letitbrew" "$helpers_dir/letitbrew"
/usr/bin/install -m 644 "$LETITBREW_DAEMON_PLIST" "$plists_dir/$LETITBREW_DAEMON_LABEL.plist"
/usr/bin/install -m 755 "$SRCROOT/scripts/run-update.sh" "$update_support_dir/run-update.sh"
/usr/bin/install -m 755 "$SRCROOT/scripts/upgrade-installed-app.sh" "$update_support_dir/upgrade-installed-app.sh"
/usr/bin/install -m 755 "$SRCROOT/scripts/verify-artifact.sh" "$update_support_dir/verify-artifact.sh"
/usr/bin/install -m 644 "$SRCROOT/scripts/lib-power-baseline.sh" "$update_support_dir/lib-power-baseline.sh"
/usr/bin/install -m 644 "$SRCROOT/LICENSE" "$legal_dir/LICENSE"
/usr/bin/install -m 644 "$SRCROOT/NOTICE" "$legal_dir/NOTICE"
/usr/bin/install -m 644 "$SRCROOT/TRADEMARKS.md" "$legal_dir/TRADEMARKS.md"
# Files created beneath a file-provider-managed directory can inherit
# Finder metadata that codesign rejects. Strip metadata before Xcode
# applies the outer app signature; embedded Mach-O signatures remain.
/usr/bin/xattr -cr "$TARGET_BUILD_DIR/$WRAPPER_NAME"
LetItBrewDaemon:
type: tool
platform: macOS
sources:
- path: Sources/LetItBrewDaemon
dependencies:
- target: LetItBrewDaemonCore
- target: LetItBrewCore
settings:
base:
# A standalone launchd tool does not use an app provisioning profile.
# Prevent Xcode from injecting get-task-allow/application-identifier.
# Trust is carried by the Apple-issued code signature and Team ID.
CODE_SIGN_INJECT_BASE_ENTITLEMENTS: false
ENTITLEMENTS_REQUIRED: false
CREATE_INFOPLIST_SECTION_IN_BINARY: true
GENERATE_INFOPLIST_FILE: true
PRODUCT_NAME: LetItBrewDaemon
SKIP_INSTALL: true
configs:
Debug:
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.dev.daemon
Release:
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.daemon
LetItBrewCLI:
type: tool
platform: macOS
sources:
- path: Sources/letitbrew
dependencies:
- target: LetItBrewCore
settings:
base:
CODE_SIGN_INJECT_BASE_ENTITLEMENTS: false
ENTITLEMENTS_REQUIRED: false
CREATE_INFOPLIST_SECTION_IN_BINARY: true
GENERATE_INFOPLIST_FILE: true
PRODUCT_NAME: letitbrew
SKIP_INSTALL: true
configs:
Debug:
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.dev.cli
Release:
PRODUCT_BUNDLE_IDENTIFIER: com.ruban24.letitbrew.cli
schemes:
LetItBrew:
build:
targets:
LetItBrew: all
LetItBrewDaemon: all
LetItBrewCLI: all
run:
config: Debug
archive:
config: Release