Cocoapods: Undefined symbols for architecture x86_64: on Xcode 7.3

Created on 22 Mar 2016  Â·  8Comments  Â·  Source: CocoaPods/CocoaPods

After upgrading to Xcode 7.3, I have encountered these errors during linking:

Undefined symbols for architecture x86_64:
  "Alamofire.upload (Alamofire.URLRequestConvertible, multipartFormData : (Alamofire.MultipartFormData) -> (), encodingMemoryThreshold : Swift.UInt64, encodingCompletion : (Alamofire.Manager.MultipartFormDataEncodingResult) -> ()?) -> ()", referenced from:

...
"SwiftyUserDefaults.DefaultsKey.__allocating_init (Swift.String) -> SwiftyUserDefaults.DefaultsKey<A>", referenced from:
...
"Alamofire.Request.responseJSON (options : __C.NSJSONReadingOptions, completionHandler : (Alamofire.Response<Swift.AnyObject, __ObjC.NSError>) -> ()) -> Self", referenced from:

for Alamofire and a number of other Pods.

I have tried cleaning, doing pod update, removing caches/the Pod directory, Podfile.lock, the xcworkspace, etc., and rebuilding, and it does not resolve. Everything built fine on Xcode 7.2.1.

I can still compile for a device though, just not in the simulator.

Most helpful comment

This just happened to me, removing derived data fixed it. I had just updated to Xcode 7.3 - so is likely that update..

For future people hitting the same problem, my errors looked like this:
screen shot 2016-04-03 at 23 34 05

All 8 comments

So Alamofire says their library isn't working yet with Swift 2.2. So I guess the next issue is: perhaps CocoaPods should have support in the spec for what versions of Swift a library works with?

I'm running Xcode 7.3 with Alamofire and got no problems, but I have a problem with sqlite3 running on the simulator.

It has something to do with the .modulemap file. If you want to run sqlite3 on the simulator you need to link against the iPhoneSimulator.sdk not iPhoneOS.sdk header files.

module sqlite3 [system] {
    header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/sqlite3.h"
    //header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/sqlite3.h"
    link "sqlite3"
    export *
}

Now I can compile for the simulator but not for the device…

@mRs- I think you can make a separate modulemap file for the different architectures

So I figured out that if I run a pod update and then I compile again, I get this error. It only goes away if I blow away my derived data. That seems like a regression because I've run pod update lots of times without this problem.

Deleting derived data is always a good idea when changing dependencies if you experience issues, and if it fixes things it sounds like an Xcode caching issue to me.

This just happened to me, removing derived data fixed it. I had just updated to Xcode 7.3 - so is likely that update..

For future people hitting the same problem, my errors looked like this:
screen shot 2016-04-03 at 23 34 05

In xcode8.0, swift2.3 removing derived data fixed it

Was this page helpful?
0 / 5 - 0 ratings

Related issues

marzapower picture marzapower  Â·  3Comments

dawnnnnn picture dawnnnnn  Â·  3Comments

lzwjava picture lzwjava  Â·  3Comments

iosdev-republicofapps picture iosdev-republicofapps  Â·  3Comments

Curtis-Halbrook picture Curtis-Halbrook  Â·  3Comments