I upgrade my application from Crashlytics to Fabric. I do the instruction from the fabric application to upgrade my code in XCode. But when I reach the step for do run the application, the application got error Undefined symbols for architecture i386 when I run on simulator and Undefined symbols for architecture arm64 when I run on the iPhone 5s. So, what should I do to fix this?
1 Answers
I've run into a similar issue this evening. I don't really need Crashlytics either, just Fabric/Twitter. I'm using the latest iOS downloads/SDK from the Fabric/Twitter dev site.
After using the Fabric app to install the Fabric/Twitter SDK in my XCode project I got that same "Undefined symbols for architecture arm64" error upon run/compile.
I found the fix to be installing Crashlytics first (whether you need it or not), going through all the steps etc., then going back in the Fabric.app and installing Fabric/Twitter next for my project.
Crashlytics installed a few extra libraries and I'm suspecting one of them (libc++.dylib ?) might have resolved the issue? My guess is there's a bug in the automatic Fabric.app installation i.e. if you only install the Fabric/Twitter (v1.8) SDK alone w/o Crashlytics there is a library or libraries missing which result in that run/compile arm64 error.
In summary, the fix for me (and what finally got my app to successfully compile w/o failing the arm64 error) was to install Crashlytics first and then Fabric.Twitter, whether I need Crashlytics or not.

- 171
- 1
- 9
-
PS I just found this link too: http://support.crashlytics.com/knowledgebase/articles/617277-how-do-i-fix-linker-errors-when-adding-fabric The info at that link seems to confirm (?) that libc++.dylib and libz.dylib do also need to be included w/ Fabric installs (and aren't automatically added by just selecting the Twitter SDK and omitting Crashyltics). I'd have preferred a manual installation process rather than that automatic install XCode companion Fabric.app. – Joe Rosen Jun 28 '15 at 08:34
-
It looks as if the missing library theory was close, it seems that Fabric-Crashlytics adds the Security.framework library and electing to install Fabric-Twitter alone does not. I manually added Security.framework to my project and then (via the Fabric.app) added Fabric-Twitter and the project then compiled w/o the previous arm64 error. I double checked this by again removing Security.framework and the error returned. I still suspect a bug in the Fabric.app's auto-installation that's omitting the Security.framework when a developer chooses not to include Crashlytics, – Joe Rosen Jun 28 '15 at 09:15