xcode - 我应该使用哪个证书来签署我的 Mac OS X 应用程序?

标签 xcode macos certificate release

我们正在开发一个 Mac OS X 应用程序,我们将在 Mac App Store 之外分发该应用程序。我们最终在 Mac 开发人员计划中获得了这些证书:

List of six certificates: two of type Mac Development, four of types Developer ID Installer, Mac App Distribution, Mac Installer Distribution, Developer ID Application

当我去选择一个来签署申请时,我发现:

Certificate selection menu. Automatic: Mac Developer, Mac Distribution, Developer ID: *; others in Identities in Keychain

我是否正确,我应该使用 Developer ID: *用于调试?这是否允许没有我公司证书的开发人员签署应用程序以便能够在本地运行它?

我应该使用什么证书来发布?

最佳答案

对于开发(例如,调试配置),请使用 Mac Developer选项,它将选择您的本地 Mac 开发人员证书(在您的情况下为“Mac 开发人员:José Fernández”),该证书适用于处理您的项目(包括测试/调试)的团队成员。

对于发布,使用“开发人员 ID:*”,它将选择 the standard application release certificate used outside the AppStore ,在您的情况下,“开发人员 ID 应用程序:轮播应用程序。我建议在代码设计后进行最终测试/调试,以确保它按预期工作。

Xcode 获取证书的方式是通过简单的子字符串匹配。

Apple Codesigning Certificate Types

( 名称 , 类型, 描述)

iOS开发

  • iPhone 开发人员:团队成员姓名 用于在设备上运行 iOS 应用程序
    并在开发过程中使用某些应用服务。

  • iOS分发
  • iPhone 分布:
    团队名称 用于分发您的 iOS 应用程序
    指定设备进行测试或将其提交到 App Store。

  • Mac 开发
  • Mac 开发人员:团队成员姓名 用于启用某些应用服务
    在开发和测试过程中。

  • Mac 应用分发
  • 第 3 方 Mac 开发人员应用程序:用于签署 Mac 应用程序的团队名称
    在将其提交到 Mac App Store 之前。

  • Mac 安装程序分发
  • 第 3 方 Mac 开发人员安装程序:用于签名和提交的团队名称
    一个 Mac 安装程序包,包含您签名的应用程序,到 Mac 应用程序
    店铺。

  • 开发者 ID 申请
  • 开发者 ID 应用程序:团队名称之前用于签署 Mac 应用程序
    在 Mac App Store 之外分发它。

  • 开发者 ID 安装程序
  • 开发人员 ID 安装程序:用于签名和分发 Mac 的团队名称
    安装程序包,包含您已签名的应用程序,位于 Mac 应用程序之外
    店铺

  • enter image description here
    代码设计完成后,您还可以模拟从 Terminal.app 启用 Gatekeeper 时应用程序的启动行为。 :
    spctl -a -v Carousel.app
    
    ./Carousel.app: accepted
    source=Developer ID
    

    The Developer ID Application certificate allows your app to run with Gatekeeper on the setting "allow apps downloaded from Mac App Store and identified developers"

    关于xcode - 我应该使用哪个证书来签署我的 Mac OS X 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039462/

    相关文章:

    xcode - Xcode 中的 "Non-breaking space (U+00A0) used instead of regular space"警告

    iphone - 更改枚举类型值

    ios - 使用 Swift 在 Ios 中本地导入数据表并将其用于搜索功能

    macos - 动画自动调整 NSTableView 行高

    macos - 如何删除 macOS SwiftUI 应用程序中的 "New window"选项?

    Spring Security SAML IdP 元数据证书和签名

    .net - 用于替换 signtool.exe 的 API/库

    Swift - 将 RSSI 转换为距离

    git - 在 Mac 上,行尾会自动设置为 Windows 行尾,我该如何更改?

    git - 如何使用自签名证书将 Jenkins slave 连接到 Git 服务器?