Objective-C runtime differs in PCH file and SwiftShims errors in macOS Catalina 10.15.6, Xcode 11.6, Mac Catalyst app
This occurs when your iOS target is 13.5, adjusting it upwards or downwards in your app target's General > Deployment Info setting will resolve the issue.
Change from this (which generates error):
To this (i.e. a number higher or lower) than iOS 13.5:
I don't know why this happens but it reliably solves the issue and when changed back to iOS 13.5 the crash happens again.
error: target Objective-C runtime differs in PCH file vs. current file
After capturing Xcode's full command-line, I noticed that it had -x objective-c
flag while my CMake had not!
After searching (about how CMake support's Obj-C),
found actual mistake!
1. Basically, CMake needed me to do something like:
project(MyProject C CXX OBJC OBJCXX)
Instead of:
project(MyProject)
2. Also, should add Obj-C flags into CMAKE_OBJC_FLAGS
instead of CMAKE_C_LINK_FLAGS
variable.
3. Now CMake automaticaly adds missing -x objective-c
flag, and I just need to add my custom flags.
Full Xcode command-line:
-x objective-c -target x86_64-apple-ios13.6-macabi -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/admin/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/admin/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -fmodule-name=MyProject -fapplication-extension -fpascal-strings -O0 -fno-common -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -fasm-blocks -fstrict-aliasing -g -fprofile-instr-generate -fcoverage-mapping -index-store-path /MyBuildDir/Index/DataStore -iquote /MyBuildDir-cofig/MyProject-generated-files.hmap -I/MyBuildDir-cofig/MyProject-own-target-headers.hmap -I/MyBuildDir-cofig/MyProject-all-non-framework-target-headers.hmap -ivfsoverlay /MyBuildDir-cofig/all-product-headers.yaml -iquote /MyBuildDir-cofig/MyProject-project-headers.hmap -I/MyProductDir/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/iOSSupport/usr/include -I/MyBuildDir-cofig/DerivedSources-normal/x86_64 -I/MyBuildDir-cofig/DerivedSources/x86_64 -I/MyBuildDir-cofig/DerivedSources -F/MyProductDir -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/iOSSupport/System/Library/Frameworks -MMD -MT dependencies -MF /MyBuildDir-cofig/Objects-normal/x86_64/my-source.d --serialize-diagnostics /MyBuildDir-cofig/Objects-normal/x86_64/my-source.dia -c /Users/admin/my-project/my-source.m -o /MyBuildDir-cofig/Objects-normal/x86_64/my-source.o
Note that I replaced paths to shorten above, like:
MyBuildDir => /Users/admin/Library/Developer/Xcode/DerivedData/MyProject-gczfeuobxydqjrfbdhwzpqjsseyr
MyBuildDir-config => /Users/admin/Library/Developer/Xcode/DerivedData/MyProject-gczfeuobxydqjrfbdhwzpqjsseyr/Build/Intermediates.noindex/MyProject.build/Debug-maccatalyst/MyProject.build/
MyProductDir => /Users/admin/Library/Developer/Xcode/DerivedData/MyProject-gczfeuobxydqjrfbdhwzpqjsseyr/Build/Products/Debug-maccatalyst
file has been modified since the precompiled header was built
Deleting ~/Library/Developer/Xcode and restarting Xcode fixed this for me (Xcode 6 B7). Suspect an aggressive caching bug. Warning! This deletes archives from all your projects.
No amount of cleaning / build folder cleaning / derived data deleting helped before that.
Related Topics
Swift Xcode 7 Beta 5 Type Cannot Refer to Itself as a Requirement
Swift 4 "Extra Argument in Call" Rxswift
Sound for Scene Transition, That Doesn't Stutter
How to Convert String to Date Without Time in Swift 3
Swiftui Vertically Misaligned Text
How to Build a Recursive Function in Swift to Return a String
How to Stretch a View to Its Parent Frame with Swiftui
Kvo Listener Issues in Swift 4
How to Reconnect Akplayer and Akmixer After Audiokit.Stop()
Problem with Swiftui and Foreach on Xcode Playground
Can't Dismiss View Controller That's Embedded in a Navigation Controller
Dictionary Becomes Nil When Trying to Pass Back Cllocation Object to iOS App Extension
Scenekit Ar Game Fps Getting Low and The Device Getting Hot with Use