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

2024-01-12

我正在尝试研究如何将 cocoa pod 依赖项添加到具有嵌入式 cocoa touch 框架的 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 https://developers.google.com/+/mobile/ios/sign-in

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

objc[6727]:类 GPPSignIn 在 /Users/jamesburke/Library/Developer/Xcode/DerivedData/TestApp-eiqrhcijoqplxgaoodgtwzncvhjk/Build/Products/Debug-iphonesimulator/TestAppFramework.framework/TestAppFramework 和 /Users/jamesburke/Library/Developer 中实现/CoreSimulator/Devices/730A1805-D46F-4D11-9F9E-DA37C1147F9A/data/Containers/Bundle/Application/EB7EE52A-7FB6-45CE-81B4-1E9A45875E69/TestApp.app/TestApp。将使用两者之一。哪一个是未定义的。

如果我单击登录按钮,则会收到一条错误消息,指出我尚未设置 google 客户端 ID(我已经设置了),但由于 GPPSignIn 类依赖于共享实例,因此重复的类看起来有些混乱:

2014-11-24 20:54:25.557 TestApp[6727:155282] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“您必须指定 |clientID|”对于 |GPPSignIn|'

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

…
3   TestAppFramework                    0x000000010c7f1a9c -[GPPSignIn assertValidParameters] + 77
4   TestAppFramework                    0x000000010c7f35e7 -[GPPSignIn authenticateMaybeInteractively:withParams:] + 118
5   TestAppFramework                    0x000000010c7f5ac8 -[GPPSignInButton buttonPressed] + 164
6   UIKit                               0x000000010b4c38be -[UIApplication sendAction:to:from:forEvent:] + 75
…
19  UIKit                               0x000000010b4c2420 UIApplicationMain + 1282
20  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'
end

target : TestAppFramework do
    xcodeproj 'TestAppFramework.xcodeproj'
    platform :ios, '8.0'
    link_with 'TestAppFramework', 'TestAppFrameworkTests'
    import_pods
end

target : TestApp do
    xcodeproj 'TestApp.xcodeproj'
    platform :ios, '8.0'
    link_with 'TestApp', 'TestAppTests'
    import_pods
end

