簡體   English   中英

Codesign 僅在 GitHubActions 中失敗,在 MacOS 終端和 Jenkins 中成功

[英]Codesign fails only in GitHubActions, Succeed in MacOS terminal & Jenkins

我正在嘗試設置 GitHub 操作工作流,以使用自托管運行器在 MacOS(10.15.7) 系統上執行構建。 我的構建操作工作流程包括代碼登錄,如下所示

runs-on:  [self-macos]

  steps:
    - uses: actions/checkout@master
    - name: Build and Codesign
      env: 
        KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
        KEYCHAIN_PATH: ${{ secrets.KEYCHAIN_PATH }}
        DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }}
      run: |
           security list-keychain -d user -s $KEYCHAIN_PATH
           security unlock-keychain -p $KEYCHAIN_PASSWD $KEYCHAIN_PATH
           ./resources/compileExternalClasses.sh

目前代碼簽名部分失敗,僅在操作上出現以下錯誤。

+ codesign -f -s '***' -v /Users/devadmin/actions-runner/_work/linux-driver/linux-driver/framework.app

error: The specified item could not be found in the keychain.
- script failed with code : 1
Running install script failed with exit code 1
build fail.
Error: Process completed with exit code 255.

在具有相同 GitHub 操作工作區源代碼buildcode signingMac runner運行系統終端上,沒有任何問題。

即使通過Jenkins ,相同的源代碼也可以正常工作。

已經在我們安裝的 Mac 服務器端證書中,並且在下面的Key-chain部分下已激活。

Trust - When using this certificate - Use System Defaults

Access Control - Allow all applications to access this item

由於上述問題僅發生在 github 操作構建上。 請讓我知道我在行動方面缺少什么?

“s”參數中指定的項目在鑰匙串中不可用。

對於 GitHub,您必須先將證書導入鑰匙串。

最簡單的方法是使用:

uses: apple-actions/import-codesign-certs@v1
with: 
  p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
  p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}

關於如何創建正確秘密的完整說明在這里

請記住,對於自托管運行器,您必須在每次運行后清理它:

- name: Clean up keychain and provisioning profile
  if: ${{ always() }}
  run: |
    security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
    rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision

在這個鏈接的幫助下

已將蘋果開發者證書從login keychian 復制到system列表,現在我的問題已解決。

暫無
暫無

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

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