diff --git a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/VersionApplicator.cs b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/VersionApplicator.cs index defb12dc..5a3c5d64 100644 --- a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/VersionApplicator.cs +++ b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/VersionApplicator.cs @@ -15,7 +15,12 @@ namespace UnityBuilderAction.Versioning } public static void SetAndroidVersionCode(string androidVersionCode) { - PlayerSettings.Android.bundleVersionCode = Int32.Parse(androidVersionCode); + int bundleVersionCode = Int32.Parse(androidVersionCode); + if (bundleVersionCode <= 0) { + return; + } + + PlayerSettings.Android.bundleVersionCode = bundleVersionCode; } static void Apply(string version) diff --git a/dist/index.js b/dist/index.js index 07e91231..05579577 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/dist/index.js.map b/dist/index.js.map index 02f943ac..33720f2b 100644 Binary files a/dist/index.js.map and b/dist/index.js.map differ diff --git a/src/model/android-versioning.test.ts b/src/model/android-versioning.test.ts index 9617f557..1951549d 100644 --- a/src/model/android-versioning.test.ts +++ b/src/model/android-versioning.test.ts @@ -2,6 +2,10 @@ import AndroidVersioning from './android-versioning'; describe('Android Versioning', () => { describe('versionToVersionCode', () => { + it('defaults to 0 when versioning strategy is none', () => { + expect(AndroidVersioning.versionToVersionCode('none')).toBe(0); + }); + it('defaults to 1 when version is not a valid semver', () => { expect(AndroidVersioning.versionToVersionCode('abcd')).toBe(1); }); @@ -11,7 +15,7 @@ describe('Android Versioning', () => { }); it('throw when generated version code is too large', () => { - expect(() => AndroidVersioning.versionToVersionCode('1234.0.0')).toThrow(); + expect(() => AndroidVersioning.versionToVersionCode('2050.0.0')).toThrow(); }); }); diff --git a/src/model/android-versioning.ts b/src/model/android-versioning.ts index 1024fd83..e5fd464a 100644 --- a/src/model/android-versioning.ts +++ b/src/model/android-versioning.ts @@ -10,6 +10,11 @@ export default class AndroidVersioning { } static versionToVersionCode(version) { + if (version === 'none') { + core.info(`Versioning strategy is set to ${version}, so android version code should not be applied.`); + return 0; + } + const parsedVersion = semver.parse(version); if (!parsedVersion) { @@ -21,7 +26,7 @@ export default class AndroidVersioning { // Allow for 3 patch digits, 3 minor digits and 3 major digits. const versionCode = parsedVersion.major * 1000000 + parsedVersion.minor * 1000 + parsedVersion.patch; - if (versionCode >= 1000000000) { + if (versionCode >= 2050000000) { throw new Error( `Generated versionCode ${versionCode} is dangerously close to the maximum allowed number 2100000000. Consider a different versioning scheme to be able to continue updating your application.`, );