3

在我正在开发的应用程序中(使用 Xcode 6.1,适用于 iOS 7 和 8),我使用Card IO来捕获信用卡信息并使用Braintree作为付款方式。当我包含Card IO iOS SDK以及由 Cocoapods 导入的Braintree iOS SDK时出现问题,我收到错误:

重复符号 _OBJC_CLASS_$_CardIOCreditCardInfo 在:/MyApp/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a(libCardIO.a-armv7-master .o) 重复符号 _OBJC_CLASS_$_CardIOPaymentViewController 在:/MyApp/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a(libCardIO.a- armv7-master.o) 重复符号 _OBJC_CLASS_$_CardIOView 在:/MyApp/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a(libCardIO.a -armv7-master.o) 重复符号 _OBJC_METACLASS_$_CardIOCreditCardInfo 在:/MyApp/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a( libCardIO.a-armv7-master。o) 重复符号 _OBJC_METACLASS_$_CardIOPaymentViewController 在:/MyApp/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a(libCardIO.a-armv7 -master.o) 重复符号 _OBJC_METACLASS_$_CardIOView 在:/MyApp/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a(libCardIO. a-armv7-master.o) ld:架构 armv7 clang 的 6 个重复符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)/MyApp/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a(libCardIO.a-armv7-master.o) ld:6 个重复架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)/MyApp/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile.a(libCardIO.a-armv7-master.o) /MyApp/CardIO/libCardIO.a(libCardIO.a-armv7-master.o) ld:6 个重复架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

原来 Braintree 包含 Paypay SDK,其中已经包含 CardIO 的库。

我已经尝试1)删除(删除引用)CardIO文件夹中的libCardIO.a,APP可以构建和运行,但是CardIO的视图控制器和相机无法正常打开。
2)从 Braintree 中删除(删除参考)Paypal 文件夹,得到以下错误。

架构 armv7 的未定义符号:
“_OBJC_CLASS_$_BTPayPalButton”,引用自:libPods-Vinyo-2-Braintree.a(Braintree.o) 中的 objc-class-ref,引用自:objc-class-ref in libPods-Vinyo-2-Braintree.a(BTPaymentProvider.o)
"_OBJC_CLASS_$_BTPayPalAppSwitchHandler",引用自:libPods-Vinyo-2-Braintree.a(BTPaymentProvider.o) 中的objc-class-ref libPods 中的objc-class-ref -Vinyo-2-Braintree.a(Braintree.o) ld:未找到架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

寻找一种可行且安全的方法来正确集成这两个 SDK 并使其工作。任何想法表示赞赏!先感谢您!

4

1 回答 1

3

来自card.io的戴夫在这里。

你的第一种方法是正确的。根据您迄今为止提供的信息,我不确定为什么它对您不起作用。

有关一些具体建议,请参阅https://github.com/braintree/braintree_ios/issues/53#issuecomment-58379403

(再过一两周,这应该会变得更容易,因为正确的 card.io 标头将包含在 Braintree iOS SDK 中。)

于 2014-10-24T16:40:22.127 回答