GitHub Actions执行Fastlane时目录识别失败及平台适配问题
解决GitHub Actions + Fastlane部署Ionic Capacitor到Google Play的两个核心问题
问题1:Fastlane提示找不到当前目录的fastlane文件夹
明明前置步骤已确认fastlane目录(含Appfile、Matchfile、Fastfile)存在,却依然报错?按以下方案排查:
- 切换到正确工作目录:Ionic Capacitor的Android项目默认在
android子目录下,fastlane文件夹也位于此处。不要直接在仓库根目录执行fastlane命令,需先进入android目录。示例GitHub Actions步骤:- name: Build & deploy Android release working-directory: ./android run: bundle exec fastlane [你的lane名称] - 校验目录路径正确性:在确认文件存在的前置步骤中,用具体路径检查,比如执行
ls -la android/fastlane,确保输出能看到所有必要文件,避免拼写错误或层级混淆。 - 确认checkout完整性:如果使用
actions/checkout动作,不要指定path参数导致仓库被检出到非根目录,也不要添加sparse-checkout参数遗漏android子目录。
问题2:bundle平台不兼容(x64-mingw-ucrt vs x86_64-linux)
此前添加平台到lockfile仍未解决?试试这些方案:
- 不提交本地生成的Gemfile.lock:本地Windows环境生成的lockfile仅包含x64-mingw-ucrt平台,与GitHub Actions的Linux环境不兼容。可将Gemfile.lock加入
.gitignore,或在工作流中先删除再重新安装依赖:- name: Install Ruby dependencies working-directory: ./android run: | rm -f Gemfile.lock bundle install --jobs 4 --retry 3 - 强制在工作流中添加Linux平台:若需要保留lockfile,在执行bundle install前先添加Linux平台:
- name: Fix bundle platform compatibility working-directory: ./android run: bundle lock --add-platform x86_64-linux - 统一Ruby版本:使用
ruby/setup-ruby动作指定与本地兼容的Ruby版本,同时开启bundler缓存提升速度:- name: Setup Ruby environment uses: ruby/setup-ruby@v1 with: ruby-version: '3.2.2' # 替换为你本地使用的Ruby版本 bundler-cache: true working-directory: ./android
内容的提问来源于stack exchange,提问作者Daniel Gustafsson
相关产品推荐
相关产品推荐

