diff --git a/gogio/androidbuild.go b/gogio/androidbuild.go index 098181e..79943de 100644 --- a/gogio/androidbuild.go +++ b/gogio/androidbuild.go @@ -450,7 +450,7 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo, extraJars, pe ` {{range .Permissions}} diff --git a/gogio/build_info.go b/gogio/build_info.go index b3d4f99..1797296 100644 --- a/gogio/build_info.go +++ b/gogio/build_info.go @@ -33,8 +33,8 @@ type buildInfo struct { } type Semver struct { - Major uint16 - Minor, Patch uint8 + Major, Minor, Patch int + VersionCode uint32 } func newBuildInfo(pkgPath string) (*buildInfo, error) { @@ -83,19 +83,12 @@ func UppercaseName(name string) string { } func (s Semver) String() string { - return fmt.Sprintf("%d.%d.%d", s.Major, s.Minor, s.Patch) -} - -// Version32 returns a 32-bit integer version packed as such: -// -// major<<16 | minor<<8 | patch -func (s Semver) Version32() uint32 { - return uint32(s.Major)<<16 | uint32(s.Minor)<<8 | uint32(s.Patch) + return fmt.Sprintf("%d.%d.%d.%d", s.Major, s.Minor, s.Patch, s.VersionCode) } func parseSemver(v string) (Semver, error) { var sv Semver - _, err := fmt.Sscanf(v, "%d.%d.%d", &sv.Major, &sv.Minor, &sv.Patch) + _, err := fmt.Sscanf(v, "%d.%d.%d.%d", &sv.Major, &sv.Minor, &sv.Patch, &sv.VersionCode) if err != nil { return Semver{}, fmt.Errorf("invalid semver: %q", v) } diff --git a/gogio/iosbuild.go b/gogio/iosbuild.go index 6c66ead..debe458 100644 --- a/gogio/iosbuild.go +++ b/gogio/iosbuild.go @@ -377,7 +377,7 @@ func buildInfoPlist(bi *buildInfo) string { DTXcodeBuild 10G8 -`, appName, bi.appID, appName, bi.version, bi.version.Version32(), platform, minIOSVersion, supportPlatform, platform) +`, appName, bi.appID, appName, bi.version, bi.version.VersionCode, platform, minIOSVersion, supportPlatform, platform) } func iosPlatformFor(target string) string { diff --git a/gogio/main.go b/gogio/main.go index bd6759a..5fe373e 100644 --- a/gogio/main.go +++ b/gogio/main.go @@ -28,7 +28,7 @@ var ( destPath = flag.String("o", "", "output file or directory.\nFor -target ios or tvos, use the .app suffix to target simulators.") appID = flag.String("appid", "", "app identifier (for -buildmode=exe)") name = flag.String("name", "", "app name (for -buildmode=exe)") - version = flag.String("version", "1.0.0", "semver app version (for -buildmode=exe) on the form major.minor.patch") + version = flag.String("version", "1.0.0.1", "semver app version (for -buildmode=exe) on the form major.minor.patch.versioncode") printCommands = flag.Bool("x", false, "print the commands") keepWorkdir = flag.Bool("work", false, "print the name of the temporary work directory and do not delete it when exiting.") linkMode = flag.String("linkmode", "", "set the -linkmode flag of the go tool")