Posts

Post not yet marked as solved
0 Replies
1.3k Views
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
Posted
by yhamza.
Last updated
.
Post not yet marked as solved
0 Replies
538 Views
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.
Posted
by yhamza.
Last updated
.
Post marked as solved
1 Replies
1.2k Views
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
Posted
by yhamza.
Last updated
.