我正在创建发行版构建,直接从钛工作室上传到iTunes连接上,用于苹果试飞前的测试。我目前的应用版本是1.1.1,版本号由钛工作室自动设置为1.1.1。
在Xcode上,大多数开发人员通常将预发布的构建号(CFBundleVersion)保持为Integer,在上传到iTunes之前每次增加一个非常方便。这是不可能的!
在tiapp.xml中,我设置了
<ios>
<plist>
<dict>
<key>CFBundleShortVersionString</key>
<string>1.1.1</string>
<key>CFBundleVersion</key>
<string>10</string>
</dict>
</plist>
</ios>
在钛工作室运行后,生成的info.plist在build文件夹下变成
<ios>
<plist>
<dict>
<key>CFBundleShortVersionString</key>
<string>1.1.1</string>
<key>CFBundleVersion</key>
<string>1.1.1</string>
</dict>
</plist>
</ios>
我知道在appcelerator文档中他们已经提到了这一点,CFBundleVersion
和CFBundleShortVersionString
将从生成的info.plist中的<version>
标记值变为相同的值。
因此,目前唯一的方法是增加应用程序版本(CFBundleShortVersionString),而不是每次将build#上传到iTunes连接上,这肯定不是一个好方法。通过Xcode,我可以更改构建#,但并不是所有的Ti应用程序都会因为一些模块和其他问题而从xcode存档。
在appcelerator社区上有很多关于这个问题的帖子,但是还没有一个可以接受的解决方案。在创建发行版构建过程中,有谁有办法直接从钛工作室更改/增加build#吗?
提前谢谢。
发布于 2015-04-20 08:50:33
我在新的iTunes/ this中发现的是,它只将前3个元素视为版本号(例如1.0.0),并在其中添加第4个元素,从而使iTunesConnect/this将其视为同一版本的构建版本(例如1.0.0.1)。
这使我可以在itunesconnect上创建1.0.0版本,并在同一版本下为1.0.0.1创建随后的上传,更改了tiap.xml中的version标记。
发布于 2015-04-12 18:59:24
grunt.registerTask('tiapp', function() {
var tiapp = require('tiapp.xml').load();
var version = tiapp.version.split('.');
tiapp.version = version[0] + '.' + version[1] + '.' + (parseInt(version[2], 10) + 1);
tiapp.write();
grunt.log.writeln(require('util').format('Bumped version to: %s', tiapp.version));
});
参见使用Grunt与钛的完整要点,在这里https://gist.github.com/FokkeZB/4754f93f8b325156c33c
这里有更多的细节,http://tonylukasavage.com/blog/2014/01/23/automating-appcelerator-tasks-with-grunt-titanium-and-grunt-alloy/
发布于 2015-04-10 07:34:58
在我的原生Xcode项目中,我在构建阶段使用了两个小型shell脚本。这也适用于任何其他构建过程。
第一:
if [ ${CONFIGURATION} == "Debug" ]; then
buildNumber=-1
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
else
buildNumber=$(git rev-list HEAD | wc -l | tr -d ' ')
flag=""
if [ ! ${CONFIGURATION} == "Release" ]; then
flag="b"
fi;
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber$flag" "${PROJECT_DIR}/${INFOPLIST_FILE}"
fi;
然后,在构建过程结束时,快速重置生成编号-1 (我的默认值):
# reset the build number to the default -1 to prevent issues in git
commits
buildNumber=-1
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
这些脚本将版本号设置为git提交的数量(在这里可以随意使用构建方案),构建项目并将其重置为默认的构建号。重置可防止info.plist文件中的常量更改。
CFBundleShortVersionString
是手动处理的,因为自动化语义版本对我来说是错误的。
https://stackoverflow.com/questions/29554505
复制相似问题