我有一个针对 Mac OS X 10.7 的沙盒应用程序,并且想要执行这个 AppleScript:
tell application "Safari" to add reading list item "http://www.apple.com"
我已经在 AppleScript 编辑器中测试了这个脚本,它可以正确执行。
在 Cocoa 应用程序中,我设置了适当的临时权利,并使用以下脚本对其进行了测试,该脚本正确执行:
tell application "Safari" to activate
但是当我在我的 Cocoa 应用程序中插入第一个脚本时,我得到了一个错误。这是我正在使用的代码
NSString *url = [post.url absoluteString];
NSString *source = [NSString stringWithFormat:@"tell application \"Safari\" to add reading list item \"%@\"", url];
NSDictionary *errorDictionary;
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:source];
if ( ![script executeAndReturnError:&errorDictionary] ) {
NSLog(@"Error while saving to Safari Reading List: %@", errorDictionary);
}
错误是
2012-09-20 10:30:29.370 Cream[2752:303] Error while saving to Safari Reading List: {
NSAppleScriptErrorBriefMessage = "A identifier can\U2019t go after this identifier.";
NSAppleScriptErrorMessage = "A identifier can\U2019t go after this identifier.";
NSAppleScriptErrorNumber = "-2740";
NSAppleScriptErrorRange = "NSRange: {29, 11}";
}
该错误似乎与“阅读”一词有关。就好像它没有加载 Safari 脚本字典,并且不理解“阅读列表项”的含义。
如果我在禁用沙盒的情况下运行该应用程序,它可以完美地使用完全相同的脚本。
有人知道会发生什么吗?我需要在沙箱的某个地方再打一个洞吗?