首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何提高Appcelerator钛公司的iOS建设数量

如何提高Appcelerator钛公司的iOS建设数量
EN

Stack Overflow用户
提问于 2015-04-10 06:09:38
回答 3查看 2.6K关注 0票数 4

我正在创建发行版构建,直接从钛工作室上传到iTunes连接上,用于苹果试飞前的测试。我目前的应用版本是1.1.1,版本号由钛工作室自动设置为1.1.1。

在Xcode上,大多数开发人员通常将预发布的构建号(CFBundleVersion)保持为Integer,在上传到iTunes之前每次增加一个非常方便。这是不可能的!

在tiapp.xml中,我设置了

代码语言:javascript
运行
复制
<ios>
    <plist>
        <dict>
            <key>CFBundleShortVersionString</key>
            <string>1.1.1</string>
            <key>CFBundleVersion</key>
            <string>10</string>
        </dict>
    </plist>
</ios>

在钛工作室运行后,生成的info.plist在build文件夹下变成

代码语言:javascript
运行
复制
<ios>
    <plist>
        <dict>
            <key>CFBundleShortVersionString</key>
            <string>1.1.1</string>
            <key>CFBundleVersion</key>
            <string>1.1.1</string>
        </dict>
    </plist>
</ios>

我知道在appcelerator文档中他们已经提到了这一点,CFBundleVersionCFBundleShortVersionString将从生成的info.plist中的<version>标记值变为相同的值。

因此,目前唯一的方法是增加应用程序版本(CFBundleShortVersionString),而不是每次将build#上传到iTunes连接上,这肯定不是一个好方法。通过Xcode,我可以更改构建#,但并不是所有的Ti应用程序都会因为一些模块和其他问题而从xcode存档。

在appcelerator社区上有很多关于这个问题的帖子,但是还没有一个可以接受的解决方案。在创建发行版构建过程中,有谁有办法直接从钛工作室更改/增加build#吗?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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标记。

票数 11
EN

Stack Overflow用户

发布于 2015-04-12 18:59:24

代码语言:javascript
运行
复制
  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/

票数 2
EN

Stack Overflow用户

发布于 2015-04-10 07:34:58

在我的原生Xcode项目中,我在构建阶段使用了两个小型shell脚本。这也适用于任何其他构建过程。

第一:

代码语言:javascript
运行
复制
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 (我的默认值):

代码语言:javascript
运行
复制
# 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是手动处理的,因为自动化语义版本对我来说是错误的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29554505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档