首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的Github操作在试图构建一个IPA时失败了(不使用fastlane)

为什么我的Github操作在试图构建一个IPA时失败了(不使用fastlane)
EN

Stack Overflow用户
提问于 2022-02-01 01:43:04
回答 1查看 550关注 0票数 1

我试图为CI/CD使用GitHub操作,当试图创建IPA文件时,在试图查找供应配置文件时会失败。

我把这些文件存储在Github的机密部分,它们看起来很好地加载。

代码语言:javascript
运行
复制
  env:
    BUILD_CERTIFICATE_BASE64: ***
    P12_PASSWORD: ***
    BUILD_PROVISION_PROFILE_BASE64: ***
    KEYCHAIN_PASSWORD: ***
1 identity imported.

我创建了一个ExportOptions.plist文件并尝试打印出来,以确保GitHub正确地读取它。

代码语言:javascript
运行
复制
    {
  "method" => "ad-hoc"
  "provisioningProfiles" => {
    "com.strykeout.Demo_CICD" => "PROFILE UUID"
  }

  "signingCertificate" => "iPhone Distribution: Nathan (XXXXXXX)"

  "signingStyle" => "manual"
  "teamID" => "XXXXXXXX"

}

2022-01-31 22:55:17.741 xcodebuild[1633:7990] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/Demo_CICD_2022-01-31_22-55-17.740.xcdistributionlogs".

error: exportArchive: "Demo_CICD.app" requires a provisioning profile.

** EXPORT FAILED **
Error Domain=IDEProvisioningErrorDomain Code=9 ""Demo_CICD.app" requires a provisioning profile." UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription="Demo_CICD.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

它似乎找不到导出选项的provisioningProfiles部分,但它显然在那里。

这是完整的工作流程:

代码语言:javascript
运行
复制
name: Archive Workflow

on:
  push:
    branches: [ main ]

jobs:
  build:
    name: Archive File on merge to Main 
    runs-on: macos-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2
        
      - name: Install the Apple certificate and provisioning profile
        env:
          BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
          P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
          BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
          KEYCHAIN_PASSWORD: ${{ secrets.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 archive
        env:
          scheme: ${{ 'Demo_CICD' }}
        run: |
            xcodebuild \
            -configuration Release \
            -scheme $scheme \
            -archivePath ./demo/Demo_CICD.xcarchive \
            archive 
      - name: Build IPA
        run: |
            plutil -p exportOptions.plist
            xcodebuild \
            -configuration Release \
            -exportArchive \
            -archivePath ./demo/Demo_CICD.xcarchive \
            -exportPath /demo/demoIPA.ipa \
            -exportOptionsPlist exportOptions.plist 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-01 17:10:55

我发现了我的问题是:

很明显,Xcode正在将我的应用程序包ID从demo_cicd升级到demo-cicd (下划线改为连字符),因此与exportOptions Plist的工作方式不匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70934788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档