You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codemagic构建IPA报错:Runner.app需含推送通知功能描述文件

问题

配置Codemagic iOS工作流,目标是构建IPA并推送至TestFlight。已完成以下操作:

  • 在App Store Connect创建Codemagic API密钥
  • 通过Codemagic界面生成开发证书与分发证书
  • 为应用创建描述文件,且该文件显示已启用推送通知功能

但构建流程启动时报错:

Encountered error while creating the IPA:
error: exportArchive: "Runner.app" requires a provisioning profile with the Push Notifications feature.

工作流配置如下:

ios-workflow-id:
    name: iOS Sample Workflow
    integrations:
      app_store_connect: CodeMagic
    environment:
      vars:
        APP_ID: #########
      ios_signing:
        provisioning_profiles:
          - Codemagic
        certificates:
          - Development_Certificate
          - Distribution_Certificate
    scripts:
      - name: Set up code signing settings on Xcode project
        script: |
          xcode-project use-profiles
      - name: Get Flutter packages
        script: |
          flutter packages pub get
      - name: Install pods
        script: |
          find . -name "Podfile" -execdir pod install \;
      - name: Flutter build ipa
        script: |
          BUILD_NUMBER=$(($(app-store-connect get-latest-app-store-build-number "$APP_ID") + 1))
          flutter build ipa --release \
            --build-name=1.0.0 \
            --build-number=$BUILD_NUMBER
    artifacts:
      - build/ios/ipa/*.ipa
    publishing:
      app_store_connect:
        auth: integration
        submit_to_testflight: true

代码签名日志:

Configure code signing settings
Searching for files matching /Users/builder/Library/MobileDevice/Provisioning Profiles/*.mobileprovision
Searching for files matching /Users/builder/Library/MobileDevice/Provisioning Profiles/*.provisionprofile
List available code signing certificates in keychain /Users/builder/Library/codemagic-cli-tools/keychains/03-02-23_smdje8o8.keychain-db
Searching for files matching /Users/builder/clone/**/*.xcodeproj
Completed configuring code signing settings
 - Using profile "Codemagic" [717112ed-c3ca-45b5-946a-efe6d07dffcc] for target "Runner" [Debug] from project "Runner"
 - Using profile "Codemagic" [717112ed-c3ca-45b5-946a-efe6d07dffcc] for target "Runner" [Profile] from project "Runner"
 - Using profile "Codemagic" [717112ed-c3ca-45b5-946a-efe6d07dffcc] for target "Runner" [Release] from project "Runner"
Generated options for exporting the project
 - Method: app-store
 - Provisioning Profiles:
     - com.fdforge.dev: Codemagic
 - Signing Certificate: Apple Distribution
 - Signing Style: manual
 - Team Id: #####
Saved export options to /Users/builder/export_options.plist
解决方案

以下是几个排查和解决方向:

  • 确认描述文件的实际推送权限
    登录App Store Connect,进入「证书、标识符和描述文件」,找到你在Codemagic中使用的「Codemagic」描述文件,点击查看详情:

    • 检查描述文件关联的App ID是否已开启推送通知功能,且描述文件是开启推送后重新生成的(开启权限后必须重新生成描述文件,旧文件不会自动更新权限)。
    • 确保描述文件是分发类型(App Store或Ad Hoc),TestFlight发布需要对应分发证书的描述文件,开发描述文件无法用于此场景。
  • 检查Xcode项目的推送配置
    打开本地Xcode项目,进入Runner target的「Signing & Capabilities」标签页:

    • 确认已添加「Push Notifications」能力,且状态为启用。
    • 检查项目Info.plist中是否包含APS Environment项,发布版本需设置为production。
  • 验证Codemagic中描述文件的匹配度
    在Codemagic的「Code signing」页面,确认「Codemagic」描述文件的Bundle ID与项目中APP_ID完全一致(区分大小写)。若不一致,重新选择或导入匹配的描述文件。

  • 强制清理并重新导入签名文件

    • 在App Store Connect中撤销当前分发证书,重新生成新的分发证书和对应的描述文件,再导入Codemagic。
    • 在构建脚本的「Set up code signing settings on Xcode project」步骤前添加清理缓存命令:
      rm -rf ~/Library/MobileDevice/Provisioning Profiles/*
      
  • 检查Flutter构建命令参数
    确保flutter build ipa命令未覆盖签名配置,若使用了--export-options-plist参数,检查plist文件中的推送相关配置是否正确。


内容的提问来源于stack exchange,提问作者Veronika Haichenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:21:23