我正在编写一个应用程序create-react-native-app
(CRNA) 为一家公司。最终,它可能会投入生产,但出于研究原因,我需要一个可以轻松部署到同事手机(Android 和 iOS)的工作原型。
由于知识产权的原因,我不得在任何外部托管平台(Google Play、App Store、Expo 托管等)上发布内容。不过,我确实可以访问可以在公司内部网外部进行通信的内部服务器。
鉴于此,我想知道是否可以运行由npm start
以这样的方式接受外部连接(即通过端口转发、代理或 VPN)。
密码安全是理想的选择,但如果这是唯一的选择,那么保密也可以。 Ofc 的答案属于网络安全范畴。
可以通过这种方式运行开发服务器。您可能想使用Expo CLI https://docs.expo.io/versions/latest/guides/exp-cli.html启动服务器,因为它允许调整更多选项(无论如何,它启动与 CRNA 相同的 XDL 服务器)。
对于内部测试,您可以使用以下命令启动服务器exp start --no-dev --minify --offline --non-interactive
.
-
--no-dev
and --minify
告诉服务器提供缩小的生产包而不是开发包。
-
--offline
允许服务器在不使用 Expo 帐户登录的情况下运行(如果您在服务器上运行它,则很有用)
-
--non-interactive
如果需要输入,则使命令失败。
您需要在服务器上有两个可公开访问的端口:一个用于 XDL 服务器,另一个用于 Metro 捆绑程序。您可以通过创建一个来设置XDL端口.exprc
项目目录中的文件包含以下内容:
{ "manifestPort": <XDL server port> }
您可以通过将其添加到您的app.json
file:
{"expo": {"packagerOpts": { "port": <Metro port> }}}
使用代理
如果你想在服务器前面运行代理(例如NGINX)来控制对其的访问或启用HTTPS,你可以使用这些环境变量来告诉exp
关于您的代理的可公开访问的 URL:
export EXPO_MANIFEST_PROXY_URL="https://your-public-url-for-xdl.example.com"
export EXPO_PACKAGER_PROXY_URL="https://your-public-url-for-metro.example.com"
然后,Expo 客户端可以从以下位置打开该应用程序:exp://your-public-url-for-xdl.example.com:443
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)