x/build: consider transitioning from Corellium based iOS builders to Apple Simulator based builders #66360
Labels
Builders
x/build issues (builders, bots, dashboards)
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
new-builder
OS-iOS
GOOS=ios
Milestone
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
The text was updated successfully, but these errors were encountered: