iOS - Azure DevOPS中的错误Xcode 10 - 配置配置文件任务的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - Azure DevOPS中的错误Xcode 10 - 配置配置文件任务的问题相关的知识,希望对你有一定的参考价值。
我遇到了一个针对Xcode ios应用程序的Azure DevOPS管道的问题。我从头开始创建了管道,它使用了一个yaml文件,我在其中定义了构建以及基于Microsoft官方文档的签名和配置。该构建使用XcodeVersion = 10与CocoaPods并实现签名和配置。我对预安装P12证书没有任何问题,构建从Secure File库中提取它并成功安装它。
给我一个问题的是配置文件。我必须在InstallAppleProvisioningProfile @ 1任务或Xcode任务中的ProvisioningProfileUuid配置中做错了,因为构建会在Xcode任务上引发以下错误:
❌错误:“注册”需要具有无线附件配置功能的配置文件。在项目编辑器中为“Release”构建配置选择配置文件。 (在目标'注册')
我已经尝试将InstallAppleProvisioningProfile @ 1任务的provProfileSecureFile设置设置为指向'.provisionprofile'和'.mobileprovision'文件,但我仍然看不到日志中没有执行任何命令。可以在本地基于“MyProvisioning_Profile.mobileprovision”构建,签名和配置应用程序,而不会出现任何问题。
pool:
vmImage: 'macOS-10.13'
variables:
scheme: ''
sdk: 'iphoneos'
configuration: 'Release'
steps:
# Install an Apple certificate required to build on a macOS agent
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'MyProductionCert.p12'
certPwd: $(P12password)
# Install an Apple provisioning profile required to build on a macOS agent
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'Secure Files'
provProfileSecureFile: 'MyProvisioning_Profile.provisionprofile'
removeProfile: false
- task: Xcode@5
inputs:
sdk: '$(sdk)'
configuration: '$(configuration)'
xcodeVersion: '10'
exportPath: '$(agent.buildDirectory)/output/$(sdk)/$(configuration)'
packageApp: false
xcWorkspacePath: 'Register.xcworkspace'
scheme: 'Register'
signingOption: 'manual'
signingIdentity: $(APPLE_CERTIFICATE_SIGNING_IDENTITY)
provisioningProfileUuid: $(APPLE_PROV_PROFILE_UUID)
我希望看到至少一个命令正在从InstallAppleProvisioningProfile @ 1任务执行,但我看到的是2个成功但日志中的空任务:1。作业前:InstallAppleProvisioningProfile 2. InstallAppleProvisioningProfile
然后,Azure DevOPS Xcode任务失败并显示以下错误:
2019-02-08T01:35:05.1819530Z [command]/usr/bin/xcodebuild -sdk iphoneos -configuration Release -workspace /Users/vsts/agent/2.146.0/work/1/s/Register.xcworkspace -scheme Register build CODE_SIGN_STYLE=Manual CODE_SIGN_IDENTITY=iPhone Distribution: [MyCompany LLC] ([MyTeamID]) PROVISIONING_PROFILE= PROVISIONING_PROFILE_SPECIFIER= | /usr/local/lib/ruby/gems/2.6.0/bin/xcpretty -r junit --no-color
2019-02-08T01:35:10.6519500Z ❌ error: "Register" requires a provisioning profile with the Wireless Accessory Configuration feature. Select a provisioning profile for the "Release" build configuration in the project editor. (in target 'Register')
2019-02-08T01:35:10.6560090Z ** BUILD FAILED **
有没有人使用Azure管道之前已经看到过这个问题?我该如何解决?
您需要使用配置文件文件的GUID(与签名证书相同),而不是其文件名。
如果您在Azure DevOps(管道>库>安全文件> {您的配置文件文件})中查看文件详细信息,则可以从secureFileId查询字符串参数中获取URL中的GUID。
使用InstallAppleProvisioningProfile@1
任务运行管道时,可以找到配置文件GUID。 (根据我的经验,来自SecureFiles的URL中的GUID是来自Azure管道的GUID,与配置文件GUID无关。
如果您已将配置文件上载到管道的安全文件,并在管道中包含以下内容:
- task: InstallAppleProvisioningProfile@1
displayName: 'Install Ad Hoc Apple Provisioning Profile'
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: 'SomeProfile.mobileprovision'
您将在管道的日志中看到类似的内容:
sr/libexec/PlistBuddy -c Print UUID _xcodetasktmp.plist
12345678-abcd-1234-abcd-1234567890ab
sr/libexec/PlistBuddy -c Print Name _xcodetasktmp.plist
Company Profile iOS Distribution or Ad-Hoc
从那里复制配置文件GUID,更新您的管道并再试一次。
我对XCode任务的配置如下:
- task: Xcode@5
displayName: 'Build React Native for iOS'
inputs:
actions: 'build'
scheme: 'AwesomeAppNative'
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: './ios/AwesomeAppNative.xcworkspace'
xcodeVersion: '10' # Options: 8, 9, 10, default, specifyPath
args: '-UseModernBuildSystem=N' # See https://github.com/facebook/react-native/issues/20492
useXcpretty: 'false'
signingOption: 'manual' # Options: nosign, default, manual, auto
signingIdentity: 'Certificate identity name (<TEAMID>)'
provisioningProfileUuid: 12345678-abcd-1234-abcd-1234567890ab # Ad Hoc
# provisioningProfileName: DONT PUT THE NAME HERE IT WOULD TAKE PRECENDENCE
# teamId: <TEAMIDFromCertificat> # for signingOption: auto
packageApp: 'true' # Package the app
exportOptions: 'auto'
以上是关于iOS - Azure DevOPS中的错误Xcode 10 - 配置配置文件任务的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 yaml 中处理 Azure DevOps 管道中的错误?
APIM:从 Azure DevOps CD 管道中的 Azure Blob 存储中检索策略 XML 失败,如收到错误,如提供的链接格式错误
Azure DevOps 发布 Api 400 错误请求错误