此示例将 google sdk 添加到两个项目(并链接到它们的测试目标),也许您只在嵌入式框架中需要它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 cocoapod 依赖项添加到 cocoa touch 框架 的相关文章

  • searchDisplayController 在 iOS 8 中已弃用

    如何更正以下内容以免出现警告 我缺少什么 修正时searchResultsController to searchController它给了我一个错误 找不到对象 if tableView self searchDisplayControl
  • 符号化 iPad 崩溃日志后回溯仍然不可读

    我有这些崩溃日志 在我将它们放入管理器中后 会自动进行符号化 但结果始终相同 iOS 调用得到符号化 而我的应用程序调用则没有 我尝试将 Dym 和应用程序文件复制到同一文件夹中 删除并再次复制回来 没有任何帮助 知道发生了什么事吗 所以我
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • 自定义信息窗口上的按钮未接收 ios 中的操作

    我在 iOS 应用程序中使用 Google 地图 并实现了一个自定义信息窗口来显示标记的标题 现在 我在该自定义信息窗口上添加了一个按钮 但我的问题是按钮操作方法没有被调用 自定义信息窗口 h import
  • 在 Pages 文稿中打开文本—Swift

    在我的 Swift 2 应用程序中 用户通过文本字段创建一串文本 然后将其共享给另一个应用程序 现在 我只能将文本共享为 txt 文件 这不提供选项Open In Pages当我打开系统共享对话框时 如何才能让用户可以选择将输入的文本作为
  • Swift:如何让游戏中的角色只有落地后才能跳跃?

    我正在开发一款游戏 我的角色可以从一个陆地跳到另一个陆地 我已经把所有事情都做好了 除了我剩下的问题是 如果你继续点击屏幕 他可以永远跳跃 我希望他必须先落地才能再次跳跃 import SpriteKit import GameplayKi
  • 如何将 .ipa 转换为 .app 文件?

    每个人 我有一些 ipa 文件 想要转换为包含 app 包的存档文件 我试图这样做 但我没有办法 有什么办法可以做到这一点吗 请帮我 将 ipa 重命名为 zip 然后提取即可
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • iOS绘图3D图形库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在搜索一个可以帮助我绘制 3D 图表的库 我想要类似的东西这一页 http www math uri edu bkaskosz fla
  • iOS 有 INTERNET 权限吗?

    我在 iOS 设备上的 flutter dio 包上遇到了一个奇怪的问题 我编写了一个向 url 发送 GET 请求的应用程序 Android 上一切正常 但 iOS 上的请求似乎无法通过 没有发生任何错误 什么也没有 我在 Android
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • AdMob 和 DFP 广告联盟之间的区别?

    我正在尝试在我的 iOS 应用程序上显示横幅广告和插页式广告 但现在我对广告网络感到困惑 AdMob 与 DFP 有何不同 哪一种更适合投放广告 有人可以提供帮助吗 提前致谢 AdMob 是一个广告网络 作为发布商 您可以通过展示从网络投放
  • Swift - 保存在 TableView 中选择的复选标记

    我对 Swift 相当陌生 并且在 TableView 多重选择方面遇到问题 我有多个选择 可以用复选标记进行检查 类似于待办事项列表 当我检查项目时 我希望能够返回 ListView 并保存我的选择 我假设将其保持在已保存状态的代码将位于
  • 如何从第二个视图弹回到根视图?

    我使用 2 将 3 个视图 根视图 第 1 个视图 第 2 个视图 连接在一起modal在 Apple Watch 故事板中继续 1 在根视图中 按下 保存 按钮后 将显示第一个模态视图 2 在第一模态视图中 一旦按下 500 按钮 将显示
  • 如何检测 UITableView 中某个单元格的双击?

    如何检测某个单元格上的双击UITableView i e 如果用户进行了一次触摸 我想执行一个操作 如果用户进行了两次触摸 我想执行另一个操作 我还需要知道进行触摸的索引路径 我怎样才能实现这个目标 Thanks 如果您不想创建子类UITa
  • 如何制作像 Facebook 应用程序一样的登录屏幕?

    如何制作像 Facebook 应用程序一样带有 电子邮件 和 密码 文本字段的登录屏幕 Facebook登入 http extdesenv com wp content uploads 2012 05 facebook login ios

