尝试在APP文件夹内写入plist文件失败,打包成deb安装后无法创建并写入plist文件,
请问一般APP和Tweak的数据传输使用什么样的解决方案呢。
进程间通信,一般采用notify_post或者CPDistributedMessagingCenter,前者适用于无需传递详细信息的情况,后者适用于需要传递详细信息的情况。google一下就可以找到用法了
嗯,逆向了别人的插件,是用的CPDistributedMessagingCenter,正在学习中,谢谢大大解答。
这个CPDistributedMessagingCenter好像要利用rocket bootstrap吧,而且只能tweak中注册服务,单向通信
CFMessagePort呢?从用法上看似乎是CPDistributedMessagingCenter的更底层
我没用过这个,它是CoreFoundation系函数,应该是更底层的,但是用起来没有CPDistributedMessagingCenter方便啊
不需要 rocker bootstrap,是否单向通信我不是很了解,但是从APP发送数据给插件是没有问题的。
嗯,CPDistributedMessagingCenter的调用确实更简单,可惜当初做这块的时候只知道CFMessagePort…
CFMessagePort是单向的,只能client主动向server发消息,所以CPDistributedMessagingCenter应该也是一样
嗯,是的,在使用中发现确实如此~
CPDistributedMessagingCenter 有具体的例子么?
你好,我在xcode里面建了两个项目,一个是server端,实现CFNotificationCenterAddObserver作为监听,一个是client端实现CFNotificationCenterPostNotification向server端的那个app发消息,可是发现server端只能监听到一次,回调只回调了一次,之后不过client post多少次都没回调了,需要重启应用才又能接收到一次post的信息,请问是什么问题呢?
要不你看看我的一个项目,实现了插件和服务端的通讯,我有一段时间没写tweak了。
好的,多谢了
不好意思啊,我只用过CFMessagePort,所以你说的这个"CFNotificationCenter***"方法我并不了解,理论上使用更上层的API也不应该会出现你说的问题。
不清楚你的系统环境,我能告诉你的是:CFMessagePort在iOS9.3.3上也能正常使用,无论tweak、daemon还是app。
CFMessagePort的话都需要root权限吧?我的iOS9.0.2,今天在普通的app上使用CFMessagePort相关的方法就崩溃了,然后让app用root权限去运行的话,就可以正常工作,请问如果不是root权限运行,也可以使用CFMessagePort进行通讯吗
非root权限我没试过呢,从你的测试结果来看是需要root才行。
CPDistributedMessagingCenter 消息回发送失败的