如何在使用Ionic和Capacitor的情况下更新iOS和Android应用程序版本?

30

我正在使用Ionic和Capacitor开发一个应用程序,并且生成的构建使用Ionic的新AppFlow服务,所以我不会在本地构建它们。

那么我该如何更新iOS和Android版本号呢?我已经尝试更新plist和config.xml文件,但所有更新都导致版本号为“1.0”,无论我做什么。


1
寻找相同的东西。根据 https://github.com/ionic-team/capacitor/issues/840 的描述,似乎不可能实现。 - cuddlemeister
哦,我实际上找到了一种方法来做这个,等一下我会发布答案。 - Bryant James
4个回答

91

所以,Capacitor很棒!Android和iOS的配置实际上都已经提交到源代码控制中。要更新版本号,只需更新以下文件:

  • Android-android / app / build.gradle(您要查找 versionName 变量)
  • iOS-ios/App/App/Info.plist(您要查找 CFBundleShortVersionString 键)

3
感谢@Bryant!那么iOS/Android文件夹应该提交到git吗?我目前将这些文件夹作为我的.gitignore的一部分。如果我包括这些目录,我只是担心可能会遇到问题 - 更不用说膨胀存储库大小了?谢谢! - ustad
11
这不是好的建议。你应该将它包含在你的仓库中。不要过于担心你的仓库大小,毕竟那才是重点。更重要的是,如果你以后为你的应用编写原生代码或做出任何原生更改,如果没有提交,这些都会丢失。 - eDriven_Levar
10
与 Cordova 相比,Capacitor 实际上鼓励将平台特定的文件夹(例如 androidios)纳入 Git 控制。这样可以更好地控制每个平台的文件,因为这些目录不会在构建时重新生成(使用 Cordova 会在 cordova prepare <platform> 上重新生成这些目录)。 - Eric Gopak
6
有没有一种方法可以从 package.json 文件中获取值,设置 Android 和 iOS 版本(包括版本名称和代码)? - Carlos.V
3
提交/android/ios文件夹到仓库是 Capacitor 中困扰我的一件事情。它们既是源代码,又是构件。对于某些内容,它们会复制信息,而对于其他内容,它们则是唯一的真相来源。这是一个非常不优雅的解决方案 :-| - Fred
显示剩余4条评论

4
在Android Studio 4.2.1中,我们可以在“文件”>“项目结构”>“模块”>“默认配置”中设置版本值。

enter image description here


2
所以,Capacitor很棒!Android和iOS的配置实际上已经提交到源代码控制中。要更新版本号,只需更新以下文件:
- Android - `android/app/build.gradle`(您要查找的是`versionName`变量) - iOS - `ios/App/App/Info.plist`(您要查找的是`CFBundleShortVersionString`键) Bryant James的答案是正确的,但是如果您想在一个命令中更改这些文件的版本号和构建号,有一个名为capacitor-set-version的npm包。
它非常简单易用:-
USAGE
  $ capacitor-set-version <project-root-dir> -v <version> -b <build-no> --json

ARGUMENTS
  DIR  Capacitor project root directory

OPTIONS
  -b, --build=10       App build number (Integer)
  -v, --version=x.x.x  App version
  --json               Print errors and result as JSON
  -h, --help           Show help

示例:

# Set version to 1.2.3 and build number to 10 on current folder.
capacitor-set-version -v 1.2.3 -b 10

# Set version of project on folder ./my-app
capacitor-set-version -v 1.2.3 -b 10 ./my-app

# Set android only version and build number
capacitor-set-version set:android -v 1.2.3-rc1 -b 1546 ./my-app

# Set iOS version only
capacitor-set-version set:ios -v 1.2.3 -b 10 ./my-app

0

我已经制作了一个自定义版本的standar-version包,用于在每次提交到主分支后更新package.json、IOS(./ios/App/App.xcodeproj/project.pbxproj)和Android (./android/app/build.gradle)文件。你可以在这里检查它: https://github.com/Cap-go/capacitor-standard-version 在文档中,你可以找到在GitHub Action中使用的示例。

这个工具是为开源的Appflow替代品capacitor-updater而制作的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接