@@ -53,17 +53,30 @@ prettier
5353
5454execSync ( `towncrier build --version ${ version } ` , { stdio : 'inherit' } )
5555
56+ // Mobile build version used internally in stores
57+ const gitCommitCount = execSync ( 'git rev-list --count HEAD' , { encoding : 'utf8' } ) . trim ( )
58+ const versionPrefix = version
59+ . split ( '.' )
60+ . map ( ( n , i ) => ( i > 0 ? n . padStart ( 3 , '0' ) : n ) )
61+ . join ( '' )
62+ const newVersionCode = `${ versionPrefix } ${ gitCommitCount } `
63+
5664// Android app needs to bump versionName in build.gradle
5765const gradleFilePath = './android/app/build.gradle'
5866const gradleContent = fs . readFileSync ( gradleFilePath , 'utf8' )
59- const updatedGradleContent = gradleContent . replace ( / v e r s i o n N a m e \s + " [ \d . ] + " / , `versionName "${ version } "` )
67+ let updatedGradleContent = gradleContent . replace ( / v e r s i o n N a m e \s + " [ \d . ] + " / , `versionName "${ version } "` )
68+ updatedGradleContent = updatedGradleContent . replace ( / v e r s i o n C o d e \s + \d + / , `versionCode ${ newVersionCode } ` )
6069fs . writeFileSync ( gradleFilePath , updatedGradleContent , 'utf8' )
6170
6271// iOS app needs to bump MARKETING_VERSION in project.pbxproj
6372const pbxprojFilePath = './ios/App/App.xcodeproj/project.pbxproj'
6473const pbxprojContent = fs . readFileSync ( pbxprojFilePath , 'utf8' )
65- const updatedPbxprojContent = pbxprojContent . replace (
74+ let updatedPbxprojContent = pbxprojContent . replace (
6675 / M A R K E T I N G _ V E R S I O N = [ \d . ] + ; / g,
6776 `MARKETING_VERSION = ${ version } ;` ,
6877)
78+ updatedPbxprojContent = updatedPbxprojContent . replace (
79+ / C U R R E N T _ P R O J E C T _ V E R S I O N = \d + ; / g,
80+ `CURRENT_PROJECT_VERSION = ${ newVersionCode } ;` ,
81+ )
6982fs . writeFileSync ( pbxprojFilePath , updatedPbxprojContent , 'utf8' )
0 commit comments