Use macos-12 runner and Xcode 13.1 when building iOS targets #55
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why:
It fixes https://youtrack.jetbrains.com/issue/CMP-6721
Previous skia-ios binaries (m116) were built using macos-11 agent, and they are not available anymore.
Since we ingtegrated m126, we switched to macos-13. macos version determines the default Xcode version used to build.
Downgrading the Xcode version is not a perfect solution, since it's not future-proof. But for the purpose of CM 1.7 release we better use this option.
Xcode 13.1 is not available in macos-13, so we downgrade to macos-12 for ios builds
How to reproduce in skiko:
xcodegen
skiko/samples/SkiaMultiplatformSampleThen change the skia version to
dependencies.skia=m126-d2aaacc35d-3
(it's a test-only skia build, which used Xcode 13 for skia-iosSim build), clean the project, rerun the tasks. The apps works now.Investigation:
The sample also works when we build skia (using Xcode 15) with all optimizations disabled -
-O0
instead of '-O3' (O1 and O2 don't help). Therefore we concluded that newer Xcode version (and thus clang) makes some optimizations incompatible with ios15 simulator (real devices were not affected).Future considerations:
In the future, GitHub actions will drop Xcode 13 support (it depends on the MacOs version). And we won't be able to use the older version. In that case we might consider building skia-iosSim binaries with optimizations disabled (
-O0
).UPD: we have a report that a real device was affected too: https://youtrack.jetbrains.com/issue/CMP-6721/Compose-MP-crash-on-iOS-15-simulator#focus=Comments-27-10740045.0-0
So some of the above considerations (about disabling optimizations just for simulatoes) can't be applied.