Repository navigation
Expand file tree
/
Copy pathproject.yml
More file actions
173 lines (167 loc) · 6.43 KB
/
Copy pathproject.yml
File metadata and controls
173 lines (167 loc) · 6.43 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
name: TransmissionRemote
options:
bundleIdPrefix: com.nickvance
deploymentTarget:
macOS: "15.0"
createIntermediateGroups: true
generateEmptyDirectories: true
settings:
base:
SWIFT_VERSION: "6.0"
MARKETING_VERSION: "2026.11.03.1"
CURRENT_PROJECT_VERSION: "2026.11.03.1"
DEVELOPMENT_TEAM: 3D9SMH4RWM
packages:
Sparkle:
url: https://github.com/sparkle-project/Sparkle
from: 2.0.0
targets:
TransmissionRemote:
type: application
platform: macOS
sources:
- path: Sources
- path: Resources
dependencies:
- package: Sparkle
product: Sparkle
# Dock tile plug-in: keeps the freeform icon out of macOS 26+'s squircle
# mask while the app isn't running (see DockTile/DockTilePlugIn.swift).
- target: TransmissionRemoteDockTile
embed: true
codeSign: true
copy:
destination: plugins
settings:
base:
PRODUCT_NAME: "Transmission Remote"
PRODUCT_BUNDLE_IDENTIFIER: com.nickvance.transmission-remote-mac
GENERATE_INFOPLIST_FILE: YES
INFOPLIST_FILE: Info.plist
# Asset-catalog app icon (the Dock tile renders blank from an .icns-only
# bundle on macOS 15). Keep CFBundleIconFile for Finder/.icns consumers.
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
INFOPLIST_KEY_CFBundleIconFile: AppIcon
INFOPLIST_KEY_CFBundleIconName: AppIcon
INFOPLIST_KEY_NSPrincipalClass: NSApplication
INFOPLIST_KEY_NSHumanReadableCopyright: ""
INFOPLIST_KEY_LSApplicationCategoryType: public.app-category.utilities
INFOPLIST_KEY_NSHighResolutionCapable: YES
SWIFT_STRICT_CONCURRENCY: complete
# We use an explicit main.swift entry point; the Xcode "debug dylib"
# split assumes an @main type and breaks the link, so disable it.
ENABLE_DEBUG_DYLIB: NO
configs:
Debug:
# Local dev: ad-hoc sign so `xcodebuild` and Run-from-Xcode work
# without provisioning profiles. Unsandboxed (network + local file access).
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
ENABLE_HARDENED_RUNTIME: NO
Release:
# Distributable builds: signed with the Developer ID Application
# identity + notarized (see scripts/release.sh, docs/RELEASING.md).
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "Developer ID Application"
ENABLE_HARDENED_RUNTIME: YES
CODE_SIGN_ENTITLEMENTS: Resources/TransmissionRemote.entitlements
OTHER_CODE_SIGN_FLAGS: "--timestamp"
# NSDockTilePlugIn bundle, embedded in the app's Contents/PlugIns and named by
# the app Info.plist's NSDockTilePlugIn key. The Dock loads it into its own
# process to draw the unmasked icon while the app isn't running.
TransmissionRemoteDockTile:
type: bundle
platform: macOS
sources:
- path: DockTile
- path: Resources/DockIcon.png
settings:
base:
PRODUCT_NAME: TransmissionRemoteDockTile
PRODUCT_BUNDLE_IDENTIFIER: com.nickvance.transmission-remote-mac.docktile
WRAPPER_EXTENSION: docktileplugin
GENERATE_INFOPLIST_FILE: YES
INFOPLIST_KEY_NSPrincipalClass: TRDockTilePlugIn
SWIFT_STRICT_CONCURRENCY: complete
SKIP_INSTALL: YES
configs:
Debug:
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
ENABLE_HARDENED_RUNTIME: NO
Release:
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "Developer ID Application"
ENABLE_HARDENED_RUNTIME: YES
OTHER_CODE_SIGN_FLAGS: "--timestamp"
# Logic unit tests. Rather than host the application (which would launch the
# real app and connect to the owner's server), the pure/business-logic source
# files are compiled directly into the test bundle, so tests run standalone via
# `xctest` with no TEST_HOST.
TransmissionRemoteTests:
type: bundle.unit-test
platform: macOS
sources:
- path: Tests
- path: Sources/FuzzyMatch.swift
- path: Sources/Formatters.swift
- path: Sources/Filtering.swift
- path: Sources/Models.swift
- path: Sources/AppConfig.swift
- path: Sources/CustomHeaders.swift
- path: Sources/HeaderSecretStore.swift
- path: Sources/CloudflareAccess.swift
- path: Sources/AccessOAuth.swift
- path: Sources/AccessLoopback.swift
- path: Sources/AccessSignIn.swift
- path: Sources/AccessSessionStore.swift
- path: Sources/AccessHeaderSource.swift
- path: Sources/AccessSignInController.swift
- path: Sources/TransmissionClient.swift
- path: Sources/ServerOptionsFeatures.swift
- path: Sources/ServerOptions.swift
- path: Sources/ServerSettingsPane.swift
- path: Sources/BandwidthGroupsWindowController.swift
- path: Sources/ConnectionDiagnostics.swift
- path: Sources/SettingsEditor.swift
- path: Sources/HostCandidates.swift
- path: Sources/PathMapping.swift
- path: Sources/SpeedPresets.swift
- path: Sources/SpeedMenuModel.swift
- path: Sources/SMBMountResolver.swift
- path: Sources/InfoGridView.swift
- path: Sources/PieceMapView.swift
- path: Sources/RecentFolders.swift
- path: Sources/RefreshController.swift
- path: Sources/ServerIdentity.swift
- path: Sources/TorrentFileRemover.swift
- path: Sources/TorrentFileTree.swift
- path: Sources/TorrentLink.swift
- path: Sources/ServerMenuSync.swift
- path: Sources/PopUpEnum.swift
- path: Sources/ToolbarLayoutAppKit.swift
- path: Sources/SidebarController.swift
- path: Sources/SettingsWindowController.swift
- path: Sources/SettingsGeneralPane.swift
- path: Sources/SettingsConnectionPane.swift
- path: Sources/CustomHeadersTable.swift
- path: Sources/DefaultHandlers.swift
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.nickvance.transmission-remote-mac.tests
GENERATE_INFOPLIST_FILE: YES
# Custom plist adds an ATS exception so the env-gated live connection
# tests can reach plain-HTTP hosts by name (as the app does).
INFOPLIST_FILE: TestsInfo.plist
SWIFT_STRICT_CONCURRENCY: complete
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
schemes:
TransmissionRemote:
build:
targets:
TransmissionRemote: all
TransmissionRemoteTests: [test]
test:
targets:
- TransmissionRemoteTests