[英]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 操作工作區源代碼build
和code signing
的Mac 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.