gpt4 book ai didi

objective-c - Swift 项目中的特权帮助工具

转载 作者:搜寻专家 更新时间:2023-10-31 21:48:52 25 4
gpt4 key购买 nike

我使用 Swift 创建了一个 Xcode 项目,并使用 Objective-C 创建了一个特权帮助工具。该辅助工具在同样使用 Objective-C 创建的项目中运行良好,但在使用 Swift 创建的项目中似乎不起作用。

正在安装服务本身。我可以在 /Library/PrivilegedHelperTools 目录中看到辅助二进制文件,它的权限似乎没问题(以及用户:root)。使用 launchctl 删除助手会导致在我的项目运行时重新安装该工具(按预期工作),但我无法调用助手工具的任何方法。

既没有抛出任何异常,也没有发生任何其他错误(至少似乎没有错误,因为控制台也没有显示任何内容)。

有人知道这是否是 Swift 的问题吗?因为在另一个项目(用 Objective-C 编写)中运行相同的帮助工具效果很好。

最佳答案

我能弄清楚问题出在哪里。辅助工具有一个 main.m,其中包含一个 main() 方法。我只是忘了用创建我的助手类实例并触发其监听器的代码填充它:

#import <Foundation/Foundation.h>
#import "Helper.h"

int main(int argc, const char * argv[])
{
@autoreleasepool
{
Helper *helper = [[Helper alloc] init];
[helper run];
}
return EXIT_FAILURE;
}

此代码导致 Helper 实例在等待传入连接(来自 Helper.h)的无限循环中运行:

- (void)run
{
[_listener resume];
[[NSRunLoop currentRunLoop] run];
}

_listenerNSXPCListener 的实例。

关于objective-c - Swift 项目中的特权帮助工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27268291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com