我有一个沙盒应用程序。每次启动时,我都需要它来启动一个帮助应用程序(从主应用程序的包中)。但是,这失败了:
NSError *error;
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:helperURL
options:NSWorkspaceLaunchDefault
configuration:nil
error:&error];
错误是:
应用程序“Helper”无法启动,因为它已损坏。,NSUnderlyingError=0x10214c700“操作无法完成。(OSStatus 错误 -10827。)”}
现在,该错误具有误导性,因为如果我禁用沙盒权利,应用程序将正常启动。显然这是一个错误,如此处所报告。
我的问题是:有解决方法吗?
我可以使用SMLoginItemSetEnabled
,如此处所述:
通过
true
立即启动助手应用程序并指示每次用户登录时都应启动它。通过false
终止助手应用程序并指示用户登录时不应再启动它。
但是,由于 App Store Review Guideline 2.26,我不能在不先询问用户的情况下使用这个 API:
未经用户同意设置为自动启动或在启动或登录时自动运行其他代码的应用程序将被拒绝
因此,使用此解决方法意味着询问用户“每次登录时启动帮助程序是否可以?如果不是,您将无法使用此应用程序!” 显然,这并不理想...