Skip to content

Commit 96b75c3

Browse files
committed
fix: Apple review — disable network.server build setting, fix Safari prefs button
Guideline 2.4.5(i): ENABLE_INCOMING_NETWORK_CONNECTIONS was YES in the macOS App Xcode build settings, causing Xcode to inject network.server entitlement during signing. Changed to NO. The entitlements file was already correct but the build setting was overriding it. Guideline 2.1(a): "Open Safari Extension Preferences" button fallback was opening generic Safari instead of the extensions pane. Now falls back to x-apple.systempreferences:com.apple.Safari.SFSafariExtensions which opens Safari's extension settings directly on macOS Ventura+. Build 5.6.0.
1 parent 53e33d8 commit 96b75c3

2 files changed

Lines changed: 16 additions & 13 deletions

File tree

dev/apple/NostrKey.xcodeproj/project.pbxproj

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@
798798
buildSettings = {
799799
CODE_SIGN_ENTITLEMENTS = "iOS (Extension)/nostrkey.entitlements";
800800
CODE_SIGN_STYLE = Automatic;
801-
CURRENT_PROJECT_VERSION = 5.5.0;
801+
CURRENT_PROJECT_VERSION = 5.6.0;
802802
GENERATE_INFOPLIST_FILE = YES;
803803
INFOPLIST_FILE = "iOS (Extension)/Info.plist";
804804
INFOPLIST_KEY_CFBundleDisplayName = "nostrkey Extension";
@@ -829,7 +829,7 @@
829829
buildSettings = {
830830
CODE_SIGN_ENTITLEMENTS = "iOS (Extension)/nostrkey.entitlements";
831831
CODE_SIGN_STYLE = Automatic;
832-
CURRENT_PROJECT_VERSION = 5.5.0;
832+
CURRENT_PROJECT_VERSION = 5.6.0;
833833
GENERATE_INFOPLIST_FILE = YES;
834834
INFOPLIST_FILE = "iOS (Extension)/Info.plist";
835835
INFOPLIST_KEY_CFBundleDisplayName = "nostrkey Extension";
@@ -864,7 +864,7 @@
864864
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
865865
CODE_SIGN_ENTITLEMENTS = "iOS (App)/nostrkey.entitlements";
866866
CODE_SIGN_STYLE = Automatic;
867-
CURRENT_PROJECT_VERSION = 5.5.0;
867+
CURRENT_PROJECT_VERSION = 5.6.0;
868868
DEVELOPMENT_TEAM = H48PW6TC25;
869869
GENERATE_INFOPLIST_FILE = YES;
870870
INFOPLIST_FILE = "iOS (App)/Info.plist";
@@ -908,7 +908,7 @@
908908
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
909909
CODE_SIGN_ENTITLEMENTS = "iOS (App)/nostrkey.entitlements";
910910
CODE_SIGN_STYLE = Automatic;
911-
CURRENT_PROJECT_VERSION = 5.5.0;
911+
CURRENT_PROJECT_VERSION = 5.6.0;
912912
DEVELOPMENT_TEAM = H48PW6TC25;
913913
GENERATE_INFOPLIST_FILE = YES;
914914
INFOPLIST_FILE = "iOS (App)/Info.plist";
@@ -950,7 +950,7 @@
950950
buildSettings = {
951951
CODE_SIGN_ENTITLEMENTS = "macOS (Extension)/nostrkey.entitlements";
952952
CODE_SIGN_STYLE = Automatic;
953-
CURRENT_PROJECT_VERSION = 5.5.0;
953+
CURRENT_PROJECT_VERSION = 5.6.0;
954954
DEAD_CODE_STRIPPING = YES;
955955
ENABLE_APP_SANDBOX = YES;
956956
ENABLE_HARDENED_RUNTIME = YES;
@@ -984,7 +984,7 @@
984984
buildSettings = {
985985
CODE_SIGN_ENTITLEMENTS = "macOS (Extension)/nostrkey.entitlements";
986986
CODE_SIGN_STYLE = Automatic;
987-
CURRENT_PROJECT_VERSION = 5.5.0;
987+
CURRENT_PROJECT_VERSION = 5.6.0;
988988
DEAD_CODE_STRIPPING = YES;
989989
ENABLE_APP_SANDBOX = YES;
990990
ENABLE_HARDENED_RUNTIME = YES;
@@ -1022,11 +1022,11 @@
10221022
CODE_SIGN_ENTITLEMENTS = "macOS (App)/nostrkey.entitlements";
10231023
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
10241024
CODE_SIGN_STYLE = Automatic;
1025-
CURRENT_PROJECT_VERSION = 5.5.0;
1025+
CURRENT_PROJECT_VERSION = 5.6.0;
10261026
DEAD_CODE_STRIPPING = YES;
10271027
ENABLE_APP_SANDBOX = YES;
10281028
ENABLE_HARDENED_RUNTIME = YES;
1029-
ENABLE_INCOMING_NETWORK_CONNECTIONS = YES;
1029+
ENABLE_INCOMING_NETWORK_CONNECTIONS = NO;
10301030
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
10311031
ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO;
10321032
ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO;
@@ -1071,11 +1071,11 @@
10711071
CODE_SIGN_ENTITLEMENTS = "macOS (App)/nostrkey.entitlements";
10721072
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
10731073
CODE_SIGN_STYLE = Automatic;
1074-
CURRENT_PROJECT_VERSION = 5.5.0;
1074+
CURRENT_PROJECT_VERSION = 5.6.0;
10751075
DEAD_CODE_STRIPPING = YES;
10761076
ENABLE_APP_SANDBOX = YES;
10771077
ENABLE_HARDENED_RUNTIME = YES;
1078-
ENABLE_INCOMING_NETWORK_CONNECTIONS = YES;
1078+
ENABLE_INCOMING_NETWORK_CONNECTIONS = NO;
10791079
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
10801080
ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO;
10811081
ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO;

dev/apple/Shared (App)/MainView.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ extension Color {
2626
struct MainView: View {
2727
@Environment(\.openURL) private var openURL
2828

29-
private let extensionBundleIdentifier = "com.nostrkey.plugin.Extension"
29+
private let extensionBundleIdentifier = "com.nostrkey.Extension"
3030

3131
#if os(macOS)
3232
private enum DefaultBrowser {
@@ -190,10 +190,13 @@ struct MainView: View {
190190
SFSafariApplication.showPreferencesForExtension(withIdentifier: extensionBundleIdentifier) { error in
191191
if let error = error {
192192
print("[NostrKey] showPreferencesForExtension failed: \(error.localizedDescription)")
193-
// Fallback: open Safari Extensions preferences via system URL
193+
// Fallback: open Safari Extensions preferences directly
194194
DispatchQueue.main.async {
195-
if let url = URL(string: "x-apple.systempreferences:com.apple.Safari.Extensions") {
195+
// macOS Ventura+ uses Safari Settings → Extensions
196+
if let url = URL(string: "x-apple.systempreferences:com.apple.Safari.SFSafariExtensions") {
196197
NSWorkspace.shared.open(url)
198+
} else if let safariURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: "com.apple.Safari") {
199+
NSWorkspace.shared.openApplication(at: safariURL, configuration: NSWorkspace.OpenConfiguration())
197200
}
198201
}
199202
return

0 commit comments

Comments
 (0)