cmd/gomobile: reject signed iOS version components

strconv.Atoi accepts optional leading signs, so parseIOSVersion
currently accepts inputs such as +13 and 13.-1. For Mac Catalyst,
13.-1 passes the minimum-version check because only the major
component is checked, then reaches the Apple toolchain as an invalid
deployment target.

Require each version component to contain only ASCII digits before
parsing it. Add tests for signed components and Mac Catalyst
validation.

Fixes golang/go#80761

Change-Id: I87887317a37c248442ad08174dd2c2943191132f
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/811440
Reviewed-by: Hajime Hoshi <hajimehoshi@gmail.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Hajime Hoshi <hajimehoshi@gmail.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
2 files changed
tree: cc6eb75c0a0c07d06672bbefc2a44aae03b3d566
  1. app/
  2. asset/
  3. bind/
  4. cmd/
  5. doc/
  6. event/
  7. example/
  8. exp/
  9. geom/
  10. gl/
  11. internal/
  12. testdata/
  13. .gitattributes
  14. .gitignore
  15. codereview.cfg
  16. CONTRIBUTING.md
  17. go.mod
  18. go.sum
  19. LICENSE
  20. PATENTS
  21. README.md
README.md

Go support for Mobile devices

Go Reference

The Go mobile repository holds packages and build tools for using Go on mobile platforms.

Package documentation as a starting point:

Caution image

The Go Mobile project is experimental. Use this at your own risk. While we are working hard to improve it, neither Google nor the Go team can provide end-user support.

This is early work and installing the build system requires Go 1.5. Follow the instructions on golang.org/wiki/Mobile to install the gomobile command, build the basic and the bind example apps.


Contributions to Go are appreciated. See https://go.dev/doc/contribute.

The git repository is https://go.googlesource.com/mobile.