Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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
Macos 签署cocoa应用程序以进行分发_Macos_Code Signing_Osx Gatekeeper - Fatal编程技术网

Macos 签署cocoa应用程序以进行分发

Macos 签署cocoa应用程序以进行分发,macos,code-signing,osx-gatekeeper,Macos,Code Signing,Osx Gatekeeper,我试图让xcode使用我的分发证书对我的应用程序进行签名,这样应用程序就可以使用spctl和codesign验证命令行正确地进行验证。这是一个应用程序,将通过下载而不是通过Mac OS商店分发 我有苹果开发者程序OSX发行证书。我只是一个团队成员,不是我们苹果开发者项目团队的管理员,但我的管理员制作了证书,并把它发给了我 以下是开发者计划网站上的证书: 以下是安装在我的机器上的密钥链访问证书: 我已经在xcode中使用文件>新建>项目>cocoa创建了一个cocoa应用程序。该项目名为Fre

我试图让xcode使用我的分发证书对我的应用程序进行签名,这样应用程序就可以使用
spctl
codesign
验证命令行正确地进行验证。这是一个应用程序,将通过下载而不是通过Mac OS商店分发

我有苹果开发者程序OSX发行证书。我只是一个团队成员,不是我们苹果开发者项目团队的管理员,但我的管理员制作了证书,并把它发给了我

以下是开发者计划网站上的证书:

以下是安装在我的机器上的密钥链访问证书:

我已经在xcode中使用文件>新建>项目>cocoa创建了一个cocoa应用程序。该项目名为Fred,因此它构建Fred.app。我没有修改项目的代码/资源,所以它只显示了一个示例窗口和示例菜单栏

这是我的应用程序标识/签名:

以下是签名设置:

以下是“方案”:

如您所见,我在代码符号标识中选择了Mac分发。当我这样做时,它会给我一个错误,您可以在标识/签名屏幕截图中看到:

Fred具有冲突的设置。弗雷德是自动的 为开发而签名,但代码签名身份冲突 已手动指定第三方Mac开发者应用程序。设定 在生成设置中将代码签名标识值指定给“Mac Developer” 编辑器,或在项目编辑器中切换到手动签名

如果我选择“macdeveloper”作为我的代码签名身份,构建将成功完成。但我似乎想选择Mac发行版,因为我正在签署发行版,对吗

在任何情况下,当我选择“Mac Developer”并构建应用程序时,我会使用以下命令行:

Michael.Katz:~/Desktop$ codesign --verify --deep --strict --verbose=2 Fred.app
Fred.app: valid on disk
Fred.app: satisfies its Designated Requirement
但是:

我不知道如何解释为什么我会被拒绝,但我相信这意味着当下载应用程序时,它不会被识别为具有有效的第三方开发者签名(用户必须绕过GateGeek才能运行)

我做错了什么


(注意,我在上面还包括了我的构建“方案”的图片。我的一个基本问题是,我不清楚使用该方案是否是告诉xcode进行发布构建的唯一方法。我在想,它不接受“Mac分发”的原因是什么。)因为我的代码签名身份是因为我没有将应用程序设置为正确生成以进行分发。)

尝试执行Xcode>Product>Archive,然后查看应用程序是否使用正确的证书签名。您需要发布Mac应用程序分发版
macdeveloper
仅适用于开发/调试版本。@I'L'I,当你说“你会想要”时,是的,这是我的假设。但是你能告诉我为什么我选择“Mac发行版”时会出现上面显示的错误吗?在你的设置中,你必须将它设置为使用另一个证书“第三方Mac开发者应用程序”。上面的“目标”上面写着“项目”,检查项目文件是否正在使用它。对,在上面的图片中,我在目标和项目级别都设置了“Mac分发”,我得到了上面显示的错误。这就是我的帖子的内容。是的,我知道这篇帖子的内容,我正试图帮助你——或者曾经。。。
Michael.Katz:~/Desktop$ spctl --verbose -a -t exec -vv "Fred.app"
Fred.app: rejected