将 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 框架 的相关文章

  • scntool:无法转换文件,失败原因:*** -[__NSSingleObjectArrayI objectAtIndex:]:索引 1 超出范围

    我正在 Xcode 9 3 下开发一个基于 iOS 11 3 SceneKit 的项目 我有几个 dae 文件格式的 3D 模型 每当我构建项目时 其中一个模型不会被复制到最终的 iOS 包中 深入研究错误 我在复制捆绑资源构建阶段收到以下
  • 使用远程图像创建 MSSticker

    我正在尝试找出使用网络上托管的图像创建 MSStickers 的方法 我可以使用本地图像创建 MSStickers 例如 NSString imagePath NSBundle mainBundle pathForResource imag
  • 如何在 iOS 中通过 Twitter API 获取用户电子邮件地址?

    我尝试了多个 SDK 但无法从任何资源获取电子邮件 ID 我努力了FHSTwitterEngine为此目的 但我没有得到解决方案 FHSTwitterEngine twitterEngine FHSTwitterEngine sharedE
  • Admob 广告无法快速显示

    您好 我正在尝试将 admob 广告添加到已使用 swift 上传到应用商店的应用程序中 我在 admob 中制作了一个应用程序并复制了 appid 和广告 id 并显示了各自的横幅广告和插页式广告 这里的问题是当我写这行时 request
  • UITableView:显示 tableFooterView 时运行代码?

    我正在使用 UIView表页脚视图 http developer apple com library ios documentation uikit reference UITableView Class Reference Referen
  • 使用 NSString 进行 UTF8 解码

    我是 Objective C 新手 尝试使用以下示例将格式错误的 UTF8 编码 NSString 转换为格式良好的字符串苹果文档 http developer apple com library mac documentation Coc
  • Cordova 2.4.0 或 2.5.0 或 2.6.0 和 requirejs

    Cordova 2 4 0 及更高版本支持 AMD 加载到 javascript 中 我特别希望将 Cordova 2 5 0 与最新版本的 RequireJS backbone jquery jquery mobile 一起使用 我还没有
  • NSString stringWithContentsOfFile 失败,错误代码似乎错误

    我正在尝试将文件加载到字符串中 这是我正在使用的代码 NSError error nil NSString fullPath NSBundle mainBundle pathForResource filename ofType html
  • 如何找到键盘未覆盖的视图部分(UIModalPresenationStyleFormSheet)?

    我有一个视图控制器 显示带有 UITextView 的视图 并且我想在键盘出现时调整视图的大小 以便 UITextView 不会被键盘覆盖 我几乎在所有情况下都可以正常工作 据我所知 仅当视图控制器以 ModalPresentationSt
  • 将自定义数据包含到 iOS 故障转储中

    你好 堆栈溢出 有一个简单的问题要问您 当我的应用程序在用户的设备上崩溃时 是否可以将自定义错误数据嵌入到自动生成的 iOS 故障转储中 例如 我的 SQlite 数据库由于某种原因无法运行 例如 数据库文件已损坏 我无法从这个错误中恢复
  • 如何制作带有 SWIFT 图像的弹出窗口

    我想知道如何制作类似于此示例的弹出窗口 原始窗口充满了按钮 选择这些按钮后将拉出我想要使用的图像 我会简单地创建一个可重用的UIView组件以及作为子视图所需的一切 例如UIImageView为了你的形象 UILabel or a UIBu
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • 每 24 小时触发一次方法

    我正在尝试每天在给定时间触发一个方法 我尝试了一些方法 但我无法真正使其发挥作用 任何意见 将不胜感激 此外 如果无论应用程序是否打开它都会触发 那就更理想了 这可能吗 UI本地通知 http developer apple com lib
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • 用户验证 Facebook 后未调用应用程序打开 Url 方法

    我已将 ios 应用程序中的 facebook 升级到 3 0 并使用提供的代码https developers facebook com docs howtos login with facebook using ios sdk http
  • UIViewControllerAnimatedTransitioning:旋转更改后黑屏片段

    我已经创建了一个视图控制器转换 只要我不更改设备方向 一切都正常 图 1 显示了应有的屏幕 然后我切换到下一个视图控制器 在其中更改方向 现在我回到第一个视图控制器并再次切换方向 然后我得到的结果如图 2 所示 出现黑色边框 请不要介意屏幕
  • watchOS 错误:控制器接口描述中的未知属性

    我将 WKInterfacePicker 添加到情节提要中 并将其连接到界面控制器中的 IBOutlet 运行应用程序时 它在控制台中显示一条错误消息 控制器的接口描述 watchPicker 中的未知属性 Code interface I
  • 使用 MapKit 的地形和卫星视图

    我是 Mapkit View 的新手 当我给出没有目的地的纬度和经度时 我想显示 MapKit中是否可以通过地形 卫星视图来显示地图 有教程链接吗 我看过一些访问 Google 地图 API html 文件 的示例 有必要吗 或者您可以通过
  • SpriteKit的更新函数:时间与帧率

    一般来说 我对编程和 Spritekit 很陌生 并且有兴趣探索毫秒和帧率之间的关系 以及如何使用更新函数作为两者之间的中介 帧率与毫秒 从本质上讲 帧速率和时间之间的主要区别在于时间始终一致 而帧速率则不然 由于密集的图形程序 它可能会下
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • 避免 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