From 243cffe499b6e2b44a9edd6e40474f0634fbffc8 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 09:25:20 +0800 Subject: [PATCH 01/10] Refactor Makefile to include MacOS Application Signing --- .github/workflows/debug-macos.yml | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/debug-macos.yml diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml new file mode 100644 index 00000000..937e6abc --- /dev/null +++ b/.github/workflows/debug-macos.yml @@ -0,0 +1,34 @@ +name: Apple Sign debug + +on: + workflow_dispatch: + inputs: + tags: + description: "Version tags" + +env: + VERSION: 0.9.0 + +jobs: + build: + strategy: + matrix: + go: [1.21.1] + runs-on: "macos-12" + steps: + - name: Install Certificates + run: | + mkdir -p certs + echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer + echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer + + - name: Import Certificates + run: | + security import ./certs/DeveloperIDG2CA.cer -k ~/Library/Keychains/login.keychain-db -T /usr/bin/codesign + security import ./certs/distribution.cer -k ~/Library/Keychains/login.keychain-db -T /usr/bin/codesign + + - name: DEUBG + run: | + security find-identity -v -p codesigning + security find-identity -p codesigning + security list-keychains -s ~/Library/Keychains/login.keychain-db From 82eae74f9f16b6d7e68655e3ca248db08f9ef18c Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 09:26:33 +0800 Subject: [PATCH 02/10] Refactor Makefile to include MacOS Application Signing --- .github/workflows/debug-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index 937e6abc..4493a6f5 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -29,6 +29,6 @@ jobs: - name: DEUBG run: | + security list-keychains -s ~/Library/Keychains/login.keychain-db security find-identity -v -p codesigning security find-identity -p codesigning - security list-keychains -s ~/Library/Keychains/login.keychain-db From 6bf57dd0f0b0453a962f9b352ebf63dfc8da9383 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 09:32:05 +0800 Subject: [PATCH 03/10] Github workflow debug --- .github/workflows/debug-macos.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index 4493a6f5..bc69ffbe 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -21,6 +21,8 @@ jobs: mkdir -p certs echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer + security verify-cert -c certs/DeveloperIDG2CA.cer + security verify-cert -c certs/distribution.cer - name: Import Certificates run: | @@ -29,6 +31,7 @@ jobs: - name: DEUBG run: | - security list-keychains -s ~/Library/Keychains/login.keychain-db + security list-keychains -s ~/Library/Keychains/login.keychain-db security find-identity -v -p codesigning security find-identity -p codesigning + security dump-keychain -d -r ~/Library/Keychains/login.keychain-db From 6d97a72f116aaed61a3f54a8d778361d942ac457 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 09:42:37 +0800 Subject: [PATCH 04/10] Github workflow debug --- .github/workflows/debug-macos.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index bc69ffbe..700037cd 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -17,6 +17,9 @@ jobs: runs-on: "macos-12" steps: - name: Install Certificates + env: + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | mkdir -p certs echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer @@ -26,12 +29,19 @@ jobs: - name: Import Certificates run: | - security import ./certs/DeveloperIDG2CA.cer -k ~/Library/Keychains/login.keychain-db -T /usr/bin/codesign - security import ./certs/distribution.cer -k ~/Library/Keychains/login.keychain-db -T /usr/bin/codesign + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import ./certs/DeveloperIDG2CA.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign + security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign + security list-keychain -d user -s $KEYCHAIN_PATH - name: DEUBG run: | - security list-keychains -s ~/Library/Keychains/login.keychain-db security find-identity -v -p codesigning security find-identity -p codesigning - security dump-keychain -d -r ~/Library/Keychains/login.keychain-db From 35906ee0fb75dbc53bb89c61bf87ab930b1da7e1 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 09:49:13 +0800 Subject: [PATCH 05/10] Github workflow debug --- .github/workflows/debug-macos.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index 700037cd..5fc2abef 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -22,8 +22,9 @@ jobs: run: | mkdir -p certs - echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer - echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer + echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer + echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer + echo "${{ secrets.APPLE_PRIVATE_KEY }}" | base64 --decode > certs/private_key.pem security verify-cert -c certs/DeveloperIDG2CA.cer security verify-cert -c certs/distribution.cer @@ -39,9 +40,13 @@ jobs: # import certificate to keychain security import ./certs/DeveloperIDG2CA.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign + + # import private key to keychain + security import ./certs/private_key.pem -k $KEYCHAIN_PATH -T /usr/bin/codesign + security list-keychain -d user -s $KEYCHAIN_PATH - - name: DEUBG + - name: Check Certificates run: | security find-identity -v -p codesigning security find-identity -p codesigning From b08b305cd350dcb2d44656b6b641ee226211e493 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 09:56:06 +0800 Subject: [PATCH 06/10] Refactor Makefile to remove importing private key and update certificate verification --- .github/workflows/debug-macos.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index 5fc2abef..2c23c8fb 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -24,7 +24,6 @@ jobs: mkdir -p certs echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer - echo "${{ secrets.APPLE_PRIVATE_KEY }}" | base64 --decode > certs/private_key.pem security verify-cert -c certs/DeveloperIDG2CA.cer security verify-cert -c certs/distribution.cer @@ -41,12 +40,10 @@ jobs: security import ./certs/DeveloperIDG2CA.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign - # import private key to keychain - security import ./certs/private_key.pem -k $KEYCHAIN_PATH -T /usr/bin/codesign - security list-keychain -d user -s $KEYCHAIN_PATH - name: Check Certificates run: | - security find-identity -v -p codesigning - security find-identity -p codesigning + echo $KEYCHAIN_PATH + security find-certificate -a -p $KEYCHAIN_PATH + security find-identity -v $KEYCHAIN_PATH From feae146523c85a8a41ed8d2079e666336f1d8c23 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 10:07:27 +0800 Subject: [PATCH 07/10] Github workflow debug --- .github/workflows/debug-macos.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index 2c23c8fb..9b77a3c2 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -24,6 +24,7 @@ jobs: mkdir -p certs echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer + echo "${{ secrets.APPLE_PRIVATE_KEY }}" | base64 --decode > certs/private_key.p12 security verify-cert -c certs/DeveloperIDG2CA.cer security verify-cert -c certs/distribution.cer @@ -40,10 +41,12 @@ jobs: security import ./certs/DeveloperIDG2CA.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign + # import private key to keychain + security import ./certs/private_key.p12 -k $KEYCHAIN_PATH -P "${{ secrets.APPLE_PRIVATE_KEY_PASSWORD }}" -T /usr/bin/codesign + security list-keychain -d user -s $KEYCHAIN_PATH - name: Check Certificates run: | - echo $KEYCHAIN_PATH - security find-certificate -a -p $KEYCHAIN_PATH - security find-identity -v $KEYCHAIN_PATH + security find-identity -v -p codesigning + security find-identity -p codesigning From da08db7f3fc5dbfb3130674e5149c5d6b9ac13d5 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 10:21:17 +0800 Subject: [PATCH 08/10] Refactor Makefile to update certificate verification and remove importing private key --- .github/workflows/debug-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index 9b77a3c2..68f9ef57 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -42,7 +42,7 @@ jobs: security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign # import private key to keychain - security import ./certs/private_key.p12 -k $KEYCHAIN_PATH -P "${{ secrets.APPLE_PRIVATE_KEY_PASSWORD }}" -T /usr/bin/codesign + security import ./certs/private_key.p12 -k $KEYCHAIN_PATH -P '${{ secrets.APPLE_PRIVATE_KEY_PASSWORD }}' -T /usr/bin/codesign security list-keychain -d user -s $KEYCHAIN_PATH From bbaa0ee62c98c003b7d75248bd911ce3e15c148e Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 10:25:30 +0800 Subject: [PATCH 09/10] Refactor Makefile to update certificate verification and fix private key import --- .github/workflows/debug-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml index 68f9ef57..9b77a3c2 100644 --- a/.github/workflows/debug-macos.yml +++ b/.github/workflows/debug-macos.yml @@ -42,7 +42,7 @@ jobs: security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign # import private key to keychain - security import ./certs/private_key.p12 -k $KEYCHAIN_PATH -P '${{ secrets.APPLE_PRIVATE_KEY_PASSWORD }}' -T /usr/bin/codesign + security import ./certs/private_key.p12 -k $KEYCHAIN_PATH -P "${{ secrets.APPLE_PRIVATE_KEY_PASSWORD }}" -T /usr/bin/codesign security list-keychain -d user -s $KEYCHAIN_PATH From ab188c9a5e389dddeb5310aacf2e9c9aea5d2432 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 28 Sep 2024 10:29:23 +0800 Subject: [PATCH 10/10] Refactor Makefile to update certificate verification and remove importing private key --- .github/workflows/build-macos.yml | 27 +++++++++++++--- .github/workflows/debug-macos.yml | 52 ------------------------------- 2 files changed, 23 insertions(+), 56 deletions(-) delete mode 100644 .github/workflows/debug-macos.yml diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index c3fe9919..dbf4a816 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -109,15 +109,34 @@ jobs: mv dist/release/yao-$VERSION-dev-darwin-amd64 dist/release/yao-$VERSION-unstable-darwin-amd64 - name: Install Certificates + env: + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | mkdir -p certs - echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer - echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer + echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer + echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer + echo "${{ secrets.APPLE_PRIVATE_KEY }}" | base64 --decode > certs/private_key.p12 + security verify-cert -c certs/DeveloperIDG2CA.cer + security verify-cert -c certs/distribution.cer - name: Import Certificates run: | - security import ./certs/DeveloperIDG2CA.cer -k ~/Library/Keychains/login.keychain-db -T /usr/bin/codesign - security import ./certs/distribution.cer -k ~/Library/Keychains/login.keychain-db -T /usr/bin/codesign + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import ./certs/DeveloperIDG2CA.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign + security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign + + # import private key to keychain + security import ./certs/private_key.p12 -k $KEYCHAIN_PATH -P "${{ secrets.APPLE_PRIVATE_KEY_PASSWORD }}" -T /usr/bin/codesign + + security list-keychain -d user -s $KEYCHAIN_PATH - name: Sign Artifacts run: | diff --git a/.github/workflows/debug-macos.yml b/.github/workflows/debug-macos.yml deleted file mode 100644 index 9b77a3c2..00000000 --- a/.github/workflows/debug-macos.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Apple Sign debug - -on: - workflow_dispatch: - inputs: - tags: - description: "Version tags" - -env: - VERSION: 0.9.0 - -jobs: - build: - strategy: - matrix: - go: [1.21.1] - runs-on: "macos-12" - steps: - - name: Install Certificates - env: - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} - - run: | - mkdir -p certs - echo "${{ secrets.APPLE_DEVELOPERIDG2CA }}" | base64 --decode > certs/DeveloperIDG2CA.cer - echo "${{ secrets.APPLE_DISTRIBUTION }}" | base64 --decode > certs/distribution.cer - echo "${{ secrets.APPLE_PRIVATE_KEY }}" | base64 --decode > certs/private_key.p12 - security verify-cert -c certs/DeveloperIDG2CA.cer - security verify-cert -c certs/distribution.cer - - - name: Import Certificates - run: | - KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db - - # create temporary keychain - security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH - security set-keychain-settings -lut 21600 $KEYCHAIN_PATH - security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH - - # import certificate to keychain - security import ./certs/DeveloperIDG2CA.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign - security import ./certs/distribution.cer -k $KEYCHAIN_PATH -T /usr/bin/codesign - - # import private key to keychain - security import ./certs/private_key.p12 -k $KEYCHAIN_PATH -P "${{ secrets.APPLE_PRIVATE_KEY_PASSWORD }}" -T /usr/bin/codesign - - security list-keychain -d user -s $KEYCHAIN_PATH - - - name: Check Certificates - run: | - security find-identity -v -p codesigning - security find-identity -p codesigning