ios – 将cocoapod依赖项添加到cocoa touch框架中

ios – 将cocoapod依赖项添加到cocoa touch框架中,第1张

概述我正在尝试研究如何将 cocoa pod依赖添加到具有嵌入式可可触摸框架的iOS应用程序中.我的podfile设置如下: link_with [‘TestApp’, ‘TestAppFramework’]platform :ios, '8.0'source 'https://github.com/CocoaPods/Specs.git'pod 'google-plus-ios-sdk', 我正在尝试研究如何将 cocoa pod依赖项添加到具有嵌入式可可触摸框架的iOS应用程序中.我的podfile设置如下:
link_with [‘TestApp’,‘TestAppFramework’]platform :ios,'8.0'source 'https://github.com/CocoaPods/Specs.git'pod 'Google-plus-ios-sdk','~> 1.7'

然后我按照这里的说明添加一个带有登录按钮的视图控制器:

https://developers.google.com/+/mobile/ios/sign-in

一切都没有问题.如果我然后运行应用程序,它将启动并显示一个谷歌加登录按钮,但我收到很多关于在两个地方定义谷歌类的警告,例如:

objc[6727]: Class GPPSignIn is implemented in both /Users/jamesburke/library/Developer/Xcode/DerivedData/TestApp-eiqrhcijoqplxgaoodgtwzncvhjk/Build/Products/DeBUG-iphonesimulator/TestAppFramework.framework/TestAppFramework and /Users/jamesburke/library/Developer/CoreSimulator/Devices/730A1805-D46F-4D11-9F9E-DA37C1147F9A/data/Containers/Bundle/Application/EB7EE52A-7FB6-45CE-81B4-1E9A45875E69/TestApp.app/TestApp. One of the two will be used. Which one is undefined.

如果我然后单击登录按钮,我会收到一条错误消息,说我没有设置谷歌客户端ID – 我有,但因为GPPSignIn类依赖于共享实例,所以看起来重复的类混淆了一些事情:

2014-11-24 20:54:25.557 TestApp[6727:155282] *** Terminating app due to uncaught exception ‘NSinvalidargumentexception’,reason: ‘You must specify |clIEntID| for |GPPSignIn|’

查看堆栈跟踪,我们从TestApp范围转换到TestAppFramework,尽管此时框架中没有代码

…3   TestAppFramework                    0x000000010c7f1a9c -[GPPSignIn assertValIDParameters] + 774   TestAppFramework                    0x000000010c7f35e7 -[GPPSignIn authenticateMaybeInteractively:withParams:] + 1185   TestAppFramework                    0x000000010c7f5ac8 -[GPPSignInbutton buttonpressed] + 1646   UIKit                               0x000000010b4c38be -[UIApplication sendAction:to:from:forEvent:] + 75…19  UIKit                               0x000000010b4c2420 UIApplicationMain + 128220  TestApp                             0x000000010a25e9f3 main + 115

我用其他一些可可豆荚来解决这个问题,例如mailcore2-ios,但其他一些豆荚似乎没有提出相同的警告.

有没有办法设置我的podfile,以便我的框架和我的应用程序可以访问相同的依赖项,但没有在运行时发生冲突?或者我不应该像这样设置我的依赖项?

解决方法 link_with应该用于(纠正我,如果我错了)链接同一项目中的目标.您所描述的是嵌入式框架(这是一个单独的项目).

您真正想要做的是将依赖项添加到嵌入式框架,如:

source 'https://github.com/CocoaPods/Specs.git'workspace 'TestApp.xcworkspace'def import_pods    pod 'Google-plus-ios-sdk','~> 1.7'endtarget : TestAppFramework do    xcodeproj 'TestAppFramework.xcodeproj'    platform :ios,'8.0'    link_with 'TestAppFramework','TestAppFrameworkTests'    import_podsendtarget : TestApp do    xcodeproj 'TestApp.xcodeproj'    platform :ios,'8.0'    link_with 'TestApp','TestAppTests'    import_podsend

这个例子将Google sdk添加到两个项目(并链接到他们的测试目标),也许你只需要在嵌入式框架中.

总结

以上是内存溢出为你收集整理的ios – 将cocoapod依赖项添加到cocoa touch框架中全部内容,希望文章能够帮你解决ios – 将cocoapod依赖项添加到cocoa touch框架中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1102810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存