在本机应用程序中访问package.json版本和构建变量的最佳方法是什么?

时间:2017-07-06 04:04:01

标签: ios xcode react-native code-push react-native-code-push

我正在构建一个本机iOS应用程序,并希望:

1)在应用程序本身的package.json文件中显示应用程序的当前版本。

具体来说:既然我已经实施了codepush,我想在“设置”页面上显示当前的应用版本,以便应用用户可以判断他们的应用是否已升级。我当前在package.json文件中设置了版本号,并使用this shell脚本将其传播到xcode项目。如果有更好的方法来管理/更新项目版本号,请告诉我们!

2)根据xcode中的构建变量执行某些.js代码。

我在xcode中有三个构建配置(调试,暂存,发布)设置,我想指定updateDialog: true标志,仅针对Staging构建进行codepush。我还想在设置页面上显示这是一个Debug,Staging还是Release build。

完成这些事情的最佳方式是什么?

是否有最佳做法来设置/同步项目的版本号并在应用内访问它,或者这些东西通常只是手工编码?

Fwiw,this答案是相关的,但没有说明xcode定义的具体环境变量会对我有所帮助,并且不会对版本问题说话。

1 个答案:

答案 0 :(得分:1)

async function getAppVersion() {
  const {appVersion} = await codePush.getConfiguration();

  const meta = await codePush.getUpdateMetadata();
  if (!meta) return {appVersion};

  const {label} = meta;
  return {appVersion, label};
}

label将包含codepush发布标签(默认为v1,v2 ......)

对于env变量react-native-config也许可以帮到你。我使用fastlaneincrement_build_number(iOS)以及手工制作的fastlane代码(Android)来自动增加内部版本号。说实话,我自己在最佳实践搜索中。