使用TravisCI构建Expo React-Native Android应用的问题咨询
解决TravisCI自动等待Expo Android构建完成的问题
刚好我之前也碰到过一模一样的情况——用TravisCI触发Expo构建后,控制台卡在Waiting for build to complete. You can press Ctrl+C to exit.,没法自动走完流程。其实问题出在exp build:android的默认行为上,它默认是交互式模式,需要手动干预,但TraCI是自动化环境,肯定没法做这个操作。
核心解决方案:添加--wait参数
你只需要修改.travis.yml里的构建命令,给exp build:android加上--wait参数,就能让TraCI自动等待构建完成,不用手动退出。
修改后的完整.travis.yml配置
os: linux dist: trusty cache: directories: - node_modules group: stable script: - npm i -g expo-cli # 建议用最新的expo-cli替代旧的exp工具 - exp login -u $EXPO_USERNAME -p $EXPO_PASSWORD # 用环境变量存账号密码更安全 - npm install - npm test - exp build:android --wait node_js: stable language: node_js
关键细节说明
--wait参数的作用:让exp build:android命令一直阻塞运行,直到Expo的构建流程完全结束(不管成功还是失败),这样TraCI就能捕获到最终的构建结果,不会卡在等待提示。- 替换
exp为expo-cli:旧的exp工具已经不再维护,换成官方推荐的expo-cli能避免很多版本兼容问题。 - 环境变量存账号密码:硬编码账号密码在配置文件里非常不安全,你可以在TraCI的项目设置中添加
EXPO_USERNAME和EXPO_PASSWORD两个环境变量,这样命令里用变量引用就好,既安全又方便修改。
额外优化:避免超时终止
如果你的Expo构建时间比较长,TraCI可能会因为默认超时时间不够而终止流程。可以在配置里添加超时设置,延长允许的构建时长:
jobs: include: - os: linux dist: trusty timeout: 60m # 根据你的实际构建时长调整,比如设为60分钟
内容的提问来源于stack exchange,提问作者Freshchris
相关产品推荐
相关产品推荐

