小编jep*_*peb的帖子

Mac App Sandbox Group容器问题

我在一个应用程序组中遇到了两个沙盒应用程序的问题.在我的Entitlements文件中,我有以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/    PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>com.apple.security.app-sandbox</key>
     <true/>

     <key>com.apple.security.application-groups</key>
     <array>
          <string>TEAM_ID.com.Company.AppName</string>
     </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

其中'公司'和'AppName'被我的公司替换,应用名称和TEAM_ID被我的团队ID替换.两个应用程序都具有这些完全相同的权利.

现在,当我构建并启动两个应用程序时,一切似乎都很顺利.除了在我的〜/ Library文件夹中找不到"Group Containers"文件夹之外......还有一个'Containers'文件夹,其中包含两个应用程序的文件夹.但没有Group Containers文件夹.

我正在运行10.8.2,我的应用程序的部署目标是10.8.

根据开发人员库,它应该从10.7.4开始提供.我用过这个:https://developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW19来创建我的权利.

我究竟做错了什么?

谢谢,

xcode cocoa objective-c appstore-sandbox

5
推荐指数
1
解决办法
1915
查看次数

从主应用程序启动Mac OS X(LoginItem)帮助应用程序

我在Main.app/Library/LoginItems文件夹中有一个应用程序Main.app和一个应用程序Helper.app.Main.app可以由用户启动,然后用户可以将Helper.app设置为登录项.(使用SMLoginItemSetEnabled()),这非常有效.当用户将Helper.app设置为登录项时,它也会启动.

但是,也可以在不将其设置为登录项的情况下启动Helper.app.我试过这样做

[[NSWorkspace sharedWorkspace] launchApplication: newPath];
Run Code Online (Sandbox Code Playgroud)

这给了一个lsboxd:不允许进程启动...错误,并与

[NSTask launchedTaskWithLaunchPath:newPath arguments: [NSArray array]];
Run Code Online (Sandbox Code Playgroud)

这给了一个拒绝禁止沙盒重新启动错误.(大概是因为Helper.app Main.app 里面?)

newPath的发现如下:

NSMutableArray *pathComponents = [NSMutableArray arrayWithArray:[[[NSBundle mainBundle] bundlePath] pathComponents]];
[pathComponents addObject:@"Contents"];
[pathComponents addObject:@"Library"];
[pathComponents addObject:@"LoginItems"];
[pathComponents addObject:@"Helper.app"];
[pathComponents addObject:@"Contents"];
[pathComponents addObject:@"MacOS"];
[pathComponents addObject:@"Helper"];
NSString *newPath = [NSString pathWithComponents:pathComponents];
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?:)

谢谢,

macos cocoa objective-c appstore-sandbox

5
推荐指数
1
解决办法
1071
查看次数

标签 统计

appstore-sandbox ×2

cocoa ×2

objective-c ×2

macos ×1

xcode ×1