Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Appcelerator中增加iOS内部版本号_Ios_Iphone_Xcode_Titanium_Appcelerator - Fatal编程技术网

如何在Appcelerator中增加iOS内部版本号

如何在Appcelerator中增加iOS内部版本号,ios,iphone,xcode,titanium,appcelerator,Ios,Iphone,Xcode,Titanium,Appcelerator,我直接从titanium studio创建分发版本,上传到iTunes Connect上,用于Apple Testflight预发布测试。我当前的应用程序版本是1.1.1,Tianium studio会自动将版本号设置为1.1.1 在Xcode上,大多数开发人员通常将预发布版本号(CbundLeverVersion)保持为整数,在上传到iTunes之前,每次增加1是非常方便的。从钛工作室,这是不可能的 在tiapp.xml中,我设置了 <ios> <plist>

我直接从titanium studio创建分发版本,上传到iTunes Connect上,用于Apple Testflight预发布测试。我当前的应用程序版本是1.1.1,Tianium studio会自动将版本号设置为1.1.1

在Xcode上,大多数开发人员通常将预发布版本号(CbundLeverVersion)保持为整数,在上传到iTunes之前,每次增加1是非常方便的。从钛工作室,这是不可能的

在tiapp.xml中,我设置了

<ios>
    <plist>
        <dict>
            <key>CFBundleShortVersionString</key>
            <string>1.1.1</string>
            <key>CFBundleVersion</key>
            <string>10</string>
        </dict>
    </plist>
</ios>

CbundleShortVersionString
1.1.1
循环流化床锅炉
10
从Titanium Studio运行后,生成的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>

CbundleShortVersionString
1.1.1
循环流化床锅炉
1.1.1
我知道在appcelerator文档中,他们已经提到了这一点,
CbundLeverVersion
CbundleShortVersionString
将与generated info.plist中的
标记值相同

因此,目前使用Apple Testflight for Ti应用程序的唯一方法是增加应用程序版本(CbundleShortVersionString),而不是每次将其上传到iTunes Connect上时进行构建,这绝对不是一个好方法。从Xcode我可以更改构建,但由于某些模块和其他问题,并非所有Ti应用程序都会从Xcode存档

appcelerator社区上有很多关于这个问题的帖子,但还没有可接受的解决方案。是否有人在创建发行版版本时直接从Tianium Studio获得了更改/增加版本的有效解决方案


提前感谢。

在我的原生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(我的默认设置):

这些脚本将buildnumber设置为git提交的数量(这里可以随意使用您的构建方案),构建项目并将其重置为默认的buildnumber。重置可防止info.plist文件中的持续更改

CbundleShortVersionString
是手动处理的,因为我觉得自动化语义版本控制是错误的

  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的完整要点


这里有更多详细信息

我发现新iTunes/Testflight只将前3个元素视为版本号(例如1.0.0),向中添加第4个元素会导致iTunesConnect/Testflight将其视为同一版本的构建版本(例如1.0.0.1)

这使我能够在itunesconnect上创建1.0.0版本,并在同一版本下为1.0.0.1进行后续上载
刚刚更改了tiap.xml中的版本标签

谢谢您的回答。从您的grunt脚本可以看出,它每次都在增加版本号。我的要求是,我希望版本号保持不变,但增加版本号。另外,我希望构建编号为整数,而不是分数或3点字符串。当您直接从Tianium studio进行分发构建时,它是否有效?我没有Tianium方面的任何经验,但您可以在Grunt脚本中执行任何shell命令,如下所示:是的,我可以确认这也适用于我。。谢谢:-)
  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));
  });