Fix iOS simulator runtime unavailable error on Intel Macs

On Intel (x86) Macs, the iOS simulator runtime may be cached as an
ARM-only version. When this happens, xcrun simctl list runtimes reports
the runtime as unavailable with the error:
(unavailable, liblaunch_sim.dylib could not be opened)

Added _unavailable_runtime() method to detect this architecture mismatch
error. The __call__ method now checks for both missing runtimes AND
unavailable runtimes. When either condition is detected, it sets
_cleanup_cache = True and retries _setup_osx_sdk to wipe the cache and
re-download the correct universal runtime.

Change-Id: Ib1d3d09907be1d591c42a0ca1e946b0bdfda2557
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/74140
Reviewed-by: Victoria Ashworth <vashworth@google.com>
Commit-Queue: Victoria Ashworth <vashworth@google.com>
20 files changed
tree: 7e5b2117cb9f92b9bd4cf08da28a64fb4e72a134
  1. .vscode/
  2. infra/
  3. recipe_modules/
  4. recipes/
  5. .gitignore
  6. .style.yapf
  7. AUTHORS
  8. CONTRIBUTING.md
  9. LICENSE
  10. OWNERS
  11. README.md
  12. recipes.py
README.md

Flutter LUCI Recipes

This repository contains Flutter's LUCI recipes. For the LUCI infrastructure config, see flutter/infra. Builds can be found in the Flutter Dashboard.

Supported repositories roll their .ci.yaml into flutter/infra, which updates what properties builds have. For example, flutter config specifies various dependencies the different tests require, which are then used by the flutter_deps recipe_module No modifications to flutter/infra are required to work on the recipes.

Contributing

Please follow instructions on Contributing docs to set up your development environment.