我有一个沙盒应用程序。每次启动时,我需要它启动一个助手应用程序(从主应用程序的捆绑包中)。然而,这样做失败了:
NSError *error;
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:helperURL
options:NSWorkspaceLaunchDefault
configuration:nil
error:&error];
错误信息如下:
应用程序“Helper”无法启动,因为它已损坏。, NSUnderlyingError=0x10214c700 "The operation couldn’t be completed. (OSStatus error -10827.)"
现在,这个错误是误导性的,因为如果我禁用沙盒权限,该应用程序可以正常启动。显然,这是一个bug,正如这里所报道的那样。
我的问题是:有没有解决方法? 我可以使用
SMLoginItemSetEnabled
,如这里所述:将
true
传递给立即启动助手应用程序,并指示每次用户登录时都应启动它。将false
传递以终止助手应用程序,并指示不再在用户登录时启动它。但是,由于App Store审核指南2.26的原因,我无法在未经用户同意的情况下使用此API:
设置为自动启动或在启动或登录时自动运行其他代码的应用程序将被拒绝。
因此,使用此解决方法意味着要问用户“每次您登录时启动助手是否可以?” 如果不行,您无法使用此应用程序!显然,这不是理想的解决方案...