每当我构建我的Xcode项目时,在编译完所有代码之后,永远完成“签署产品”。 (我相信这是因为该项目包含大约需要签名的200 MB资源。)我想在开发过程中跳过代码签名,因此构建可以更快完成。我怎么能这样做?
答案 0 :(得分:31)
要关闭代码签名,请转到您的项目并定位“构建设置”,搜索“代码签名身份”,将其值更改为“不要代码签名”。
要使此功能生效,您需要单独更改项目和所有目标中的此值。
答案 1 :(得分:11)
从Xcode 10开始,以下是如何关闭macOS应用程序的代码签名:
使用此设置,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 表明如果你越狱,你可以在没有代码签名的情况下构建,但我不确定它的答案现在是否有效