簡體   English   中英

如何在 Xcode 中跳過開發版本的代碼簽名?

[英]How can I skip code signing for development builds in Xcode?

每當我構建我的 Xcode 項目時,在編譯我的所有代碼之后,完成“簽署產品”需要很長時間 (我相信這是因為該項目包含大約 200 MB 的需要簽名的資源。)我想在開發過程中跳過代碼簽名,這樣構建可以更快地完成。 我怎樣才能做到這一點?

從 Xcode 10 開始,以下是關閉 macOS 應用程序代碼簽名的方法:

  1. 在項目導航器中選擇您的項目。
  2. 在目標列表中選擇您的應用。
  3. 單擊“構建設置”。
  4. 單擊“全部”。
  5. 單擊“級別”。
  6. 在搜索字段中輸入“身份”。

前六個步驟

  1. 單擊應用程序目標列下的代碼簽名標識行(在我的示例中標記為“測試”)。 表格的那個單元格可能顯示為空。

在哪里點擊第 7 步

  1. 在出現的彈出菜單中,選擇“其他...”。

彈出菜單

  1. 在出現的彈出文本框中,刪除所有文本,使該框為空。

空彈出框

  1. 按回車鍵關閉彈出框。

使用此設置,Xcode 將不會簽署您的應用程序目標。

要關閉代碼簽名,請轉到您的項目並以“構建設置”為目標,搜索“代碼簽名標識”將其值更改為“不要代碼簽名”。

要使其有效,您需要分別在項目和所有目標中更改此值。

如果有人使用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"
    )

您可以嘗試將您的資源移動到一個單獨的捆綁目標,然后將該目標的 .bundle 產品添加到您的應用程序的“復制捆綁資源”構建階段——理想情況下,應用程序構建應該能夠使用捆綁包的簽名(這將只需要包的內容更改時重新生成),而不必單獨重新簽名資源。

FWIW for iOS 構建您構建到您的模擬器中,您不需要代碼簽名。 因此無需跳過它。

您只需要在物理設備上進行代碼簽名/配置文件。 我不知道如何跳過它們。

我還沒有嘗試過的另一個答案表明,如果您越獄,您可以在沒有代碼簽名的情況下進行構建,但我不確定它的答案現在是否有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM