mirror of
https://github.com/yattee/yattee.git
synced 2026-07-19 22:02:10 +00:00
Fix macOS distribution entitlements and Sparkle beta defaults
- Add macOS-specific entitlements via CODE_SIGN_ENTITLEMENTS[sdk=macosx*]: the iOS aps-environment key is silently dropped from macOS exports, leaving distribution builds without a push entitlement (no CloudKit sync pushes). Release now uses Yattee-macOS.entitlements with com.apple.developer.aps-environment = production. - Release-DeveloperID uses Yattee-macOS-DeveloperID.entitlements, adding the Sparkle mach-lookup temporary exceptions (-spks/-spki) required for the updater to install in a sandboxed app. - Default Sparkle updater to the beta channel while only beta releases exist, so testers receive updates without toggling Advanced settings. - Set NSHumanReadableCopyright for the app target.
This commit is contained in:
@@ -605,6 +605,7 @@
|
|||||||
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
|
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = Yattee;
|
INFOPLIST_KEY_CFBundleDisplayName = Yattee;
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
|
||||||
|
INFOPLIST_KEY_NSHumanReadableCopyright = "© 2026 Arkadiusz Fal";
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";
|
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";
|
||||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
||||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
||||||
@@ -653,6 +654,7 @@
|
|||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
AUTOMATION_APPLE_EVENTS = NO;
|
AUTOMATION_APPLE_EVENTS = NO;
|
||||||
CODE_SIGN_ENTITLEMENTS = Yattee/Yattee.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Yattee/Yattee.entitlements;
|
||||||
|
"CODE_SIGN_ENTITLEMENTS[sdk=macosx*]" = "Yattee/Yattee-macOS.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 262;
|
CURRENT_PROJECT_VERSION = 262;
|
||||||
DEAD_CODE_STRIPPING = YES;
|
DEAD_CODE_STRIPPING = YES;
|
||||||
@@ -687,6 +689,7 @@
|
|||||||
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
|
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = Yattee;
|
INFOPLIST_KEY_CFBundleDisplayName = Yattee;
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
|
||||||
|
INFOPLIST_KEY_NSHumanReadableCopyright = "© 2026 Arkadiusz Fal";
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";
|
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";
|
||||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
||||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
||||||
@@ -795,6 +798,7 @@
|
|||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
AUTOMATION_APPLE_EVENTS = NO;
|
AUTOMATION_APPLE_EVENTS = NO;
|
||||||
CODE_SIGN_ENTITLEMENTS = Yattee/Yattee.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Yattee/Yattee.entitlements;
|
||||||
|
"CODE_SIGN_ENTITLEMENTS[sdk=macosx*]" = "Yattee/Yattee-macOS-DeveloperID.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 262;
|
CURRENT_PROJECT_VERSION = 262;
|
||||||
DEAD_CODE_STRIPPING = YES;
|
DEAD_CODE_STRIPPING = YES;
|
||||||
@@ -829,6 +833,7 @@
|
|||||||
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
|
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = Yattee;
|
INFOPLIST_KEY_CFBundleDisplayName = Yattee;
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
|
||||||
|
INFOPLIST_KEY_NSHumanReadableCopyright = "© 2026 Arkadiusz Fal";
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";
|
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";
|
||||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
||||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
||||||
|
|||||||
@@ -50,8 +50,11 @@ final class AppUpdater {
|
|||||||
private var observation: NSKeyValueObservation?
|
private var observation: NSKeyValueObservation?
|
||||||
|
|
||||||
private init() {
|
private init() {
|
||||||
// Load persisted beta preference before constructing the delegate
|
// Load persisted beta preference before constructing the delegate.
|
||||||
let wantsBeta = UserDefaults.standard.bool(forKey: Self.wantsBetaKey)
|
// While only beta releases exist, default to the beta channel so
|
||||||
|
// testers receive updates without hunting for the Advanced toggle.
|
||||||
|
// Revisit this default once the first stable release ships.
|
||||||
|
let wantsBeta = UserDefaults.standard.object(forKey: Self.wantsBetaKey) as? Bool ?? true
|
||||||
self.wantsBetaChannel = wantsBeta
|
self.wantsBetaChannel = wantsBeta
|
||||||
self.delegate.wantsBeta = wantsBeta
|
self.delegate.wantsBeta = wantsBeta
|
||||||
|
|
||||||
|
|||||||
27
Yattee/Yattee-macOS-DeveloperID.entitlements
Normal file
27
Yattee/Yattee-macOS-DeveloperID.entitlements
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.developer.aps-environment</key>
|
||||||
|
<string>production</string>
|
||||||
|
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||||
|
<array>
|
||||||
|
<string>iCloud.$(CFBundleIdentifier)</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.developer.icloud-services</key>
|
||||||
|
<array>
|
||||||
|
<string>CloudKit</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
|
||||||
|
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
|
||||||
|
<key>com.apple.security.application-groups</key>
|
||||||
|
<array>
|
||||||
|
<string>group.stream.yattee.app.shared</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
|
||||||
|
<array>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</string>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
22
Yattee/Yattee-macOS.entitlements
Normal file
22
Yattee/Yattee-macOS.entitlements
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.developer.aps-environment</key>
|
||||||
|
<string>production</string>
|
||||||
|
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||||
|
<array>
|
||||||
|
<string>iCloud.$(CFBundleIdentifier)</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.developer.icloud-services</key>
|
||||||
|
<array>
|
||||||
|
<string>CloudKit</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
|
||||||
|
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
|
||||||
|
<key>com.apple.security.application-groups</key>
|
||||||
|
<array>
|
||||||
|
<string>group.stream.yattee.app.shared</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Reference in New Issue
Block a user