xcpretty / xcode-install

🔽 Install and update your Xcodes
https://fastlane.tools
MIT License
2.58k stars 237 forks source link

`xcversion simulators` doesn't list iOS 15.0 Simulators #444

Open ncreated opened 2 years ago

ncreated commented 2 years ago

Hello 👋. I have Xcode 13.0 (13A233) installed, with iOS 15.0 Simulators available, but when I run:

$ xcversion simulators

they are not listed:

$ xcversion simulators | grep iOS
iOS 11.4 Simulator (installed)
iOS 12.0 Simulator (not installed)
iOS 12.1 Simulator (installed)
iOS 12.2 Simulator (installed)
iOS 12.4 Simulator (installed)
iOS 13.0 Simulator (installed)
iOS 13.1 Simulator (not installed)
iOS 13.2 Simulator (installed)
iOS 13.3 Simulator (installed)
iOS 13.4 Simulator (installed)
iOS 13.5 Simulator (not installed)
iOS 13.6 Simulator (not installed)
iOS 13.7 Simulator (not installed)
iOS 14.0 Simulator (not installed)
iOS 14.1 Simulator (not installed)
iOS 14.2 Simulator (not installed)
iOS 14.3 Simulator (not installed)
iOS 14.4 Simulator (not installed)
iOS 11.4 Simulator (installed)
iOS 12.0 Simulator (not installed)
iOS 12.1 Simulator (installed)
iOS 12.2 Simulator (installed)
iOS 12.4 Simulator (installed)
iOS 13.0 Simulator (installed)
iOS 13.1 Simulator (not installed)
iOS 13.2 Simulator (installed)
iOS 13.3 Simulator (installed)
iOS 13.4 Simulator (installed)
iOS 13.5 Simulator (not installed)
iOS 13.6 Simulator (not installed)
iOS 13.7 Simulator (not installed)
iOS 14.0 Simulator (not installed)
iOS 14.1 Simulator (not installed)
iOS 14.2 Simulator (not installed)
iOS 14.3 Simulator (not installed)
iOS 14.4 Simulator (not installed)
iOS 14.5 Simulator (not installed)

The Xcode installation is properly recognised:

Xcode 13.0 (/Users/{me}/Applications/Xcode.app)

With xcrun simctl list runtimes I can see the runtime:

$ xcrun simctl list runtimes
== Runtimes ==
...
iOS 15.0 (15.0 - 19A339) - com.apple.CoreSimulator.SimRuntime.iOS-15-0
...

and devices:

$ xcrun simctl list devices
== Devices ==
...
-- iOS 15.0 --
    iPhone 8 (DA4708D0-70E0-4264-B9C2-93C7673663A8) (Shutdown) 
    iPhone 8 Plus (19B984A3-40F9-4B06-B5E1-6611D8914370) (Shutdown) 
    iPhone 11 - fav ⚡️ (15A52220-B4B1-42E0-943D-F0A2F084416C) (Booted) 
    ...
    iPad Pro (12.9-inch) (5th generation) (591ABEF3-6506-4A01-9BEA-1736ED3C8CBE) (Shutdown) 
    iPad mini (6th generation) (4851B2A9-5013-4C45-88CE-154BC952DFA3) (Shutdown) 

but no luck with xcode-install.

I tried doing some troubleshooting, browsing xcode-install code led me to this URL: https://github.com/xcpretty/xcode-install/blob/eeb8a075aeb83e6d2bece2d09f01394f147a4b00/lib/xcode/install.rb#L663

When I explore this resource (by putting my Xcode version and UUID), I cannot see any iOS 15 Simulator listed there (I can find other and they seem to match my xcversion simulators output).

PS. I love xcode-install ❤️ and it takes a crucial place in our tests automation.

rogerluan commented 2 years ago

Interesting - my version of that file includes this entry:

<dict>
            <key>fileSize</key>
            <integer>3259109630</integer>
            <key>identifier</key>
            <string>com.apple.pkg.iPhoneSimulatorSDK$(DOWNLOADABLE_VERSION_MAJOR)_$(DOWNLOADABLE_VERSION_MINOR)</string>
            <key>name</key>
            <string>iOS $(DOWNLOADABLE_VERSION_MAJOR).$(DOWNLOADABLE_VERSION_MINOR) Simulator</string>
            <key>source</key>
            <string>https://devimages-cdn.apple.com/downloads/xcode/simulators/$(DOWNLOADABLE_IDENTIFIER)-$(DOWNLOADABLE_VERSION).dmg</string>
            <key>userInfo</key>
            <dict>
                <key>IconType</key>
                <string>IDEDownloadablesTypeSimulator</string>
                <key>InstallPrefix</key>
                <string>/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS $(DOWNLOADABLE_VERSION_MAJOR).$(DOWNLOADABLE_VERSION_MINOR).simruntime</string>
                <key>InstalledIfAllReceiptsArePresentOrNewer</key>
                <dict>
                    <key>$(DOWNLOADABLE_IDENTIFIER)</key>
                    <string>$(DOWNLOADABLE_VERSION)</string>
                </dict>
                <key>RequiresADCAuthentication</key>
                <false/>
                <key>SortKey</key>
                <string>Xcode.SDK.iPhoneSimulator.15</string>
                <key>Xcode.SDKs</key>
                <array>
                    <dict>
                        <key>CanonicalName</key>
                        <string>iphonesimulator$(DOWNLOADABLE_VERSION_MAJOR).$(DOWNLOADABLE_VERSION_MINOR)</string>
                        <key>Path</key>
                        <string>$(DOWNLOADABLE_INSTALL_PREFIX)/Contents/Resources/RuntimeRoot</string>
                        <key>Platform</key>
                        <string>com.apple.platform.iphonesimulator</string>
                        <key>SupportedDeviceFamilies</key>
                        <array>
                            <integer>1</integer>
                            <integer>2</integer>
                        </array>
                        <key>Version</key>
                        <string>$(DOWNLOADABLE_VERSION_MAJOR).$(DOWNLOADABLE_VERSION_MINOR)</string>
                    </dict>
                </array>
            </dict>
            <key>version</key>
            <string>13.0.1.1571440502</string>
        </dict>

But it's weird, because DOWNLOADABLE_VERSION_MAJOR is replaced with "13" during runtime 🤔 Idk if it's an issue with the contents of that plist, or the strategy has changed drastically, or if I'm getting a different plist than you are... Could you share how you concluded this:

cannot see any iOS 15 Simulator listed there (I can find other and they seem to match my xcversion simulators output).

? 🙏

ncreated commented 2 years ago

Hey @rogerluan 👋. I think I was looking at wrong value (I've been only searching for "<string>15" in this file). When it comes to Xcode.SDK.iPhoneSimulator.15 I can see exactly the same entry as you quoted ☝️. Still, it doesn't list iOS 15 in my xcversion simulators output 🤔 💭 - does it work for you?

rogerluan commented 2 years ago

It doesn't, but I'm not sure whether this is an issue in Xcode 13's .plist (unlikely), or just the fact that that API doesn't return the up-to-date list of simulators. I honestly don't understand how that API work 🤔