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
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
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.
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