Our UI tests are running fine on Xcode 12 / iOS 14 but fail on Xcode 13 iOS 15 when trying to tap on a UITableView cell that's in the list but not currently visible.
Worth noting that tests pass on M1 macs but fail on Intel macs only.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I'm using a library called fishhook to capture calls to __cxa_throw to capture better stack traces for C++ exceptions.
How it works is detailed in the link above, but its starting point is searching for "lazy symbol pointer table" or "non-lazy symbol pointer table" until it reaches the reference for __cxa_throw and replaces it with my implementation.
The problem is that starting iOS 14.5 it doesn't seem to find "lazy symbol pointer table" section in the Mach-O binaries for all system libraries (usually found in 80 out of 500+).
Pre-iOS 14.5:
Image .... /usr/lib/libc++.1.dylib
sect name: __got_weak in __DATA
sect name: __la_weak_ptr in __DATA
sect name: __got in __DATA_CONST
sect name: __la_symbol_ptr in __DATA_CONST
Post-iOS 14.5:
sect name: __got_weak in __DATA
sect name: __data in __DATA
sect name: __bss in __DATA
sect name: __common in __DATA
sect name: __got in __DATA_CONST
sect name: __const in __DATA_CONST
I have a big project, ObjC/Swift, but mostly ObjC, where I'm facing this error "Definition of 'aaa' must be imported from module 'bbb' before it is required"
I couldn't reproduce the same issue in a sample project, and reached a point where I cannot take the project any further until I get to the trigger of this issue.
So I'm looking for more explanation what triggers this issue and what does it prevent/why it exists
--
More Details
I face this build error on incremental builds only, my project setup:
TestFrameworkDynamic (Dynamic framework) --(Linked Binaries)->
TestFrameworkStatic (Static framework) --(LinkedBinaries + Libtool flag)->
TestFramewrokInternal (Static framework)
TestFrameworkDynamic has a product name of TestFramework and there's a public ObjC class called TestFramework
The error is triggered when I do any change in TestFrameworkInternal, I get an error in TestFramework.m while building `TestFrameworkInternal
"Definition of 'TestFramework' must be imported from module 'TestFramework' before it is required"
Worth noting that when I change the import from #import "TestFramework.h" to #import <TestFramework/TestFramework.h> the build fails because of A cycle dependency as now it sees that TestFrameworkInternal depends on TestFrameworkDynamic