如何在Xcode中跳过开发构建的代码签名?

时间:2015-06-25 00:54:57

标签: xcode macos cocoa

每当我构建我的Xcode项目时,在编译完所有代码之后,永远完成“签署产品”。 (我相信这是因为该项目包含大约需要签名的200 MB资源。)我想在开发过程中跳过代码签名,因此构建可以更快完成。我怎么能这样做?

5 个答案:

答案 0 :(得分:31)

要关闭代码签名,请转到您的项目并定位“构建设置”,搜索“代码签名身份”,将其值更改为“不要代码签名”。

要使此功能生效,您需要单独更改项目和所有目标中的此值。

答案 1 :(得分:11)

从Xcode 10开始,以下是如何关闭macOS应用程序的代码签名:

  1. 在项目导航器中选择您的项目。
  2. 在目标列表中选择您的应用。
  3. 点击“构建设置”。
  4. 单击“全部”。
  5. 单击“级别”。
  6. 在搜索字段中输入“身份”。

first six steps

  1. 单击您的应用目标(在我的示例中标记为“测试”)列下的“代码签名身份”行。该表格的单元格可能显示为空。

where to click for step 7

  1. 在出现的弹出菜单中,选择“其他…”。

pop-up menu

  1. 在显示的弹出文本框中,删除所有文本,使该框为空。

empty popover

  1. 按回车键可取消弹出框。

使用此设置,Xcode将不会对您的应用目标进行签名。

答案 2 :(得分:1)

如果有人使用CMake(用于多平台项目)为特定目标禁用代码签名,我会使用以下方法:

    set_target_properties(MyAppTarget PROPERTIES
        XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
        OUTPUT_NAME "My nice application name"
        MACOSX_BUNDLE TRUE
        MACOSX_BUNDLE_BUNDLE_NAME "My nice application name"
        MACOSX_BUNDLE_INFO_PLIST path/to/Info.plist
        MACOSX_BUNDLE_BUNDLE_VERSION ${MY_APP_VERSION}
        MACOSX_BUNDLE_LONG_VERSION_STRING "My nice application name v${MY_APP_VERSION}"
        MACOSX_BUNDLE_SHORT_VERSION_STRING "${MY_APP_VERSION}"
        MACOSX_BUNDLE_GUI_IDENTIFIER "com.my.app"
        MACOSX_BUNDLE_COPYRIGHT "(C) 2019 My Company"
        MACOSX_RPATH TRUE
        MACOSX_FRAMEWORK_IDENTIFIER com.myapp.bundle.id
        XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path/Libraries"
        RESOURCE "${RESOURCE_FILES}"
        XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
        XCODE_ATTRIBUTE_EXECUTABLE_NAME "exec_name"
    )

答案 3 :(得分:0)

您可以尝试将资源移动到单独的捆绑目标,然后将该目标的.bundle产品添加到应用程序的“复制捆绑资源”构建阶段 - 理想情况下,应用程序构建应该能够使用捆绑包的签名(只需要在包的内容发生变化时重新生成),而不必单独重新签名资源。

答案 4 :(得分:0)

FWIW for iOS 构建是您构建到模拟器中的,您不需要代码签名。因此无需跳过它。

您只需要在物理设备上进行代码签名/配置文件。我不知道如何跳过它们。

这个我没有尝试过的 other answer 表明如果你越狱,你可以在没有代码签名的情况下构建,但我不确定它的答案现在是否有效