我正在使用Ionic和Capacitor开发一个应用程序,并且生成的构建使用Ionic的新AppFlow服务,所以我不会在本地构建它们。
那么我该如何更新iOS和Android版本号呢?我已经尝试更新plist和config.xml文件,但所有更新都导致版本号为“1.0”,无论我做什么。
我正在使用Ionic和Capacitor开发一个应用程序,并且生成的构建使用Ionic的新AppFlow服务,所以我不会在本地构建它们。
那么我该如何更新iOS和Android版本号呢?我已经尝试更新plist和config.xml文件,但所有更新都导致版本号为“1.0”,无论我做什么。
所以,Capacitor很棒!Android和iOS的配置实际上都已经提交到源代码控制中。要更新版本号,只需更新以下文件:
android / app / build.gradle
(您要查找 versionName
变量)ios/App/App/Info.plist
(您要查找 CFBundleShortVersionString
键)android
或 ios
)纳入 Git 控制。这样可以更好地控制每个平台的文件,因为这些目录不会在构建时重新生成(使用 Cordova 会在 cordova prepare <platform>
上重新生成这些目录)。 - Eric Gopak/android
和/ios
文件夹到仓库是 Capacitor 中困扰我的一件事情。它们既是源代码,又是构件。对于某些内容,它们会复制信息,而对于其他内容,它们则是唯一的真相来源。这是一个非常不优雅的解决方案 :-| - Fredcapacitor-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
我已经制作了一个自定义版本的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而制作的。