[英]Azure Devops Pipelines for ionic iOS - Error of provisioning profile. Select a provisioning profile in the Signing & Capabilities editor
我是 Azure Devops 管道的新手,并且正在为离子项目开发管道以构建 android 和 iOS 构建。
对于 android,我已经成功了,apk 我也按照预期工作正常。 但是对于 iOS,我在过去 4 天被卡住了,无法继续。 下面是我的管道 yaml 文件。 虽然,我已经安装了配置文件证书,但仍然面临如下错误:错误:“APP”需要配置文件。 Select 签名和功能编辑器中的配置文件。 (在项目“APP”的目标“APP”中)
请建议如何解决此问题以生成 iOS build/ipa。
注意:现在我正在为 android 和 iOS 使用相同的 yaml 文件,请建议是否是标准方法。
YAML 管道文件:
trigger:
- main
pool:
vmImage: 'macos-latest'
variables:
projectName: 'APP'
#ios variables
certSecureFileName: 'Certificates.p12'
P12Password: 'PQRXYZ'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
## provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
provisioningProfile: 'APP_Distribution.mobileprovision'
sdkOption: 'iphoneos'
configurationOption: 'Debug'
workspaceName: '$(Build.SourcesDirectory)/platforms/ios/APP.xcworkspace'
schemeName: 'APP'
ArchivePath: ~/output/APP.xcarchive
ExportIpaPath: ~/output/APP.ipa
steps:
- script: sudo npm install -g @ionic/cli
displayName: 'Install Ionic CLI'
- task: Npm@1
inputs:
workingDir: '$(Build.SourcesDirectory)'
command: install
displayName: 'NPM Install'
- task: InstallAppleCertificate@2
displayName: 'Install P12 Certificates'
inputs:
certSecureFile: '$(certSecureFileName)'
certPwd: '$(P12Password)'
signingIdentity: '$(signingIdentity)'
deleteCert: true
- task: InstallAppleProvisioningProfile@1
displayName: 'Install App provisioning profile'
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '$(provisioningProfile)'
removeProfile: true
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
sudo npm i -g cordova
ionic build
cd $(Build.SourcesDirectory)
ionic cordova build ios --prod --release --buildConfig=build.json
cd platforms/ios/
xcodebuild clean archive -workspace APP.xcworkspace -scheme APP -archivePath build/APP.xcarchive
xcodebuild -exportArchive -archivePath build/APP.xcarchive -exportPath build/export -exportOptionsPlist $(Build.SourcesDirectory)/exportOptions.plist
displayName: "starting iOS build"
- task: CopyFiles@2
inputs:
## SourceFolder: '$(Build.SourcesDirectory)'
contents: '**/*.ipa'
TargetFolder: '$(build.artifactStagingDirectory)'
overWrite: true
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(build.artifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
错误日志 2021 年 2 月 22 日:
export PRODUCT_TYPE=com.apple.product-type.application
2021-02-22T07:00:45.1045780Z builtin-validationUtility /Users/runner/work/1/s/platforms/ios/build/emulator/APP.app
2021-02-22T07:00:45.1046100Z
2021-02-22T07:00:45.1192290Z ** BUILD SUCCEEDED **
2021-02-22T07:00:45.1193110Z
2021-02-22T07:00:46.0475340Z Command line invocation:
2021-02-22T07:00:46.0480470Z /Applications/Xcode_12.3.app/Contents/Developer/usr/bin/xcodebuild clean archive -workspace APP.xcworkspace -scheme APP -archivePath build/APP.xcarchive
2021-02-22T07:00:46.0481320Z
2021-02-22T07:00:46.0482090Z User defaults from command line:
2021-02-22T07:00:46.0482950Z IDEArchivePathOverride = /Users/runner/work/1/s/platforms/ios/build/APP.xcarchive
2021-02-22T07:00:46.0483570Z
2021-02-22T07:00:46.9814740Z note: Using new build system
2021-02-22T07:00:46.9815300Z note: Building targets in parallel
2021-02-22T07:00:47.0653590Z
2021-02-22T07:00:47.0656080Z ** CLEAN SUCCEEDED **
2021-02-22T07:00:47.0656650Z
2021-02-22T07:00:47.0780320Z note: Using new build system
2021-02-22T07:00:47.0781010Z note: Building targets in parallel
2021-02-22T07:00:47.0794200Z note: Planning build
2021-02-22T07:00:48.9307720Z note: Constructing build description
2021-02-22T07:00:49.1276620Z error: "APP" requires a provisioning profile. Select a provisioning profile in the Signing & Capabilities editor. (in target 'APP' from project 'APP')
2021-02-22T07:00:49.1290480Z
2021-02-22T07:00:49.1293730Z ** ARCHIVE FAILED **
2021-02-22T07:00:49.1316830Z
2021-02-22T07:00:49.9439170Z error: archive not found at path '/Users/runner/work/1/s/platforms/ios/build/APP.xcarchive'
2021-02-22T07:00:49.9439810Z ** EXPORT FAILED **
2021-02-22T07:00:49.9439970Z
2021-02-22T07:00:50.0313310Z ##[debug]$LASTEXITCODE: 65
2021-02-22T07:00:50.0521660Z ##[debug]Exit code 1 received from tool '/usr/local/bin/pwsh'
2021-02-22T07:00:50.0528430Z ##[debug]STDIO streams have closed for tool '/usr/local/bin/pwsh'
2021-02-22T07:00:50.0543440Z ##[debug]task result: Failed
2021-02-22T07:00:50.0576690Z ##[error]PowerShell exited with code '1'.
2021-02-22T07:00:50.0589460Z ##[debug]Processed: ##vso[task.issue type=error;]PowerShell exited with code '1'.
2021-02-22T07:00:50.0591720Z ##[debug]Processed: ##vso[task.complete result=Failed;]PowerShell exited with code '1'.
2021-02-22T07:00:50.0594820Z ##[section]Finishing: starting iOS build
Xcode 任务 2021 年 2 月 23 日
- task: Xcode@5
displayName: 'Xcode archive'
inputs:
actions: archive
xcWorkspacePath: '$(Build.SourcesDirectory)/platforms/ios/APP.xcworkspace'
archivePath: 'APP.xcarchive'
scheme: APP
packageApp: true
destinationTypeOption: devices
exportOptions: plist
exportOptionsPlist: '$(Build.SourcesDirectory)/exportOptions.plist'
exportPath: '$(agent.buildDirectory)/platforms/ios/output/iphoneos/Release'
signingOption: manual
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
收到的错误是:
2021-02-23T05:26:30.8370720Z ##[error]Error: The Xcode workspace was specified, but it does not exist or is not a directory: /Users/runner/work/1/s/platforms/ios/APP.xcworkspace
使用Ionic
构建时,使用--buildConfig
标志来使用构建配置。
您可以为每个构建类型( debug
或release
)配置每个平台。
您可以指定用于ios
的供应配置文件,或用于android
的密钥库。
由于您的问题涉及ios
,因此我不会显示android
配置。
在项目的根目录下创建一个build.json
文件,内容如下:
{
"ios": {
"release": {
"provisioningProfile": "Your provisioning profile filename without .mobileprovision",
"codeSignIdentity": "Your code sign identity name",
"developmentTeam": "Your development team ID",
"packageType": "app-store",
"buildFlag": [
"-UseModernBuildSystem=0",
"-destination generic/platform=iOS",
"-sdk iphoneos"
]
},
"debug": {
...
}
}
}
配置文件应该位于项目的根目录下,紧挨着 build.json。
buildFlags
是可选的。
我没有尝试使用provisioningProfile
的路径,也不包括.mobileprovision
扩展名,但它可能也可以。
然后使用以下命令构建:
ionic cordova build ios --prod --release --buildConfig=build.json
如果不使用--release
标志,它将默认为--debug
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.