From 83e3760be936c658d8561108e3434d2d836bfab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B0=D1=82=D0=BE=D0=BB=D0=B8=D0=B9=20=D0=9F?= =?UTF-8?q?=D0=BE=D0=BB=D0=BE=D0=B7?= Date: Mon, 17 Mar 2025 14:04:02 +0000 Subject: [PATCH 1/3] Update .gitea/workflows/test-flight-cd.yaml --- .gitea/workflows/test-flight-cd.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/test-flight-cd.yaml b/.gitea/workflows/test-flight-cd.yaml index 69ef82c0..452fecf8 100644 --- a/.gitea/workflows/test-flight-cd.yaml +++ b/.gitea/workflows/test-flight-cd.yaml @@ -13,7 +13,10 @@ jobs: - name: Import code sign uses: mso7nueh/import-codesign-certs@v1 + env: + KEYCHAIN_PATH: ${{ runner.temp }}/signing_temp.keychain with: + keychain-path: ${{ env.KEYCHAIN_PATH }} p12-file-base64: ${{ secrets.CERTIFICATES_FILE_BASE64 }} p12-password: ${{ secrets.CERTIFICATES_PASSWORD }} From a2c1d31d635673772a83d474bbbb307e1d0067e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B0=D1=82=D0=BE=D0=BB=D0=B8=D0=B9=20=D0=9F?= =?UTF-8?q?=D0=BE=D0=BB=D0=BE=D0=B7?= Date: Tue, 18 Mar 2025 09:45:06 +0000 Subject: [PATCH 2/3] Update Build-tf --- Build-tf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Build-tf b/Build-tf index 8707c674..13c0fc98 100755 --- a/Build-tf +++ b/Build-tf @@ -3,6 +3,9 @@ set -xeu set -o pipefail +export LANG=en_US.UTF-8 +LANG=en_US.UTF-8 + function finish() { ditto -c -k --sequesterRsrc --keepParent "${RESULT_BUNDLE_PATH}" "${RESULT_BUNDLE_PATH}.zip" rm -rf "${RESULT_BUNDLE_PATH}" From 00750d9408d29c8f38bbad146a02a0f4c26bbf9e Mon Sep 17 00:00:00 2001 From: mso7nueh Date: Tue, 18 Mar 2025 14:05:05 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20.gitea/workflows/test-flight-cd.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/test-flight-cd.yaml | 63 ++++++++++++++++++---------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/.gitea/workflows/test-flight-cd.yaml b/.gitea/workflows/test-flight-cd.yaml index c148acef..33ec4733 100644 --- a/.gitea/workflows/test-flight-cd.yaml +++ b/.gitea/workflows/test-flight-cd.yaml @@ -1,4 +1,5 @@ -name: "Build Test Flight" +name: "Flutter Build & TestFlight Upload" + on: pull_request: branches: @@ -6,28 +7,31 @@ on: jobs: build: - runs-on: [macos-arm64] + runs-on: macos-latest steps: - - name: Checkout - uses: actions/checkout@v2 + - name: Checkout repository + uses: actions/checkout@v3 - - name: Delete existing keychain if present + - name: Install dependencies + run: flutter pub get + + - name: Build iOS App run: | - if security list-keychains | grep -q "signing_temp.keychain"; then - security delete-keychain signing_temp.keychain - fi + flutter build ipa \ + --release \ + --no-codesign - - name: Import code sign - uses: mso7nueh/import-codesign-certs@v1 - env: - KEYCHAIN_PATH: ${{ runner.temp }}/signing_temp.keychain - with: - keychain-path: ${{ env.KEYCHAIN_PATH }} - p12-file-base64: ${{ secrets.CERTIFICATES_FILE_BASE64 }} - p12-password: ${{ secrets.CERTIFICATES_PASSWORD }} + - name: Setup keychain and provisioning profiles + run: | + security create-keychain -p "" signing_temp.keychain + security default-keychain -s signing_temp.keychain + security unlock-keychain -p "" signing_temp.keychain + echo "${{ secrets.CERTIFICATES_FILE_BASE64 }}" | base64 --decode > certs.p12 + security import certs.p12 -P "${{ secrets.CERTIFICATES_PASSWORD }}" -A + rm -f certs.p12 - - name: Download provisioning - uses: mso7nueh/apple-provisioning-profiles-downloader@v1.0.8 + - name: Download provisioning profiles + uses: apple-actions/download-provisioning-profiles@v1 with: profile-type: IOS_APP_STORE bundle-id: com.eatvioapp.app @@ -35,12 +39,29 @@ jobs: api-key-id: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} - - run: ./Build-tf + - name: Code signing + run: | + xcodebuild \ + -workspace ios/Runner.xcworkspace \ + -scheme Runner \ + -archivePath build/Runner.xcarchive \ + -sdk iphoneos \ + -configuration Release \ + clean archive \ + CODE_SIGN_IDENTITY="iPhone Distribution" \ + PROVISIONING_PROFILE_SPECIFIER="$(ls ~/Library/MobileDevice/Provisioning\ Profiles | head -n 1)" + + - name: Export IPA + run: | + xcodebuild -exportArchive \ + -archivePath build/Runner.xcarchive \ + -exportPath build/ \ + -exportOptionsPlist ios/exportOptions.plist - name: Upload to TestFlight - uses: mso7nueh/upload-testflight-build@master + uses: apple-actions/upload-testflight-build@v1 with: - app-path: .build/Artifacts/EatvioApp.ipa/EatvioApp.ipa + app-path: build/EatvioApp.ipa issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }} api-key-id: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} \ No newline at end of file