2

I have successfully installed braintree ios sdk using cocoapod and It was compiled fine. However, when I initVTClient in my appdelegate.m file. I was getting compiling error:

Undefined symbols for architecture i386:
"OBJCCLASS_$_VTClient", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

and I couldn't find any solutions online at all. any tips?

also submitted an issue here: https://github.com/braintree/braintree_ios/issues/27

Kiddo
  • 5,052
  • 6
  • 47
  • 69

2 Answers2

4

It's possible that you need to put "build settings"->architectures back to "standard architectures" since the old Venmo library (before their big v0 update) was built before the 64bit architecture. That's one solution I've seen.

[EDITED: 2/25/2014, 4:47pm EST]

I got my project to work. The problem for me was that my existing build settings were getting in the way of the build settings that cocoapods wanted to load onto the project. Those are the important ones such as the Venmo Framework, so there's good reason for the issue.

If you go to "build settings" -> "other linker flags", and add a new flag: "$(inherited)", it will work. I put that one at the top of the list so I'd try the same, not sure if order matters. What this does is keeps your old settings / flags, (I was using -ObjC), and imports the new ones from cocoapods. Good luck.

Brian Sachetta
  • 3,319
  • 2
  • 34
  • 45
  • yeah, i tried that as well. seems like it's just not getting the framework from cocoapods. I have emailed their engineers, hope i will hear back from them soon. – Kiddo Feb 25 '14 at 19:08
  • thanks for the update. i will email them as well and post if I hear anything – Brian Sachetta Feb 25 '14 at 19:11
  • I have updated my answers to include the latest. I tried that as well, didn't have much luck – Kiddo Feb 26 '14 at 11:02
0

looks like i need to add VenmoTouch.framework into my target->Link Binary with Libraries. then what's the point of using cocoapods

the official answer: https://github.com/braintree/braintree_ios/issues/27

Make sure you verify which target CocoaPods is integrating with. There are a number of patterns for specifying this, such as target "name" do ... end and link_with.

See here for more details: http://guides.cocoapods.org/syntax/podfile.html#link_with

Kiddo
  • 5,052
  • 6
  • 47
  • 69