签署可可应用程序以供分发

时间:2017-02-19 19:33:07

标签: macos code-signing osx-gatekeeper

我正在尝试使用我的分发证书让xcode签署我的应用程序,以便应用程序使用spctlcodesign验证命令行正确验证。这是一个将通过下载而不是通过Mac OS Store分发的应用程序。

我有Apple Developer Program OSX发行证书。我只是一名团队成员,而不是Apple开发者计划团队的管理员,但我的管理员制作了证书并将其发送给了我。

以下是开发人员计划网站中的证书:

enter image description here

以下是Keychain Access中我的机器上安装的证书:

enter image description here

我使用File>在xcode中创建了一个cocoa app新>项目>可可。该项目称为Fred,因此它构建了Fred.app。我没有修改项目的代码/资源,所以它只是打开一个示例窗口和示例菜单栏。

这是我的应用身份/签名:

enter image description here

以下是签名设置:

enter image description here

这是"计划":

enter image description here

如您所见,我在代码签名身份中选择了Mac分发。当我这样做时,它给了我在身份/签名屏幕截图中看到的错误:

  

Fred的配置设置存在冲突。弗雷德是自动的   签署了开发,但第三个是冲突的代码签名身份   Party Mac Developer Application已手动指定。设置   代码签名身份值为" Mac Developer"在构建设置中   编辑器,或切换到项目编辑器中的手动签名。

如果我选择" Mac Developer"作为我的代码签名标识,构建成功完成。但似乎我想选择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

但:

Michael.Katz:~/Desktop$ spctl --verbose -a -t exec -vv "Fred.app"
Fred.app: rejected

我不知道怎么说出为什么我得到了这个"拒绝了#34;但我相信这意味着当应用程序下载时它不会成​​为被认为具有有效的第三方开发者签名(并且用户必须绕过Gategeeker才能使其运行)。

我在这里做错了什么?

(请注意,我还包括了我的构建图像"方案"上面。我遇到的一个基本问题是,如果使用该方案是唯一的方法,我不清楚告诉xcode进行发布版本。我在想它不会接受" Mac Distribution"因为我的代码签名身份是因为我没有设置为分配得当。)

0 个答案:

没有答案