如何在AppStoreRelease@1任务中设置构建编号与修改构建名称?
关于AppStoreRelease@1任务修改构建名称/编号的问题
AppStoreRelease@1任务本身没有直接设置构建编号或名称的属性,因为这个任务仅负责将已打包完成的IPA上传至App Store/TestFlight,构建编号(CFBundleVersion)和版本名称(CFBundleShortVersionString)是在IPA打包阶段就嵌入到安装包中的,无法在上传环节修改。
正确的修改方式
要自定义或递增构建编号,需要在IPA打包的前置阶段处理,以下是两种常见方案:
1. 通过Xcode任务直接指定构建信息
使用Xcode@5任务打包时,可通过args参数传递版本号和构建号,覆盖项目默认配置:
- task: Xcode@5 displayName: 'Build and package IPA' inputs: actions: 'build' scheme: 'YourAppScheme' sdk: 'iphoneos' configuration: 'Release' # 传递固定版本号+Azure自动递增的构建号 args: '-allowProvisioningUpdates VERSION_NUMBER=1.0.0 BUILD_NUMBER=$(Build.BuildId)' xcWorkspacePath: '**/*.xcworkspace' packageApp: true archivePath: '$(build.artifactstagingdirectory)/archive' exportPath: '$(build.artifactstagingdirectory)/ipa' exportOptionsPlist: 'ExportOptions.plist'
2. 手动修改Info.plist文件
如果需要更灵活的控制,可在打包前用PlistBuddy命令修改项目的Info.plist:
# 设置构建号为Azure自动递增的Build.BuildId /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $(Build.BuildId)" "$(Build.SourcesDirectory)/YourApp/Info.plist" # 设置固定版本名称 /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString 1.0.0" "$(Build.SourcesDirectory)/YourApp/Info.plist"
实现自定义递增逻辑
若不想使用Azure内置的Build.BuildId,可通过自定义计数器变量实现版本号的规则化递增:
variables: majorVersion: 1 minorVersion: 0 # 基于主/次版本号生成独立递增的构建计数器 buildCounter: $[counter(format('{0}.{1}', variables.majorVersion, variables.minorVersion), 1)] fullBuildNumber: $(majorVersion).$(minorVersion).$(buildCounter)
之后在打包阶段将$(fullBuildNumber)作为构建号传入即可。
补充说明
通过AppStoreRelease@1上传IPA后,TestFlight中显示的构建号就是IPA包内Info.plist里的CFBundleVersion,上传任务本身无法修改该值,必须在打包阶段提前配置完成。
内容的提问来源于stack exchange,提问作者SVG
相关产品推荐
相关产品推荐

