【问题标题】:Azure pipeline failing with "Apps must contain a provisioning profile in a file named embedded.mobileprovision"Azure 管道因“应用程序必须在名为 embedded.mobileprovision 的文件中包含配置文件”而失败
【发布时间】:2020-12-16 10:28:52
【问题描述】:

获取应用程序必须在名为 Embedded.mobileprovision 错误的文件中包含配置文件。即使遇到同样的问题,我也添加了“'args:'-UseModernBuildSystem=0'”。

      - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: 'cert.p12'
          certPwd: '$(certpasswd)'

      - task: InstallAppleProvisioningProfile@1
        inputs:
          provisioningProfileLocation: 'secureFiles'
          provProfileSecureFile: 'app_profile.mobileprovision'

      - task: Xcode@5
        displayName: 'Xcode Development Release'
        inputs:
          actions: 'archive'
          sdk: '$(sdk)'
          scheme: '$(scheme)'
          xcWorkspacePath: '**/*.xcodeproj'
          exportOptions: 'specify'
          exportMethod: 'app-store'
          archivePath: '$(Build.SourcesDirectory)/build/iOSApp.xcarchive'
          exportPath: '$(Build.SourcesDirectory)/build/output'
          teamId: '$(TeamId)'
          exportTeamId: '$(ExportTeamId)'
          packageApp: true
          signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
          provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
          args: '-UseModernBuildSystem=0'
      
      - task: AppStoreRelease@1
        inputs:
          serviceEndpoint: '$(ServiceEndpoint)'
          appIdentifier: '$(AppIdentifier)'
          appType: 'iOS'
          releaseTrack: 'TestFlight'
          shouldSkipWaitingForProcessing: true
          shouldSkipSubmission: true

【问题讨论】:

    标签: azure azure-devops


    【解决方案1】:

    您可以检查embedded.mobileprovision 是否存在以及文件位置。从这个answer,该文件需要存在于文件夹的根目录中。如果不存在,可以在打包前使用复制文件任务将文件复制到根目录。

    - task: CopyFiles@2
            inputs:
                contents: '**/*.ipa'
                targetFolder: '$(build.artifactStagingDirectory)'
    - task: PublishBuildArtifacts@1
    - task: AppStoreRelease@1
        inputs:
            authType: 'UserAndPass'
            username: '$(user)'
            password: '$(pass)'
            appIdentifier: 'App Identifier'
            appType: 'iOS'
            ipaPath: '$(build.artifactStagingDirectory)/**/*.ipa'
            releaseTrack: 'TestFlight'
            teamId: 'Team ID'
            teamName: 'Team Name'
            fastlaneArguments: 'action increment_build_number'
    

    另外,这里有一个ticket,你可以参考同样的问题。

    【讨论】:

    • 我检查并发现 Embedded.mobileprovision 不存在
    • 我尝试将文件复制到文件夹的根目录仍然遇到同样的错误
    【解决方案2】:

    这可能是由于您的 ipa 未正确签名造成的。 signingOption 属性的默认值为nosign。如果您没有专门为 Xcode 的signingOption 赋值。你的ipa不会被签名。所以如果你的ipa需要签名。您需要将manualauto 分配给signingOption 属性。查看更多 Xcode 任务参数here

    - task: Xcode@5
      inputs:
        .....
        signingOption: 'manual'
        signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
        provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
    

    请查看示例here

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 2020-11-26
      • 2015-09-07
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 2020-11-21
      • 2020-08-05
      相关资源
      最近更新 更多