[TIMOB-27463] iOS: Project fails to choose correct simulator by default, picks up global iOS 9.3 sim incompatible with Xcode 11
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2019-10-24T17:32:07.000+0000 |
Affected Version/s | Release 8.2.1 |
Fix Version/s | Release 8.2.1 |
Components | CLI, iOS |
Labels | engSchedule |
Reporter | Christopher Williams |
Assignee | Chris Barber |
Created | 2019-10-10T19:04:18.000+0000 |
Updated | 2019-10-24T17:32:07.000+0000 |
Description
With latest master/8_2_X source, I cannot build and run the unit test suite because the project build portion fails. I have an iOS 9.3 sim runtime installed in /Library/Developer/CoreSimulator/Profiles/Runtimes
It appears to be trying to use that, despite iOS 9.3 not being compatible/supported by Xcode 11.
Here's the CLI error output:
[INFO] Writing index.json with listing of JS/JSON files
[INFO] Invoking xcodebuild
[ERROR] xcodebuild: error: Unable to find a destination matching the provided destination specifier:
[ERROR] { platform:iOS Simulator, id:7E4B0B67-6FFA-4E35-AEDB-B25C8E1400C6, OS:9.3 }
[ERROR] The requested device could not be found because no available devices matched the request.
[ERROR] Available destinations for the "mocha" scheme:
[ERROR] { platform:iOS Simulator, id:2B29AC6D-8469-4BDA-81F7-EF18AE09123A, OS:13.0, name:iPad (5th generation) }
[ERROR] { platform:iOS Simulator, id:6D93B6DB-0DD7-4B37-B457-0014A26541BC, OS:13.0, name:iPad (6th generation) }
[ERROR] { platform:iOS Simulator, id:55F85749-4C87-4BBF-A0AE-2D7F9634BA88, OS:13.0, name:iPad Air (3rd generation) }
[ERROR] { platform:iOS Simulator, id:3A0DED6A-131D-47A8-8371-26D872F9DA50, OS:13.0, name:iPad Air 2 }
[ERROR] { platform:iOS Simulator, id:4BFA3613-08B8-46D5-BCAC-78039408EA2A, OS:13.0, name:iPad Pro (9.7-inch) }
[ERROR] { platform:iOS Simulator, id:48E2DACC-8088-498F-AE3A-6AC57765F848, OS:13.0, name:iPad Pro (10.5-inch) }
[ERROR] { platform:iOS Simulator, id:0598FBBD-2E5C-4D84-A740-00F82127606C, OS:13.0, name:iPad Pro (11-inch) }
[ERROR] { platform:iOS Simulator, id:868DFF1A-14B3-4777-A869-C224DB03FDB9, OS:13.0, name:iPad Pro (12.9-inch) }
[ERROR] { platform:iOS Simulator, id:FB3F1436-F508-4506-935D-DAE52D471F62, OS:13.0, name:iPad Pro (12.9-inch) (2nd generation) }
[ERROR] { platform:iOS Simulator, id:3CFD35BC-000A-4DDA-8D6F-12EA0E3D65AD, OS:13.0, name:iPad Pro (12.9-inch) (3rd generation) }
[ERROR] { platform:iOS Simulator, id:7A5F4D21-6C2A-4833-883C-A1268F0AEAAD, OS:13.0, name:iPad mini (5th generation) }
[ERROR] { platform:iOS Simulator, id:0592AD71-0E03-4D09-9C64-191879B315E4, OS:13.0, name:iPad mini 4 }
[ERROR] { platform:iOS Simulator, id:D85DB69F-33C5-400B-A794-751EF4E7AA12, OS:13.0, name:iPhone 6s }
[ERROR] { platform:iOS Simulator, id:F34F3DEE-2D3C-438A-AB5A-21D18EB27F74, OS:13.0, name:iPhone 6s Plus }
[ERROR] { platform:iOS Simulator, id:30CE1F77-B0A3-4886-BBA8-6F1AFD7EA3FF, OS:13.0, name:iPhone 7 }
[ERROR] { platform:iOS Simulator, id:7279613C-5A28-4766-93FC-4752B305BDB3, OS:13.0, name:iPhone 7 Plus }
[ERROR] { platform:iOS Simulator, id:7103E089-D840-4E38-880F-F866F82C11BB, OS:13.0, name:iPhone 8 }
[ERROR] { platform:iOS Simulator, id:82158C5A-DF40-4F5B-87B4-D7E1D89B481B, OS:13.0, name:iPhone 8 Plus }
[ERROR] { platform:iOS Simulator, id:3D08D0C1-011F-485A-95A3-43D4508B09D4, OS:13.0, name:iPhone 11 }
[ERROR] { platform:iOS Simulator, id:D62FE848-1E5B-4C9A-A594-DCAAB9EB0279, OS:13.0, name:iPhone 11 Pro }
[ERROR] { platform:iOS Simulator, id:58EA7761-68DD-4986-82B4-0F1743B5D6D8, OS:13.0, name:iPhone 11 Pro Max }
[ERROR] { platform:iOS Simulator, id:C9D04CCE-E8DD-4173-955B-E7EFC8C57D20, OS:13.0, name:iPhone SE }
[ERROR] { platform:iOS Simulator, id:EB7D2396-3C3E-49F7-855A-A7048F711D85, OS:13.0, name:iPhone X }
[ERROR] { platform:iOS Simulator, id:DD79AF7C-958B-42DA-AF87-D18DCBBD445F, OS:13.0, name:iPhone Xs }
[ERROR] { platform:iOS Simulator, id:A1CD9662-68BE-41E6-B34C-3A5F5D6A5FB4, OS:13.0, name:iPhone Xs Max }
[ERROR] { platform:iOS Simulator, id:C7B6BD99-6789-4612-8876-9C3D46D03C21, OS:13.0, name:iPhone Xʀ }
[ERROR] Ineligible destinations for the "mocha" scheme:
[ERROR] { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device }
[ERROR] { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device }
Fix for TIMOB-27338 seems to have triggered this for me. Reverting the commit for that "fixes" the issue.
The bug is actually in ioslib and has been around a long time. Xcode 11 drops support for iOS Simruntime 9.x and older. PR: https://github.com/appcelerator/ioslib/pull/101
Resolved the ticket.
Actually, ioslib PR 101 does NOT fix the problem. For starters, it didn't cap semver ranges, so simply saying >=9.3 would get 10.x and 11.x, which is wrong. The ranges needed to be capped like ">=9.3 < 10". Secondly, it only cached the first matching Xcode simctl and simulator executables instead of caching all supported Xcode executables. This would allow simctl from Xcode 11 to be used to control a iOS 9 sim, which is wrong. ioslib PR: https://github.com/appcelerator/ioslib/pull/102
Verified the fix with SDK 8.2.1.v20191024091801 & latest master. Closing.