From 11a0d0947e925b0ab0a7f1495bcf44bf480a953d Mon Sep 17 00:00:00 2001 From: David Finol Date: Mon, 15 Nov 2021 11:12:37 -0600 Subject: [PATCH] Improve androidVersionCode parsing and application (#297) --- .../Versioning/VersionApplicator.cs | 7 ++++++- dist/index.js | Bin 14729727 -> 14729912 bytes dist/index.js.map | Bin 8949613 -> 8949826 bytes src/model/android-versioning.test.ts | 6 +++++- src/model/android-versioning.ts | 7 ++++++- 5 files changed, 17 insertions(+), 3 deletions(-) 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 07e912319ee231294fb5e65ced615c321e73d9fb..05579577f1bc829ae0f63789a18d8fc66e0c327d 100644 GIT binary patch delta 1047 zcmXZV*4%nk7pK zW#9LG-QS$4D-4tq5HC46+?B=NAN>iFM zRrcwMrYfpi=!VZ_$nG4W=t7qbVQ3;QH~Zh77cX>8xKzofDU$dfMTREHLeJE)Jd#i~ zL!`^X<@I_LSxN}R#zcoWlFi|PqVmWp)$%haIMI>hcUlXb)*#eEFhXELD8f)1br6mS z)P))KP#+D@5RDLt#%O{lG(|Klh{4~lW@wHUXbFK>v_fmdp$*!?hIVL=4(Nz@bV35` zaG*01(FI+Rgl_1L9_Wc)NJek;L0|Mke+6n3;n1$JJ!i98XK!S`pa3d26=3*W^m=6^iyjTDqbQs7&HWp$L zacY!U@Nwv1lzF#JFyG9 zu?KrmihbCR12~97IE*qJ!BHH;ag^f(PT~|!qXLyUgDRZGIh;o|YH$G;aS4}k1y^wm z*Kq?kaSOL`2X}D~_wfJ^@d%Ic1W)k{&+!5;@d~f;25<2W@9_a2@d=;t1z+*4+G+h> GTJ{GgJ9`EI delta 930 zcmWm7Rd)^m007W4W7A#VOm}alySqE4yJouc!{o#;Jvq&om}a`W^Bg~f>)}4%j8(z# zzrkR5T3jG0F*7VVzHDq*dQ8NhkkII;s9+#6ArKit7DCBNHo^!eJ2}WnE^?EHyyPQ4 z1t>@%3R8rl6r(r+A}GQCuOy`?O&Q8kj`CEXB9*926{=E=>eQenwWv)L(bOS^y40gS z4QNOs8q~U?P*4%oL^)$28)Z&J1QUi`mR!F7uer0v57}#Vlbd%UI3| zf~;f}t4UxDYgxy7Hn5RIHnEv4Y$b_pY-b0_>|__a*~4D;v7ZzUaF9bB<_JegB>hRY;XWQ<07*Q=BRs|vJjF9S#~@xHg&_>XgoT$#V+1x{VH6pR!GS^+ z~FA9mt3e1f|S(is;b0dBp`)ULZq>Ut)!E|Hnx+= z4tBDOEV9WVm)-1PFZ;+Np91!CfP)lrh{F_7ObKC1DWjYt9OW3tso(@BsbuqC%_(X) z%^A*8OC9x`Bf@zaXygJ-G;@&_T501F?R3z|Wv+0QYh33BH@U@a?r@iT+~)xg>EaQO zdBRhk(M=D}>E#7|yyO+H>1Tj9yyYG58DxkLd}NqUeC7*Z8DTWJ7>TY9P5)boXC#;6 mvEE>MW-gkZ2+v3P#&^aTXM!KZnB*tFh%?3SWOzPNxb`1t*#NNs 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.`, );