54

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

4

5 回答 5

92

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

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

前六个步骤

  1. 单击应用程序目标列下的 Code Signing Identity 行(在我的示例中标记为“test”)。表格的该单元格可能显示为空。

第 7 步的点击位置

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

弹出菜单

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

空弹出框

  1. 按回车键关闭弹出框。

使用此设置,Xcode 将不会签署您的应用程序目标。

于 2019-01-21T18:38:35.177 回答
54

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

为了使其有效,您需要分别更改项目和所有目标中的此值。

于 2015-08-13T10:33:25.350 回答
6

如果有人使用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"
    )
于 2019-10-18T13:28:31.730 回答
0

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

于 2015-08-12T17:30:35.463 回答
0

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

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

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

于 2021-01-10T12:25:33.010 回答