Blog

SwiftyDropbox crashes in Swift 4.2


After installing Xcode 10 yesterday, I started migrating some libraries to Swift 4.2. While most migrations were painless, one failed, since it depends on SwiftyDropbox which doesn’t support Swift 4.2.

Adding SwiftyDropbox to the library makes it compile, but the code then crashes at runtime instead, with the following error:

dyld: Symbol not found: _$S8Dispatch0A3QoSV0B6SClassO7utilityyA2EmFWC
  Referenced from: /Users/admin/Library/Developer/CoreSimulator/Devices/69F0BD96-7BB8-4B29-BE96-A423BA2FBD3C/data/Containers/Bundle/Application/CAAB9A58-4F89-4C85-BCDA-8ECF22D11731/VandelayExample.app/Frameworks/Alamofire.framework/Alamofire
  Expected in: /Users/admin/Library/Developer/CoreSimulator/Devices/69F0BD96-7BB8-4B29-BE96-A423BA2FBD3C/data/Containers/Bundle/Application/CAAB9A58-4F89-4C85-BCDA-8ECF22D11731/VandelayExample.app/Frameworks/libswiftDispatch.dylib
 in /Users/admin/Library/Developer/CoreSimulator/Devices/69F0BD96-7BB8-4B29-BE96-A423BA2FBD3C/data/Containers/Bundle/Application/CAAB9A58-4F89-4C85-BCDA-8ECF22D11731/VandelayExample.app/Frameworks/Alamofire.framework/Alamofire
(lldb) 

If we look at this error, we can see that it’s not caused by SwiftyDropbox, but rather that is uses an old version of Alamofire. 4.5.0 to be exact.

You can solve this by adding a later version of Alamofire to your Cartfile or Podfile. So instead of having this in my Cartfile:

github "dropbox/SwiftyDropbox" ~> 4.6.0

I now have this:

github "dropbox/SwiftyDropbox" ~> 4.6.0
github "Alamofire/Alamofire" ~> 4.7.0

This is just a temporary fix until SwiftyDropbox updates its Alamofire dependency, which hopefully will not take too long.