随机推荐

  • 避免 kubernetes 调度程序在 kubernetes 集群的单个节点上运行所有 pod

    我有一个 Kubernetes 集群 有 4 个节点和 1 个主节点 我正在尝试在所有节点中运行 5 个 nginx pod 目前 调度程序有时在一台机器上运行所有 Pod 有时在不同的机器上运行 如果我的节点出现故障并且所有 Pod 都在
  • TensorFlow v2:替换 tf.contrib.predictor.from_saved_model

    到目前为止 我正在使用tf contrib predictor from saved model加载一个SavedModel tf estimator模型类 然而 不幸的是这个函数在 TensorFlow v2 中被删除了 到目前为止 在
  • 如何让QWebKit显示图像?

    好的 我在与文件相同的目录中有一个 Qt 可执行文件logo png 我这样称呼 QString msg img src logo png webView gt setHtml msg where webview is the QWebKi
  • Flask中文件上传错误

    app route registerdriver methods POST def register driver fname request form fname lname request form lname email reques
  • 在 Javascript 中解析 Python 日期时间字符串

    我需要将 Python 生成的日期时间字符串解析为 Javascript Date 对象 我走了最简单的路线 在Python中 dstring str mydate 示例 dstring 2012 05 16 19 20 35 243710
  • 如何在mysql中获取日期的一周的第一天?

    假设我有 2011 01 03 我想获取一周的第一天 即星期日 即 2011 01 02 我该如何做呢 原因是我有这个查询 select YEAR date entered as year date date entered as week
  • 支持 JSONP 的 ASP.NET 通用 HTTP 处理程序 (.ashx)

    有人可以展示一个返回 JSON 并支持跨域调用的 HTTP 处理程序的示例吗 我正在使用 jQuery 的 getJSON 向我的 Web 服务器上的 ashx 文件发送请求 我知道我需要添加 callback 到 getJSON url
  • 如何在 Matlab 绘图中的 for 循环的每一代上创建电影

    我想将球体函数绘制为曲面或等值线图 并通过与它叠加的高斯分布生成的数据的球体函数来评估最佳个体的位置和适应度值 每一代的情节都会改变 所以我得到了一部电影 另外 在另一幅图中 我想绘制与高斯分布生成的整个种群叠加的球体函数的轮廓 其中保留的
  • C# - 在运行时加载 xaml 文件

    我有一个用 C 编写的 WPF 应用程序 我有一个MainWindow继承自 a 的类System Windows Window class 接下来 我的磁盘上有一个 xaml 文件 我想在运行时加载它
  • 仅增强 K 折交叉验证中的训练集

    我正在尝试为不平衡数据集 类 0 4000 个图像 类 1 大约 250 个图像 创建一个二元 CNN 分类器 我想对其执行 5 倍交叉验证 目前 我正在将训练集加载到 ImageLoader 中 该 ImageLoader 应用我的转换
  • DbSet.Create 与 new Entity() 的区别

    我对是否使用 DbSet Create 还是简单地新建一个实体并添加它有点困惑 我真的不明白使用 DbSet Create 的后果 我知道 DbSet Create 将创建一个代理版本 如果适用 但我不太明白这意味着什么 我为什么关心 在我
  • 自定义 Django allauth 的社交帐户注册表单:添加密码字段

    我正在尝试修改用户从社交帐户提供商登录时显示的注册表单 这是我的自定义注册表单代码 from allauth socialaccount forms import SignupForm from allauth account forms
  • 不平凡的 Prolog 查找和替换

    因此 我们可以通过执行以下操作轻松地在 Prolog 中找到一个原子并将其替换为另一个原子 replace A B replace H T A B B Result H A replace T A B Result replace H T
  • JSoup:请求 JSON 响应

    我正在使用 JSoup 进行身份验证 然后连接到网站 某些 URL 具有 JSON 响应 因为网站的一部分采用 AJAX JSoup 可以处理 JSON 响应吗 Connection Response doc Jsoup connect d
  • PHP 和 MySQL - 检查用户名是否已被占用

    现在的问题是 代码无法检查用户名是否已被占用 是否有任何代码可以检查用户名是否已在数据库中被占用 我正在尝试我的一些代码 然后可能也在 Stack Overflow 中搜索了有关此问题的信息 我试过这个solution https stac
  • 使用 Tableau 创建热图

    我是 Tableau 新手 第一天 我有下面的数据D 指的是彼此相关的三个变量之一 每个有 3 个实例D 多变的 当相同的变量相互对立时 我放置了一个NA 我想根据这些数据制作热图 其中相关值 系数 转换为颜色 我该如何重新格式化数据或以其
  • Beautiful Soup Select 与 Find_all 数据类型

    我是网络抓取新手 似乎有两种方法可以收集我正在寻找的所有 html 数据 option 1 soup find all div class p option 2 soup select div p 我看到 option 1 返回类 bs4
  • CSS :link 和 :visited 伪类 - Web 浏览器是否遵守规范?

    The W3 org CSS 规范 http www w3 org TR CSS2 selector html link pseudo classes陈述如下 强调我的 link 伪类适用于尚未访问过的链接 一旦用户访问了链接 visite
  • vscode - 更改当前文件的突出显示颜色

    如何为打开的文件的背景添加自定义样式 后面的浅灰色fetch js 我相信您正在寻找list inactiveSelectionBackground主题设置 您可以使用以下命令进行设置workbench colorCustomization
  • 将 cocoapod 依赖项添加到 cocoa touch 框架

    我正在尝试研究如何将 cocoa pod 依赖项添加到具有嵌入式 cocoa touch 框架的 iOS 应用程序 我的 podfile 设置如下 link with TestApp TestAppFramework platform io