适用于iOS的Azure DevOps管道- Fastlane匹配克隆问题

rlcwz9us  于 2023-04-12  发布在  iOS
关注(0)|答案(2)|浏览(101)

我正在尝试使用Fastlane将iOS管道实现到Azure DevOps。我已经在我的项目中使用了Fastlane,并成功部署了beta和试点版本。我的问题是,当我在Azure管道上运行下面的脚本时,它无法传递match克隆部分。因此,无法获取证书,配置文件等。

备注:iOS_Certificates repo与project repo不同。

我得到超时错误后1小时。我认为这是关于身份验证到

pool:
  vmImage: 'macos-latest'

steps:
- script: |
    fastlane match development --clone_branch_directly --verbose
    fastlane beta
  displayName: 'Build iOS'

MatchFile中的相关代码:

git_url("git@ssh.dev.azure.com:v3/myteam/myproject/certificates_repo")
storage_mode("git")
type("development")

编辑:我尝试在Azure DevOps(不是GitHub或其他地方)内的同一个项目中获取一个仓库。我得到超时错误,所以即使在match命令上运行--verbose也没有具体的错误。

ojsjcaue

ojsjcaue1#

根据您的信息,您正在使用SSH密钥作为身份验证方法。
由于您使用macos-latest(Microsoft托管代理)作为生成代理,因此目标生成计算机上将不存在ssh密钥的私钥。
所以它不能认证,卡住了。就像你说的,它会运行60分钟,然后取消。我也可以重现这个问题。
您可以尝试创建自托管代理并在其上运行生成。
在这种情况下,您需要确保私钥存在于机器上,然后您可以通过ssh密钥进行身份验证。
另一方面,您可以使用用户名和密码进行身份验证。
例如(匹配文件):

git_url "https://organizationname@dev.azure.com/organizationname/projectname/_git/reponame" 
type "development" 
app_identifier 'xxx'
username "member@companyname.com" #This will be the git username
ENV["FASTLANE_PASSWORD"] = "abcdefgh" #Password to access git repo.
ENV["MATCH_PASSWORD"] = "password" #Password for the .p12 files saved in git repo.
wnvonmuf

wnvonmuf2#

您可以通过resources块设置对第二个存储库的访问:https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#repository-resource-definition
然后使用System.AccessToken作为repo的访问令牌,通过HTTPS访问它:https://[AZURE_TOKEN]@dev.azure.com/[org]/[project]/_git/[repo]

相关问题