2

我正在尝试构建一个迷你应用程序来共同设计一个带有codesign实用程序的 Mac OS X 应用程序和我在钥匙串中的开发人员证书。为此,我使用NSTask,就像这样:

[task setLaunchPath:@"/usr/bin/codesign"];
// ...
NSString *certificateName = @"\"3rd Party Mac Developer Application: Firstname Lastname\"";
NSString *appName = @"\"/path/to/My App.app\"";
NSArray *args = [NSArray arrayWithObjects:@"-s", certificateName, appName, nil];
// ...
[task launch];

我使用 aNSPipe来捕获输出并收到此错误消息:no identity found...
但是,如果我通过终端手动启动此命令,则应用程序已签名良好(因此这不是证书安装错误等问题)。

我认为问题出现是因为我的应用程序无法访问钥匙串中的证书(但我可以通过终端)。

有人已经遇到过这个问题吗?

提前谢谢,最好的。

4

1 回答 1

2

您不应在以下参数中嵌入额外的引号NSTask

NSString *certificateName = @"3rd Party Mac Developer Application: Firstname Lastname";
NSString *appName = @"/path/to/My App.app";

参数中的空格是自动处理的,不需要引号。

于 2013-01-20T15:53:13.437 回答