BranchMetrics/ios-branch-deep-linking-attribution

Branch SDK v1.42-1.43.2 causes crash on launch for iOS 10-12 even with LinkPresentation optionally linked

AlexGingell opened this issue · 9 comments

Branch SDK v1.42 - 1.43 causes crash on launch for iOS 10-12 with:

dyld: Library not loaded: /System/Library/Frameworks/LinkPresentation.framework/LinkPresentation
  Referenced from: /Users/Hiro/Library/Developer/Xcode/DerivedData/REDACTED-fhchuwfdawvhjigaguzjpsyrsory/Build/Products/Debug-iphonesimulator/Branch.framework/Branch
  Reason: image not found
dyld: launch, loading dependent libraries
DYLD_FRAMEWORK_PATH=/Users/Hiro/Library/Developer/Xcode/DerivedData/REDACTED-fhchuwfdawvhjigaguzjpsyrsory/Build/Products/Debug-iphonesimulator
DYLD_FALLBACK_LIBRARY_PATH=/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib
DYLD_ROOT_PATH=/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot
DYLD_FALLBACK_FRAMEWORK_PATH=/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks
DYLD_INSERT_LIBRARIES=/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libBacktraceRecording.dylib:/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libMainThreadChecker.dylib:/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/Developer/Library/PrivateFrame

Ours is a manual integration. Note that the LinkPresentation framework has been added to Link Binary With Libraries with the 'Optional' status. LinkPresentation is only available from iOS 13.

We note a similar issue here:
fluttercommunity/plus_plugins#222
which was fixed as follows:
fluttercommunity/plus_plugins#224

Is it possible the Branch SDK is strongly requiring a framework which should be weakly required because it is not available on iOS 10-12 ?

We've downgraded to v1.41.0 for now - this works fine. We note that 1.44 now requires iOS 11, and have not tested it as we support iOS 10+.

Steps to reproduce

  1. Integrate Branch v1.41 - 1.43
  2. Link the LinkPresentation framework optionally.
  3. Run on simulator or device iOS 10-12.

Expected behavior

The LinkPresentation framework should not be required on iOS 10 - 12 and Branch should launch and operate normally, omitting LinkPresentation functionality gracefully.

SDK Version

1.42.0 - 1.43.2

XCode Version

13.4.1

Device

All

OS

10-12

Additional Information/Context

No response

Sorry for the delay. This was a confusing documentation issue. Basically, the framework should be marked optional in xcode.

Sorry for the delay. This was a confusing documentation issue. Basically, the framework should be marked optional in xcode.

As stated in my original post, I did have the LinkPresentation framework marked optional in Xcode's linking options. This does not prevent the crashing issue.

@AlexGingell
Ah yea, I totally overlooked that detail. So it looks like it's an issue with the pre-built SDK library, as the error does not occur with other integration methods. Creating a ticket for this internally.