最近,我被任命负责我们的 ios 和 android 应用程序。在之前维护该应用程序的人员的指导下,构建和部署正在成功运行。我们使用了sourcetree,有一个主分支,从该分支中拉出,并在每个版本前面加上prod-、stage-、demo-、qa-,这些版本由我们的fastfile选取并在必要时应用。我们用于构建的技术是 Codemagic。当我在监督下执行此操作时,它运行成功并且不会弹出任何错误。
然后,当我的同事离开后,该应用程序开始部署,但产生了不利影响。这是我的问题出现的地方: 我会创建一个分支(与 ios 和 android 相关)让我们说 demo-1.59.x 从这里我会将此分支推送到 bitbucket。我通过 oauth 将我的 bitbucket 连接到 codemagic。起初它从 ios 开始,我认为这是因为匹配文件的 giturl 指向他用来保存证书的私人存储库之一,android 工作正常,我将 git_url 切换到从应用程序商店生成的新证书,但没有工作。长话短说,当我收到 403 错误但测试和产品环境已部署到 appstore 和 google play 时,却说:
Exit status of command 'git push origin refs/tags/demo-1.59.1.157' was 128 instead of 0.
remote: Your credentials lack one or more required privilege scopes.
fatal: unable to access 'our_repo': The requested URL returned error: 403
我已经复习了很多。我保证。我从上周五(8/1/24)开始,虽然不好意思承认我一直在审查所有资源,试图上传这个没有错误。 Android 再次工作正常,没有返回 403,但现在却返回了。
重要的问题,codemagic 或 fastlane 在这里做什么?为什么它再次尝试与 bitbucket 一起工作?我不知道,我也一直在浏览 fastlane 文档。如果您发现或知道请告诉我。
在ios中生成新证书 生成新的 rsa ssh 密钥也 openssl 尝试使用 ssh 和 https 删除了应用程序,然后尝试通过 Codemagic 中的“添加应用程序”再次添加 断开我在 Codemagic 上的帐户与 bitbucket 的连接,然后再次连接。 我也一直在尝试 Claude 和 ChatGPT,但我认为我错过了一些在 Fastlane 和 Codemagic 方面有经验的人可以帮助我理解的东西。 我可以推/拉/合并。我总是将分支合并到 master 中,也总是从 master 中创建分支。
编辑我知道它正在尝试推送标签,但是使用这些标签的目的是什么。我们使用 webview 来部署我们的移动应用程序,所有内容都通过 FE/BE 更新。
您的 fastlane 脚本正在尝试运行
git push
命令。当您通过 OAuth 注册或将存储库添加到 Codemagic 时,它始终具有只读访问权限,这从错误消息中可以清楚地看出
remote: Your credentials lack one or more required privilege scopes.
我建议检查 Android/生产工作流程,以找出它们执行的额外身份验证步骤。还值得检查环境变量,因为它们可以提供读写凭据。我希望它有帮助。