Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 来自沙盒助手应用程序的NSTask失败,返回“0”;无法设置沙盒配置文件数据“;_Macos_Nstask_Appstore Sandbox - Fatal编程技术网

Macos 来自沙盒助手应用程序的NSTask失败,返回“0”;无法设置沙盒配置文件数据“;

Macos 来自沙盒助手应用程序的NSTask失败,返回“0”;无法设置沙盒配置文件数据“;,macos,nstask,appstore-sandbox,Macos,Nstask,Appstore Sandbox,我正在开发一个Mac OS应用程序,它由一个主应用程序和一个助手组成: Backup.app/ └── Contents ├── Library │ └── LoginItems │ └── BackupHelper.app ├── MacOS │ └── Backup Backup.app:要求用户选择路径并保存应用范围内的安全书签。 backupulper.app:备份此路径 Backup.app和backupulper.app都

我正在开发一个Mac OS应用程序,它由一个主应用程序和一个助手组成:

Backup.app/
└── Contents
    ├── Library
    │   └── LoginItems
    │       └── BackupHelper.app
    ├── MacOS
    │   └── Backup
Backup.app:要求用户选择路径并保存应用范围内的安全书签。 backupulper.app:备份此路径

Backup.app和backupulper.app都是沙盒。
使用SMLoginItemSetEnabled将Backupulper应用程序注册为在登录时启动

当backupulper.app需要访问Backup.app保存的书签时,
我希望它调用Backup.app(带有一些参数)以获得最终的NSURL(带有applesecurityscope参数的NSURL)

我尝试使用NSTask启动Backup.app, 它以NSTaskTerminationReasonUncaughtSignal终止 我得到了这个线索:

Process:         Backup [18095]
Path:            /Applications/Backup.app/Contents/MacOS/Backup
Identifier:      Backup
Version:         1.0 (1)
Code Type:       X86-64 (Native)
Parent Process:  BackupHelper [18093]
Responsible:     BackupHelper [18093]
User ID:         501

Date/Time:       2013-11-04 10:23:06.016 +0100
OS Version:      Mac OS X 10.9 (13A603)
Report Version:  11
Anonymous UUID:  84A150C3-31C4-BE29-AAC9-338910633B1C

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000

Application Specific Information:
Could not set sandbox profile data: Operation not permitted (1)

Application Specific Signatures:
SYSCALL_SET_PROFILE

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libxpc.dylib                       0x00007fff9079c5a1 _xpc_runtime_init_once + 2482
1   libdispatch.dylib                  0x00007fff8e59c2ad _dispatch_client_callout + 8
2   libdispatch.dylib                  0x00007fff8e59c21c dispatch_once_f + 79 
当我尝试直接启动Backup.app时,它工作正常 当我尝试用相同的NSTask启动另一个应用程序时,它也能正常工作。 你知道为什么它不能与Backup.app配合使用吗


谢谢

我的应用程序是沙盒,使用
posix_spawn()
通过基于文本的协议与它们对话,运行(捆绑)子进程。如果尝试从命令行单独运行这些子进程中的一个子进程,则会出现相同的错误。这与命令行上缺少沙盒环境有关。也许您需要使用XPC?据我所知,XPC需要启动Backup.app,在我的情况下可能不是这样。我在某个地方读到posix_spawn()与沙盒应用程序和应用商店不兼容,对此有何想法?(我还是会试试的,谢谢)。这可能是应用程序签名的问题吗?(因为它对其他应用程序比备份程序)工作,所以我使用的代码> PosixySpAvn.()/Cube >是因为该功能是在跨平台C++库中实现的,如果是Objy-C,我可能会使用<代码> NSTASKE//COD>。就其本身而言,我并没有遇到问题,因为它工作得很好,但令人惊讶的是,这些捆绑的子进程可执行文件随后从命令行变得不可用。我确信这与您的问题有关,可能是应用程序签名导致了问题。有人对此有更新吗?我遇到了相同的问题“无法设置沙盒配置文件数据:不允许操作(1)”。欢迎任何人。