我正在尝试使用我的分发证书让xcode签署我的应用程序,以便应用程序使用spctl
和codesign
验证命令行正确验证。这是一个将通过下载而不是通过Mac OS Store分发的应用程序。
我有Apple Developer Program OSX发行证书。我只是一名团队成员,而不是Apple开发者计划团队的管理员,但我的管理员制作了证书并将其发送给了我。
以下是开发人员计划网站中的证书:
以下是Keychain Access中我的机器上安装的证书:
我使用File>在xcode中创建了一个cocoa app新>项目>可可。该项目称为Fred,因此它构建了Fred.app。我没有修改项目的代码/资源,所以它只是打开一个示例窗口和示例菜单栏。
这是我的应用身份/签名:
以下是签名设置:
这是"计划":
如您所见,我在代码签名身份中选择了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"因为我的代码签名身份是因为我没有设置为分配得当。)