Our app supports iOS12 as the minimum OS and we embed a framework with iOS15 minimum support. Naturally we weak-link it and use #available(iOS 15, ) to guard accesses to its symbols.
On iOS12.5.7 the framework is completely ignored and the app works fine. On iOS13.3.1 however we get to see this error:
Termination Description: DYLD, dependent dylib '/System/Library/Frameworks/AVFAudio.framework/AVFAudio' not found for '/private/var/containers/Bundle/Application/08DA2D93-4DC2-4523-98AF-FD52884989AE/<OUR_APP>.app/Frameworks/<FRAMEWORK>.framework/<FRAMEWORK>', tried but didn't find: '/System/Library/Frameworks/AVFAudio.framework/AVFAudio' '/System/Library/Frameworks/AVFAudio.framework/AVFAudio'
<FRAMEWORK> has a dependency on AVFAudio
which is available only since iOS 14.5 so it makes sense it wouldn;t be able to find it but what's bothering us is why does dyld
even try loading the <FRAMEWORK>'s dependencies instead of just ignoring it?
Could this be a bug on 13.3.1? Unfortunately at this time we don't have other iOS13 phones to test with.
The 'LC_BUILD_VERSION' command sure enough seems valid::
Load command 10 cmd LC_BUILD_VERSION cmdsize 32 platform 2 minos 15.0 sdk 17.0 ntools 1 tool 3 version 1015.7