Skip to content

AboutUnity/BuildAutoIncrement

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

BuildAutoIncrement

Unity Editor 脚本,用于在构建前自动递增各平台的构建号码。此插件实现了 IPreprocessBuildWithReport 接口,会在每次构建前自动运行。

功能特性

  • 自动构建号递增:在每次构建前自动为目标平台递增构建号
  • 多平台支持:支持 Windows、macOS、Linux、iOS、Android、WebGL、tvOS、WSA 等平台
  • 运行时访问:创建 BuildScriptableObject 资源文件,可在运行时访问当前构建号
  • 零配置:放入项目后即可自动工作,无需手动配置

支持的平台

平台 构建号存储位置
Windows/Linux/macOS PlayerSettings.macOS.buildNumber
iOS PlayerSettings.iOS.buildNumber
Android PlayerSettings.Android.bundleVersionCode
WSA (UWP) PlayerSettings.WSA.packageVersion.Build
tvOS PlayerSettings.tvOS.buildNumber
WebGL 存储在 BuildScriptableObject

安装方法

  1. Editor/BuildIncrementor.cs 复制到你的 Unity 项目的 Assets/Editor/ 文件夹中
  2. 如果 Assets/Editor/ 文件夹不存在,请先创建它
  3. Unity 会自动编译脚本,无需其他配置

使用方法

自动使用

脚本会在每次构建时自动运行,无需手动操作:

  1. 在 Unity 中选择 File > Build Settings
  2. 选择目标平台并点击 BuildBuild and Run
  3. 构建号会在构建开始前自动递增

运行时访问构建号

脚本会创建一个 Assets/Resources/Build.asset 文件来存储构建号,你可以在运行时访问:

// 注意:你需要创建 BuildScriptableObject 类来匹配脚本中的使用
BuildScriptableObject buildInfo = Resources.Load<BuildScriptableObject>("Build");
if (buildInfo != null)
{
    Debug.Log("当前构建号: " + buildInfo.BuildNumber);
}

缺失的 BuildScriptableObject 类

当前脚本引用了 BuildScriptableObject 类,但该类未包含在此仓库中。你需要创建这个类:

// 建议放在 Assets/Scripts/ 目录下
using UnityEngine;

[CreateAssetMenu(fileName = "Build", menuName = "Build/Build Info")]
public class BuildScriptableObject : ScriptableObject
{
    [SerializeField] private string buildNumber = "1";
    
    public string BuildNumber 
    { 
        get => buildNumber; 
        set => buildNumber = value; 
    }
}

工作原理

  1. 构建前触发:实现 IPreprocessBuildWithReport 接口,在构建开始前自动执行
  2. 平台检测:根据构建目标平台选择相应的构建号存储位置
  3. 号码递增:将当前构建号解析为整数,加1后更新
  4. 资源创建:在 Assets/Resources/Build.asset 中保存构建信息供运行时访问
  5. 自动保存:标记资源为已修改并保存到项目中

文件结构

Assets/
├── Editor/
│   └── BuildIncrementor.cs          # 构建号递增脚本
├── Resources/
│   └── Build.asset                  # 自动生成的构建信息资源
└── Scripts/
    └── BuildScriptableObject.cs     # 构建信息数据类 (需要创建)

注意事项

  • 脚本会自动创建 Assets/Resources 文件夹(如果不存在)
  • Android 平台使用 bundleVersionCode(整数)而非字符串
  • WSA 平台使用 System.Version 类型,只递增 Build 部分
  • 某些平台的构建号设置被注释掉了(PS4、Xbox One、Switch),可根据需要启用

许可证

此项目使用 MIT 许可证

贡献

欢迎提交 Issue 和 Pull Request 来改进此插件。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%