Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Xcode 12 beta 6 from MacOS Catalina image in favor of Xcode 12.2 beta 1 on October 13 #1646

Closed
maxim-lobanov opened this issue Sep 22, 2020 · 2 comments

Comments

@maxim-lobanov
Copy link
Contributor

Hello everyone,

Currently, our images contain Xcode 12 GM, Xcode 12 beta 6 and Xcode 12.2 beta 1.
Usually, we don't install a few versions of the single Xcode but we had to keep both Xcode 12 GM and Xcode 12 beta 6 side by side because Xcode 12 GM release does not have Big Sur SDK support but Xcode 12 beta 6 has. Please find more details in related issue.

Recently, Xcode 12.2 beta 1 was added to MacOS Catalina. Xcode 12.2 beta 1 has support of Big Sur SDK so it doesn't make sense to keep Xcode 12 beta 6 on image. We are going to remove it from images on October 13.

Please let us know if you have any objections.

@eseay
Copy link

eseay commented Sep 22, 2020

@maxim-lobanov Strange as this may be, I would actually like to request that you keep Xcode 12b6 on the VMs - or, at least I'd like to see if you'd be able to collaborate on an alternative solution to the problem at hand.

Apps using CoreNFC are unable to launch on an iOS 14 simulator when run from Xcode 12 GM because it seems that the CoreSimulator packaged with that version does not include a required dynamic library. Launching the app on the simulator works fine on Xcode 12b6, however. Below are three links referring to the issue:

In order to work around this, I am following this answer on StackOverflow and copying the specified dylib from the Xcode_12_beta bundle installed on your VMs to the Xcode_12 bundle. After doing so, my unit tests are able to execute. The problem with this though is that it does not appear that the dylib required for this workaround exists in the current Xcode 12.2 beta.

This issue does not, however, occur when running the app compiled with Xcode 12 GM against an iOS 13.x simulator. I have been using the iPhone 11 Pro (13.5) for debugging/testing locally on my simulator, and it's been working fine. So, with that said, would you be willing to entertain either of the two options?

  • Keep Xcode 12b6 on the VMs so that the workaround noted in the StackOverflow answer can be executed
  • Add the iOS 13.x simulator runtime for Xcode 12 to allow users to use simctl to create simulators that will run unit tests

Let me know what you think! Thanks

@maxim-lobanov
Copy link
Contributor Author

Hello @eseay ,
Thank you for raising your problem.

I think it makes sense to share motivation of this decision:
Currently, Xcode is hugest tool that we install on MacOS image and currently we have 13 Xcode versions installed. It is always a pain for us to add new Xcode when it is released because it directly affects image-generation, promotion and VM updating time. As a result, the total time of image deployment is increased. Image deployment time is important to us because customers are expecting new tools / versions are added / updated asap (especially new Xcode versions).
Also there are some indirect problems like maintenance problems, CI speed and etc.

Usually, we follow strategy to keep the latest release of every Xcode: install latest beta and replace beta with stable version when it is released. We understand that sometimes new beta versions introduce breaking changes but unfortunately, we can't do much as I mentioned above. We had to do exclusion from this process when Xcode 12 GM was released because Apple has removed MacOS 11 SDK support in this Xcode release. It is critical breaking change and customers could lost ability to build for new MacOS. We have decided to keep Xcode 12 beta 6 on image until next Xcode with MacOS 11 SDK is released and Apple has returned this support in Xcode 12.2 back.

As for the issue that you mentioned above, we are expecting the stable version of Xcode 12.2 is released next few weeks and it is the reason why we have defined 3 weeks as Xcode 12.0 beta 6 deprecation date.
If your issue is not fixed in stable release of Xcode 12.2, probably, it is not something that is going to be fixed in future. Anyway, I think this library can be uploaded somewhere and just downloaded in runtime as a first step of the build as a workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants