While Running Github Actions Pipeline: No Signing Certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID

23 views Asked by At

Flutter CI CD Pipeline Using Github Actions.

When running xcodebuild -workspace Runner.xcworkspace -scheme Runner -configuration "Release-staging" DEVELOPMENT_TEAM=XXXXXXXX -sdk 'iphoneos' -destination 'generic/platform=iOS' -archivePath build-output/app.xcarchive clean archive CODE_SIGN_IDENTITY="Apple Development"

/Users/runner/work/AppName/AppName/ios/Pods/Pods.xcodeproj: error: No signing certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID "XXXXXXXXX" with a private key was found. (in target 'firebase_core' from project 'Pods')

/Users/runner/work/AppName/AppName/ios/Pods/Pods.xcodeproj: error: No signing certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID "XXXXXXXX" with a private key was found. (in target 'flutter_phone_direct_caller' from project 'Pods')

/Users/runner/work/AppName/AppName/ios/Pods/Pods.xcodeproj: error: No signing certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID "XXXXXXX" with a private key was found. (in target 'device_info' from project 'Pods')

. . . . (For all other 3rd party dependencies) . .

** ARCHIVE FAILED **

Error: Process completed with exit code 65.

Full Pipeline .yml

name: Deploy iOS to Firebase App Distribution on merge on: push: branches: - dev jobs: build-ios: runs-on: macos-latest defaults: run: working-directory: ios

steps:
  - uses: actions/checkout@v3
  - uses: subosito/flutter-action@v2

  - name: Install Dependencies
    run: flutter packages get

  - name: Install the Apple certificate and provisioning profile
    env:
      BUILD_CERTIFICATE_BASE64: ${{ secrets.STAGING_BUILD_CERTIFICATE_BASE64 }}
      P12_PASSWORD: ${{ secrets.STAGING_P12_PASSWORD }}
      BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.STAGING_BUILD_PROVISION_PROFILE_BASE64 }}
      KEYCHAIN_PASSWORD: ${{ secrets.STAGING_KEYCHAIN_PASSWORD }}
    run: |
      # create variables
      CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
      PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
      KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db

      # import certificate and provisioning profile from secrets
      echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
      echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode --output $PP_PATH

      # 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 $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
      security list-keychain -d user -s $KEYCHAIN_PATH

      # apply provisioning profile
      mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
      cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles

  - name: Build
    run: flutter build ios --release --no-codesign

  - name: Build resolve Swift dependencies
    run: xcodebuild -resolvePackageDependencies -workspace Runner.xcworkspace -scheme Runner -configuration "Release"

  - name: Build xArchive
    run: |
      xcodebuild -workspace Runner.xcworkspace -scheme Runner -configuration "Release-staging" DEVELOPMENT_TEAM=XXXXXXXXXX -sdk 'iphoneos' -destination 'generic/platform=iOS' -archivePath build-output/app.xcarchive clean archive CODE_SIGN_IDENTITY="Apple Development"

  - name: Export ipa
    run: |
      xcodebuild -exportArchive -archivePath build-output/app.xcarchive -exportPath build-output/ios -exportOptionsPlist ios/ExportOption.plist

  - name: Upload artifact
    uses: actions/upload-artifact@v2
    with:
      name: App.ipa
      path: /Users/runner/work/MyMobileApp/MyMobileApp/app/build-output/ios/MyMobileApp.ipa

      retention-days: 1
      if-no-files-found: error

  - 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

distribute-ios: needs: build-ios runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 with: name: App.ipa

  - name: Firebase App Distribution
    uses: wzieba/[email protected]
    with:
      appId: ${{secrets.IOS_FIREBASE_APP_ID_STAGING}}
      token: ${{secrets.FIREBASE_TOKEN}}
      groups: internal-testing-ios
      file: MyMobileApp.ipa
0

There are 0 answers