首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSX应用程序和命令行工具之间的NSConnection

OSX应用程序和命令行工具之间的NSConnection
EN

Stack Overflow用户
提问于 2016-09-14 01:26:56
回答 1查看 174关注 0票数 5

我正在尝试创建OSX应用程序和命令行工具之间的连接,以使用分布式对象。

连接在命令行工具中注册,如下所示

代码语言:javascript
复制
[NSConnection serviceConnectionWithName:@"server" rootObject:extManager];

并尝试从应用程序连接到已注册的连接对象,如下所示

代码语言:javascript
复制
self.serverConnection = [NSConnection connectionWithRegisteredName:@"server" host:nil];

当应用程序没有被沙箱保护时,就建立了连接。当应用程序被沙箱保护时,connectionWithRegisteredName返回nil。

我尝试向权利文件添加密钥和值,并使用团队证书对工具和应用程序进行签名,但不起作用

代码语言:javascript
复制
    <key>com.apple.security.application-groups</key>
    <array>
        <string><TEAM ID>.AppSuite</string>
    </array>

如何才能使连接在沙箱中正常工作?

EN

回答 1

Stack Overflow用户

发布于 2020-06-13 12:34:57

这里的技巧是在连接名称中使用app-group名称作为前缀。即:

代码语言:javascript
复制
self.serverConnection = [NSConnection connectionWithRegisteredName:@"<TEAM ID>.AppSuite.server" host:nil];

为什么?

Mach端口名称必须以应用程序组标识符开头,然后是句点(.),最后是您选择的名称。

例如,如果您的应用程序组的名称是Z123456789.com.example.app-group,...您可以创建一个名为Z123456789.com.example.app-group.Port_of_Kobe.的Mach端口

Ref

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39475789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档