Send app to background if started hidden
Sandbox had to be enabled in order to submit binary to App Store
Connect, therefore command line arguments cannot be used to tell
if the app was started by the launcher.
However, given that launcher starts app in hidden state, we can
safely assert that if the app is hidden on start, it was started
by the launcher.
See f33380b4e2
Also drop automatic signing on Mac bundle and unused utils.
This commit is contained in:
parent
32e548421f
commit
04faf57d4c
|
@ -1800,7 +1800,7 @@
|
|||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 3284;
|
||||
|
@ -1816,6 +1816,7 @@
|
|||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_MAC_ID)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
|
@ -1832,7 +1833,7 @@
|
|||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 3284;
|
||||
|
@ -1848,6 +1849,7 @@
|
|||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_MAC_ID)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
|
|
|
@ -33,7 +33,7 @@ class AppDelegate: NSObject, UIApplicationDelegate, ObservableObject {
|
|||
#if targetEnvironment(macCatalyst)
|
||||
mac.configure()
|
||||
mac.menu.install()
|
||||
if ProcessInfo.processInfo.arguments.contains(Constants.Global.appArgumentBackground) {
|
||||
if mac.utils.isStartedByLauncher {
|
||||
mac.utils.sendAppToBackground()
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -27,11 +27,7 @@ import Foundation
|
|||
|
||||
@objc
|
||||
public protocol MacUtils {
|
||||
var isForeground: Bool { get }
|
||||
|
||||
func toggleForeground()
|
||||
|
||||
func bringAppToForeground()
|
||||
var isStartedByLauncher: Bool { get }
|
||||
|
||||
func sendAppToBackground()
|
||||
}
|
||||
|
|
|
@ -44,7 +44,5 @@ enum Constants {
|
|||
static let appBuildNumber = Int(Bundle.main.infoDictionary![kCFBundleVersionKey as String] as! String)!
|
||||
|
||||
static let appVersionString = "\(appVersionNumber) (\(appBuildNumber))"
|
||||
|
||||
static let appArgumentBackground = "-background"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,9 +40,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject {
|
|||
NSApp.terminate(self)
|
||||
return
|
||||
}
|
||||
|
||||
let cfg = NSWorkspace.OpenConfiguration()
|
||||
cfg.hides = true
|
||||
cfg.arguments = [Constants.Global.appArgumentBackground]
|
||||
cfg.activates = false
|
||||
cfg.addsToRecentItems = false
|
||||
NSWorkspace.shared.openApplication(at: appURL, configuration: cfg) { app, error in
|
||||
if let error = error {
|
||||
NSLog("Unable to launch main app: \(error)")
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<false/>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -27,20 +27,10 @@ import Foundation
|
|||
import AppKit
|
||||
|
||||
class DefaultMacUtils: MacUtils {
|
||||
lazy private(set) var isStartedByLauncher = NSApp.isHidden
|
||||
|
||||
private let transformer = ObservableProcessTransformer.shared
|
||||
|
||||
var isForeground: Bool {
|
||||
transformer.isForeground
|
||||
}
|
||||
|
||||
func toggleForeground() {
|
||||
transformer.toggleForeground()
|
||||
}
|
||||
|
||||
func bringAppToForeground() {
|
||||
transformer.bringToForeground()
|
||||
}
|
||||
|
||||
func sendAppToBackground() {
|
||||
transformer.sendToBackground()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue