已 eject 的 CRNA 创建 Expo 应用能否使用 exp publish?
Eject后CRNA应用的
exp publish与Expo Client支持说明 嘿,这个问题问到点子上了,我给你捋清楚情况:
- 明确结论:当你执行
yarn eject把CRNA应用转为原生项目后,就没法再用exp publish功能,也不能继续在Expo Client里运行你的应用了。 - 背后的原因:
- 未eject的CRNA项目是依托Expo托管环境运行的,
exp publish本质是把你的代码上传到Expo的服务器,让Expo Client能远程拉取并加载运行。 - 而eject操作会彻底把项目转换成纯原生的React Native工程——iOS变成Xcode项目,Android变成Android Studio项目。这时候你的项目完全脱离了Expo的托管体系,不再依赖Expo的基础设施,自然就没法用Expo的发布服务,Expo Client也识别不了这种原生工程的代码结构。
- 未eject的CRNA项目是依托Expo托管环境运行的,
- 给你的建议:
- 如果还想保留Expo的发布和Client运行能力,尽量不要eject。大部分需要的原生模块,Expo都提供了预配置的版本,用
expo install就能添加,不用手动配置原生代码。 - 要是已经eject了,想回到Expo环境的话,最好的办法是用之前未eject的代码备份重新构建;要是没备份,尝试把原生项目重新接入Expo会非常麻烦,不推荐。
- 对于已经eject的原生项目,你得用原生的方式来运行和发布:本地运行用
react-native run-ios或react-native run-android;发布的话,iOS通过Xcode打包上传到App Store,Android通过Android Studio打包上传到Google Play。
- 如果还想保留Expo的发布和Client运行能力,尽量不要eject。大部分需要的原生模块,Expo都提供了预配置的版本,用
内容的提问来源于stack exchange,提问作者dippy tippy
相关产品推荐
相关产品推荐

