2026-09-10 09:11:55 +03:00
|
|
|
"""Select an available iPhone from simctl JSON; print a GitHub environment entry."""
|
|
|
|
|
import json
|
|
|
|
|
import sys
|
|
|
|
|
import uuid
|
|
|
|
|
|
|
|
|
|
with open(sys.argv[1], encoding="utf-8") as stream:
|
|
|
|
|
runtimes = json.load(stream)["devices"]
|
2026-09-10 09:16:59 +03:00
|
|
|
sdk_version = sys.argv[2] if len(sys.argv) > 2 else None
|
2026-09-10 09:11:55 +03:00
|
|
|
for runtime in sorted(runtimes, reverse=True):
|
2026-09-10 09:16:59 +03:00
|
|
|
if ".iOS-" not in runtime or (sdk_version and not runtime.endswith(".iOS-" + sdk_version.replace(".", "-"))):
|
2026-09-10 09:11:55 +03:00
|
|
|
continue
|
|
|
|
|
for device in runtimes[runtime]:
|
|
|
|
|
if device.get("isAvailable") and device.get("name", "").startswith("iPhone"):
|
2026-09-10 09:16:59 +03:00
|
|
|
uuid.UUID(device["udid"]) # Validate without changing the case expected by xcodebuild.
|
|
|
|
|
print("SIMULATOR_ID=" + device["udid"])
|
2026-09-10 09:11:55 +03:00
|
|
|
sys.exit(0)
|
|
|
|
|
sys.exit("No available iPhone simulator in selected Xcode runtime.")
|