Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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
Ios 使用mach端口的Theos应用程序间通信_Ios_Objective C_Ipc_Jailbreak_Theos - Fatal编程技术网

Ios 使用mach端口的Theos应用程序间通信

Ios 使用mach端口的Theos应用程序间通信,ios,objective-c,ipc,jailbreak,theos,Ios,Objective C,Ipc,Jailbreak,Theos,我正在尝试在iOS 8上的应用程序和控制台应用程序(使用theos)之间发送数据 我试过: 应用程序: CFMessagePortRef port=CFMessagePortCreateLocal(kcfolocatordefault,CFSTR(“co.test”),&message_回调,NULL,NULL) 这个很好用NSLog(@“%@”,端口)返回: {locked=Maybe,valid=Yes,remote=No,name=co.test,source=0x0,callout=me

我正在尝试在iOS 8上的应用程序和控制台应用程序(使用theos)之间发送数据

我试过:

应用程序

CFMessagePortRef port=CFMessagePortCreateLocal(kcfolocatordefault,CFSTR(“co.test”),&message_回调,NULL,NULL)

这个很好用<代码>NSLog(@“%@”,端口)
返回:

{locked=Maybe,valid=Yes,remote=No,name=co.test,source=0x0,callout=message\u callback(0x1000e979c),context=}

但是,当尝试在控制台应用程序上执行相同操作时:

CFMessagePortRef port=CFMessagePortCreateLocal(kcfolocatordefault,CFSTR(“co.test”),
&消息_回调,NULL,NULL)

我总是会出错:

***CFMessagePort:bootstrap_register():失败1100(0x44c)'Permission denied',端口=0xc03,名称='co.test'

即使我使用相同的
com.apple.security.application组
权限:

<key>com.apple.security.application-groups</key>
<array>
    <string>co.test</string>
</array>
com.apple.security.application-groups
公司测试
有人能解释一下吗?也许上述方法很糟糕,我错过了一个更容易实现目标的方法

我的目标是能够在SpringBoard上运行的应用程序和用theos构建的守护程序之间传递NSDictionary

注意:我无意在应用商店中发布此应用

应用:….
CFSTR(“co.test”)

控制台应用程序:<代码>CFSTR(“co.test”)

您需要在应用程序组标识符的末尾附加一个字符串

苹果公司:

马赫端口名称必须以应用程序组标识符开头,后跟句点(.),后跟您选择的名称

例如,如果应用程序组的名称为
Z123456789.com.example.app group
,则可以创建一个名为
Z123456789.com.example.app group.port\u of_Kobe
的马赫端口

如果使用相同的消息端口名创建多个消息端口,则可能会发生另一个崩溃。可能来自具有相同bundle ID的应用程序,或者其他一些情况,其中应该只有一个消息端口,并且其中一个已经在运行

当我从
/Applications/
运行一个版本的macOS应用程序,并通过Xcode运行另一个版本时,我注意到了这一点

***CFMessagePort:bootstrap_register():失败1100(0x44c)“权限被拒绝”,端口=0xcd07,名称='xxxyyzz.MyAppGroupName'


我不知道问题出在哪里,你甚至不需要为这项工作提供福利。但您可以始终使用tcp socketsSo我刚刚在一个新的theos工具中尝试了这一点,其中只有一行是
CFMessagePortRef port=CFMessagePortCreateLocal(kcfolocatordefault,CFSTR(“co.test”),&message_callback,NULL,NULL)制作,运行,它就可以工作了。没有签名。也许是签约?不管怎样,谢谢你的帮助!也许,这是我第一次看到这种权利。我将把它作为答案,因为这是这个问题在三年多以来得到的唯一回答。