Skip to content

x/build: consider transitioning from Corellium based iOS builders to Apple Simulator based builders #66360

Open
@rolandshoemaker

Description

@rolandshoemaker

The iOS builders are currently broken, and have been for quite a while (see https://ci.chromium.org/ui/p/golang/builders?q=ios and https://farmer.golang.org/#active). It's unclear what work is necessary to fix them.

Corellium is a somewhat strange platform to be testing on, as it is (a) emulating jailbroken iOS, which is likely to be representative of a minority of Go code run on iOS, and (b) unclear what version of iOS is being emulated. It is also a commercial product, so spinning up more builders, or better builders etc, is likely to incur some financial burden.

This issue proposes moving away from the Corellium based builders, and instead using the official Apple iOS Simulator, for which we already have most of the required machinery to do. This would allow us to use existing darwin builders (or new darwin builders that come from the same source) to run iOS tests, instead of relying on the current third-party maintained builders.

misc/ios contains slightly out of date tools that allow executing Go binaries on the iOS simulator by wrapping them in an app bundle and using the xcrun simctl tools to run them. These tools predate the arm Apple silicon, so need a little updating to work on newer machines, but I was able to quickly update them to reliably work on arm64 macos.

Most of the complexity of these tools is because they are written to work on both the iOS simulator and real devices, but could be reasonably updated to be somewhat more streamlined and efficient (i.e. only supporting the simulator, or split into tools specifically for the simulator and real devices, and removing the reliance on the debugger which doesn't seem strictly necessary. There is probably also some work to be done to reduce the need to move large parts of the source tree back and forth from the simulator when testing the entire tree).

The only delta between the existing darwin builders and iOS specific builders would be additionally installing the xcode simulator runtime, and setting GOOS=ios.

cc @golang/release @changkun

Metadata

Metadata

Assignees

No one assigned

    Labels

    Buildersx/build issues (builders, bots, dashboards)NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.OS-iOSGOOS=iosnew-builder

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions