React Native项目GitLab自动化中Fastlane找不到get_certificates问题求助
我有一个在GitLab中实现自动化构建的React Native应用,此前运行一切正常,但从昨天开始出现如下错误:
Could not find action or lane 'get_certificates'. Check out the README for more details
+------+--------------------------+-------------+
| fastlane summary |
+------+--------------------------+-------------+
| Step | Action | Time (in s) |
+------+--------------------------+-------------+
| 1 | default_platform | 0 |
| 2 | unlock_keychain | 0 |
| 3 | increment_version_number | 0 |
| 4 | increment_build_number | 0 |
+------+--------------------------+-------------+
对应的Fastfile代码:
require 'dotenv' Dotenv load "\.env" default_platform(:ios) platform :ios do desc "Push a new beta build to TestFlight" lane :build_develop do $appBundleIdentifierDev = $identifier $workspaceName = $workspace $ipaFilename = $filename $appleUsername = $username $url_repo = $repo unlock_keychain( path: "login.keychain-db", password: ENV['KEYCHAIN_PASS'] ) increment_version_number( version_number: ENV['APP_VERSION_NAME'] ) increment_build_number( build_number: ENV['APP_VERSION_CODE'] ) get_certificates( team_id: $teamid ) gym( export_method: 'app-store', scheme: $scheme, configuration: $configuration, clean: true, include_bitcode: false, workspace: $workspaceName, output_name: $ipaFilename, xcargs: "ARCHIVE=YES", output_directory: "build", export_xcargs: "-allowProvisioningUpdates", ) end end
近期未修改任何代码,但应用突然无法正常运行,请问可能是什么原因导致的?
- Fastlane依赖组件丢失:
get_certificates属于fastlane的cert工具组件,可能GitLab Runner环境中的该组件被意外卸载,或是依赖更新时未同步安装。可以在构建脚本中添加fastlane install_plugins,或执行fastlane cert --help验证组件是否存在。 - Fastlane版本自动更新引发兼容问题:如果构建环境未固定fastlane版本,可能自动更新到了新版本,而新版本中
get_certificates的调用逻辑或归属组件发生了变更。建议在项目中添加Fastfile.lock锁定版本,或指定特定版本安装,比如gem install fastlane -v <你之前使用的版本号>。 - GitLab Runner环境配置变更:Runner的镜像被更新、系统依赖被修改,或是密钥链权限配置变动,都可能导致fastlane无法找到对应动作。检查Runner的配置历史,或重新初始化fastlane运行环境。
- 环境加载异常间接影响:虽然你没修改代码,但
.env文件可能因环境同步问题出现加载失败,或是$teamid等变量未正确注入。可以先注释get_certificates代码段,验证其他动作是否正常执行,再针对性排查该动作的依赖配置。
内容的提问来源于stack exchange,提问作者Eduardo Martínez

