如何自动递增版本号(CFBundleShortVersionString)?

2024-09-24 02:27:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我们的发布过程是使用ci服务器完成的。
现在我想做的是自动增加发行(生产)版本号(CFBundleShortVersionString),而不是特殊情况(主要发行版或补丁发行版)。在

想象一下我当前的版本1.1,我想自动增加到1.2。在

任何知道如何使用Xcode或任何脚本来实现这一点的人都会非常感激。在

我不是说内部版本号(cfbundleverion)。在


Tags: 版本服务器脚本ci过程版本号情况xcode
2条回答
#!/bin/bash

buildPlist="${PRODUCT_NAME}-Info.plist"

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBuildNumber" $buildPlist)

# Increment the buildNumber
buildNumber=$(($buildNumber + 1))

# Set the version numbers in the buildPlist
/usr/libexec/PlistBuddy -c "Set :CFBundleLongVersionString $buildNumber" $buildPlist

Source的修改版本。您可以通过设置$buildNumber的默认值来修改它,也可以通过将1的增量值修改为任何所需的值。在

import sys

import click

MIN_DIGITS = 2
MAX_DIGITS = 3


@click.command()
@click.argument('version')
@click.option(' major', 'bump_idx', flag_value=0, help='Increment major number.')
@click.option(' minor', 'bump_idx', flag_value=1, help='Increment minor number.')
@click.option(' patch', 'bump_idx', flag_value=2, default=True, help='Increment patch number.')
def cli(version, bump_idx):
    """Bumps a MAJOR.MINOR.PATCH version string at the specified index location or 'patch' digit. An
    optional 'v' prefix is allowed and will be included in the output if found."""
    prefix = version[0] if version[0].isalpha() else ''
    digits = version.lower().lstrip('v').split('.')

    if len(digits) > MAX_DIGITS:
        click.secho('ERROR: Too many digits', fg='red', err=True)
        sys.exit(1)

    digits = (digits + ['0'] * MAX_DIGITS)[:MAX_DIGITS]  # Extend total digits to max.
    digits[bump_idx] = str(int(digits[bump_idx]) + 1)  # Increment the desired digit.

    # Zero rightmost digits after bump position.
    for i in range(bump_idx + 1, MAX_DIGITS):
        digits[i] = '0'
    digits = digits[:max(MIN_DIGITS, bump_idx + 1)]  # Trim rightmost digits.
    click.echo(prefix + '.'.join(digits), nl=False)


if __name__ == '__main__':
    cli()

{a1}

相关问题 更多 >