I'm also seeing this issue, but for me I suspect it's related to the fact a 'release' iOS and watchOS Simulator builds i386 and x86_64 'Strip' phase output the following error:
ld: warning: building for iOS, but linking in object file (/tmp/strip.RgFyCE) built for iOS Simulator
Then when linking I get the 'type metadata for Swift.StringObject.Variant' error.
Neither the Strip warnings or linking error occur when doing a 'debug' build (because Strip doesn't get called in debug builds).
Feedback: #FB7750733
Post
Replies
Boosts
Views
Activity
For my error #FB7750733 this is completely fresh build of my own library with Xcode 12, I don't use carthage or cocoapods.
Probably the easiest method would be to have another duplicate target. e.g. WeatherSimulator, WeatherDevice. Keep the app targets in sync, except for the link frameworks. The Simulator build won't have the framework. The device build will include the framework.
Another option, perhaps, in your current setup (one target) might be to have the framework weakly linked. Add a Run Script phase to remove the framework on the Simulator. Not sure this will work, but worthy of a try.
No it's not possible to have a "Device+Release and Device+Debug" in one framework.
You can have "Device+Release and Simulator+Debug" OR "Device+Debug and Simulator+Debug" in one framework.
P.S.: The now recommended method distributing frameworks is to use an XCFramework.
https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment
int processIsTranslated() {
int ret = 0;
sizet size = sizeof(ret);
if (sysctlbyname("sysctl.proctranslated", &ret, &size, NULL, 0) == -1)
{
if (errno == ENOENT)
return 0;
return -1;
}
return ret;
}
Yep all sorts of weird rendering issues going on with the Simulator (I'm using iPhone 12 mini).
Half drawn table cells.
Pixels missing from top of navigation bar titles.
Cut & Paste missing square chunks from corners.
Text fields missing top half, only showing bottom half.
Seems incredibly buggy for a RC.