我收到了一个应用程序,我们为其他人加了白标签。 这意味着我们通过这些应用程序共享相同的功能,但是每个应用程序中都有一些特定的设计元素(主要是颜色和图片)。
我正在寻找最简单,最好的方法来为我的Expo React Native代码库标识内置的应用程序。
我的计划是将所有内容存储在相同的javascript代码库中,并通过应用程序名称加载正确的配置文件。
在这种情况下,我将在商店中获得一些应用程序:
它们都将加载相同的博览会app: exp.host/@comp/colours
这个博览会的应用程序应该在BlueApp中将背景设置为蓝色,在RedApp中为红色。
!我不想拆离我的博览会应用程序,我仍然想用博览会来构建我的应用程序。
答案 0 :(得分:0)
我不确定我是否正确理解您的意思,但我有点想办法。
我不知道这是否是最好的方法。
您可以使用发布渠道来创建同一代码的3个不同版本。比起您可以使用Expo.Constants.manifest.releaseChannel
加载频道的配置。
有关更多信息,https://docs.expo.io/versions/latest/distribution/release-channels
答案 1 :(得分:0)
通过执行expo start --config=some-app.json
可以使用其他配置文件。我遇到的一个问题是,仍需要在特定位置使用某些资产(例如asset / images / icon.png)。
我想到的解决方案是每次启动项目时通过bash脚本切换项目。这样,您运行的开发也将发布,而无需大惊小怪expo可能支持或可能不支持的配置参数。
因此,在package.json中,您可以运行如下所示的命令:
./switch project1 && expo start
bash脚本会将src目录中的所有资产(包括app.json)同步到其预期路径。目录结构如下所示:
src
- project1
- app.json
- assets
- project2
- app.json
- assets
和脚本:
#!/bin/bash
if [ $1 == "swaggr" ] || [ $1 == "chatsera" ]
then
echo "switching to $1"
unlink app.json
cp ./src/$1/app.json ./app.json
rsync -rvz ./src/$1/assets/ ./assets/
else
echo "could not switch project. $1 is invalid"
fi
如果使用这种方法,我可能会在app.json和.gitignore中添加所有资产。