如何在 Azure Pipeline 中为 iOS 版本使用自动预配
Posted
技术标签:
【中文标题】如何在 Azure Pipeline 中为 iOS 版本使用自动预配【英文标题】:How to use automatic provisioning for iOS builds in Azure Pipeline 【发布时间】:2020-10-23 00:13:08 【问题描述】:我正在尝试为 ios 构建使用自动配置。在我的 Mac 上它可以正常工作,但是当我尝试在 Azure 管道上执行此操作时,我收到以下错误
error: There are no accounts registered with Xcode. Add your developer account to Xcode (in target 'XXX' from project 'XXXX')
error: No profiles for 'com.devhaus.ljdev' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.XXXX'. (in target 'XXXX' from project 'XXXX')
在我的 yaml 中,我只有成功运行的 InstallAppleCertificate
任务
- task: InstallAppleCertificate@2
inputs:
certSecureFile: $(p12File)
certPwd: $(p12Password)
- script: |
npx run ionic build
displayName: "build"
- script: |
npx ionic cordova platform add ios@6
displayName: "build for Apple"
# Didn't just do npx ionic cordova build ios here as there
# is a bug that will cause the build to hang.
- script: |
npx cordova build ios --device
displayName: "build for IOS"
【问题讨论】:
【参考方案1】:this thread 中提到自动签名仅适用于开发版本。您不能在 DevOps 管道中使用自动签名进行分发(临时、应用商店等)。
但是,您始终可以通过指定 codeSignIdentity 和 provisioningProfile 参数来手动为您的 ios 签名以构建命令。对于下面的示例命令。见科尔多瓦文档Signing an App
npx cordova build ios --device --codeSignIdentity="$(APPLE_CERTIFICATE_SIGNING_IDENTITY)" --provisioningProfile="$(APPLE_PROV_PROFILE_UUID)"
当您使用 Install Apple Certificate 和 Install Apple Provisioning Profile 任务在 azure devops 管道中下载证书和配置文件时。变量$(APPLE_CERTIFICATE_SIGNING_IDENTITY)
和$(APPLE_PROV_PROFILE_UUID)
由这些任务自动设置,允许您直接引用签名身份和配置文件UUID。请参阅 Microsoft 文档here。
在签名身份字段中,输入 $(APPLE_CERTIFICATE_SIGNING_IDENTITY)。此变量由您选择的证书的安装 Apple 证书任务自动设置。
在配置文件 UUID 字段中,输入 $(APPLE_PROV_PROFILE_UUID)。此变量由您选择的配置文件的安装 Apple 配置文件任务自动设置。
【讨论】:
以上是关于如何在 Azure Pipeline 中为 iOS 版本使用自动预配的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Azure Pipeline 上使用 Terraform 将文件上传到 Azure 存储?
如何从 Azure DevOps Pipeline 读取 Azure 文件共享文件