There's a piece of code called CBDynamicallyLoadedDependencies
that calls dlopen()
on the appropriate system library before making the function or method call.
My original answer wasn't correct. the dlopen()
call is just in the x86 code. On the device, it's something different, but my ARM assembly isn't strong enough to figure it out. All I can say is that there's a piece of code that's acting as a trampoline to the desired functions and that references the system library files (like /System/Library/Frameworks/AdSupport.framework/AdSupport).
But the point is that it's not a simple project trick that makes it work normally. There's internal code involved.