Xcode 如何在持续集成上对macOS应用程序进行代码签名

Xcode 如何在持续集成上对macOS应用程序进行代码签名,xcode,macos,continuous-integration,travis-ci,code-signing,Xcode,Macos,Continuous Integration,Travis Ci,Code Signing,我采取的步骤: 为我的MacOS应用程序创建了一个新的空白Xcode项目 已为CI安装程序创建.travis.yml文件 将未编辑的Xcode项目推送到我的GitHub回购 Travis开始构建我的项目,但它抛出了一个错误: 找不到签名证书“Mac开发”:找不到与ID“XXXXX”和私钥匹配的“Mac开发”签名证书 My.travis.yml: os: osx language: swift osx_image: xcode11.3 script: xcodebuild clean build

我采取的步骤:

  • 为我的MacOS应用程序创建了一个新的空白Xcode项目
  • 已为CI安装程序创建.travis.yml文件
  • 将未编辑的Xcode项目推送到我的GitHub回购
  • Travis开始构建我的项目,但它抛出了一个错误:

    找不到签名证书“Mac开发”:找不到与ID“XXXXX”和私钥匹配的“Mac开发”签名证书

  • My.travis.yml:

    os: osx
    language: swift
    osx_image: xcode11.3
    script: xcodebuild clean build test -project MyApp.xcodeproj -scheme "MyApp" -sdk "macOS 10.15" -destination "platform=macOS" ONLY_ACTIVE_ARCH=NO
    
    我尝试了禁用代码签名的技巧(),但这更像是一个黑客。但我想要一个干净的解决方案

    然而,Xcode签署了我的代码,但特拉维斯没有如何让我的MacOS应用程序也在Travis CI上签名
    顺便说一句:我只有一个免费的苹果开发者帐户,所以我不能从

    版本下载证书,这些版本都是用免费的苹果开发者帐户签署的,不会在没有连接到你的开发者帐户的机器上运行。您需要一个付费开发者帐户,才能使用开发者ID(应用商店之外)或应用商店对软件进行签名

    这就是说,对于macOS(但不是iOS/tvOS/etc),使用CI构建的二进制文件可以由下载到禁用了Gatekeeper(仅10.15之前,不推荐)的机器上的人运行,或者使用文件>打开命令或上下文菜单的打开命令启动应用程序(带有警告)

    在CI环境中,构建没有签名,然后在以后添加签名是很常见的(例如,这可以防止意外装运未通过最终测试的二进制文件,或者允许公司限制谁可以构建正式二进制文件以及在什么情况下)


    需要说明的是,如果没有签名证书和密钥,您将无法对应用程序进行签名。

    您好,谢谢您的回答:)由于我只在业余时间开发swift,因此我对MacOS/iOS应用程序的CI不太了解。这个答案帮助我知道代码签名在开发环境中并不重要,而是在生产环境中。所以我通过在我的构建命令中添加“CODE\u SIGN\u IDENTITY=”“CODE\u SIGNING\u REQUIRED=NO”来解决这个问题。@Jonathan,你是怎么做到的?