1
votes

I've been getting reports of my app crashing on load in iOS 6. It's built with the iOS 8 SDK and works fine on 7 & 8. I've just managed to get hold of an iOS 6 device to test and it does in fact crash on launch with the error:

dyld: Symbol not found: _UITransitionContextFromViewControllerKey
Referenced from: /var/mobile/Applications/895BC1B3-A362-42C9-8560-5CF40A682A10/myapp.app/MyApp Expected in: /System/Library/Frameworks/UIKit.framework/UIKit in /var/mobile/Applications/895BC1B3-A362-42C9-8560-5CF40A682A10/myapp.app/MyApp

I understand that dyld is a linker problem, but have no idea where to start with this. I've unlinked and re-added UIKit, but still doesn't work.

Thanks

2

2 Answers

1
votes

This is because UITransitionContextFromViewControllerKey doesn't exist until iOS 7. Working around this probably isn't worth the effort--it means dropping all usage of UIViewControllerContextTransitioning, as the protocol is new in iOS 7, or creating a separate code path for iOS 6. If that's what you want, look into weak-linking UIKit, although this may result in slow startup.

0
votes

Look like your using UIViewControllerContextTransitioning. It's available only on iOS 7+.

See this question for more details Restore pre-iOS7 UINavigationController pushViewController animation