将 Cocoapods 与应用程序扩展结合使用

2024-04-07

我正在尝试在 Xcode 6 Beta-6 中构建一个使用 cocoapods 库的照片应用程序扩展。 Xcode 为照片扩展创建的桥接标头看不到来自 cocoapods 的任何内容。

例如:#import <GPUImage/GPUImage.h>结果出现错误"GPUImage/GPUImage.h" file not found.

我已经尝试了所有可能的导入路径(带括号和引号),但几乎没有成功。例外的是对于像这样的简单 PodSVProgressHUD,以下丑陋可怕的黑客行为有效:#import "../Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.h".

但对于GPUImage来说,它走进了GPUImage.h标题并决定它突然看不到GPUImageContext.h尽管当使用不属于应用程序扩展的正常 swift 代码的桥接标头导入时没有问题。

应用程序扩展的编译有何不同,导致桥接标头无法正常运行?

笔记: 我已经阅读了所有可能的排列本教程 https://medium.com/@stigi/swift-cocoapods-da09d8ba6dd2并且它不会立即适用,以防万一有人认为他们已经在那里找到了答案。

另外,问题中描述的这个问题 https://stackoverflow.com/q/25495225/579405可能相关,但无论如何我还是问了这个问题,以防我的问题特定于应用程序扩展。


编辑 (2015/03/10)

查看新接受的答案。我在一个新项目中尝试过它并且它有效,尽管我的测试 Pod 都使用了扩展中不允许的共享应用程序。他们显示这些错误的事实意味着它链接正确。干得好@LeChatNoir!


Success.

解决方法如下: 一旦您有了应用程序扩展并且它是使用 cocoapods 的项目中的桥接标头,并且您想要使用这些 cocoapods 库之一,请尝试包含 pod,例如#import <GPUImage/GPUImage.h>将会失败file not found.

首先,确保告诉应用程序扩展(单击项目文件,然后单击扩展目标)进行链接libPods.a,很像您的应用程序目标。

接下来,在您的实际项目中(单击您的项目文件,然后在内侧边栏的“项目”部分中再次单击项目文件)中的“信息”选项卡下,设置要使用的“调​​试”、“发布”和“内部”扩展的配置下拉列表中的“Pods”配置。 Pod Install 不会为您执行此操作,因此您需要自己执行此操作。

最后,确保 Pods 项目的目标和您的项目的目标都具有您在 Valid Architectures 变量中构建所需的所有架构,否则您将收到有趣的未定义符号错误。

This should工作并允许您像平常一样导入您选择的 Pod。


编辑(2014/10/14):顺便说一句,由于您还可能在 Swift 扩展中包含您自己的项目代码中的 Objective-C 文件,因此您应该确保任何.m您放入桥接标头中的文件也会由扩展目标进行编译。您可以从目标的编译源菜单或在.m使用 Xcode 右侧边栏的“目标成员资格”部分来文件本身。

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

将 Cocoapods 与应用程序扩展结合使用 的相关文章

  • 如何像谷歌日历一样将单元格的内容滚动到表格视图中的另一个单元格中?

    我希望用户界面像谷歌日历那样进入桌面视图 它在不同的行中显示相同的日期事件 但是当您向上或向下滚动时 左侧的日期也会向上向下滚动 Can you please help me how to achieve this Please take
  • 弱变量中间为零

    弱变量什么时候变为零 weak var backgroundNode SKSpriteNode texture SKTexture image initialBackgroundImage backgroundNode position C
  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s
  • 删除具有estimatedItemSize 的项目时 UICollectionView 单元格大小会调整

    我有一个简单的项目 其中的故事板仅包含一个UICollectionViewController 使用 Xcode 7 1 1 为 iOS 9 1 构建 class ViewController UICollectionViewControl
  • 如何在 Swift 中创建 UIAlertView?

    我一直在努力在 Swift 中创建 UIAlertView 但由于某种原因我无法得到正确的语句 因为我收到此错误 找不到接受提供的 init 重载 论点 我是这样写的 let button2Alert UIAlertView UIAlert
  • 快速钥匙串更新只有在第二次尝试时才起作用

    您好 我在更新存储在钥匙串中的登录信息方面遇到了 iOS 钥匙串的一个非常奇怪的问题 因此 如果没有保存的凭据 则正确运行保存函数会保存登录信息 如果登录信息已存在并且用户更新了密码 则更新功能仅正确更新密码 但是 如果登录信息存在并且我尝
  • 进入后台时 Alamofire 请求卡住?

    我正在使用 Alamofire 调用 Web 服务 该服务需要相当长的时间才能加载 如果应用程序进入后台 当我返回应用程序时 我会被加载程序卡住 我想这是因为调用永远不会向我的完成处理程序返回任何内容 我该如何解决这个问题 您可以使用后台抓
  • 是否可以更改枚举中的关联值?

    我正在使用 Swift 枚举 想知道是否有一种方法可以更改枚举的关联值 例如下面的代码尝试但失败了 enum myEnum case SomeCase Int mutating func someFunc switch self case
  • 在 UITableViewController 中重新排序行后 UI 更新不正确

    因此 我对表中的行重新排序 用户界面最终结果不正确 场景如下 表内容原文 a b c d e 如果我移动第 0 行 当前a 到第 4 行 当前e 我看到的最终结果是 c d e a a 一些背景 该表正在读取 Realm 对象的列表 我确认
  • NSURLCache 不缓存

    我正在使用 Xcode 6 1 6A1030 iOS7 和 iOS8 模拟器 NSURLCache 似乎没有缓存任何东西 我使用 Cache Control 标头 我的服务器返回带有 max age 6000 的 Cache Control
  • UILabel 中的文本未垂直居中

    我使用以下代码创建了一个标签 func setupValueLabel valueLabel numberOfLines 1 valueLabel font UIFont name Avenir Black size 50 valueLab
  • iOS Swift 和 reloadRowsAtIndexPaths 编译错误

    我与 xCode Swift 陷入僵局并刷新 UITableView 的单行 这条线有效 self tableView reloadData 而这条线没有 self tableView reloadRowsAtIndexPaths curr
  • 在 UITableView 的部分标题文本下方添加一些边距

    我已经设计了标题文本的样式 func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath gt UITableViewCell let ce
  • WKWebview 中的 iCLoud 文档选择器关闭容器视图

    我有一个 WKWebview 加载基于 Web 的 UI 我希望用户能够从其 iCloud 文档上传文件 我已授予正确的权限 并且可以浏览 iCloud 文档 但是 当我选择文件或单击取消按钮时 文档选择器视图也会关闭 WKWebview
  • 如何观察UserDefaults的变化?

    我有一个 ObservedObject在我看来 struct HomeView View ObservedObject var station Station var body some View Text self station sta
  • UITableView 快速获取 titleForHeadersInSection

    我想在 UITableView 的部分中设置标题的标题 语法是什么swift设置该部分中标题的标题 func tableView tableView UITableView titleForHeaderInSection section I
  • 为 Swift 对象/属性设置观察者

    我一直在寻找一种在连接到 Mac 的显示器数量发生变化时触发方法的方法 我知道我可以获得 NSScreen screens count 的值 但我需要找到一种方法来在该值发生变化时创建通知或其他内容 或者指示所连接的显示器数量发生变化的其他
  • 调用 SwiftUI 中位置 #11、#12 处的额外参数 [重复]

    这个问题在这里已经有答案了 我在 SwiftUI 中的切换开关上不断收到 调用中位置 11 12 处有额外参数 错误 我见过其他人有 调用中的额外参数 错误 但答案似乎没有帮助 另外 我的错误是 位置 11 12 我还没有看到其他人发生这种
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • 企业发行版在 Swift 应用程序中与 iOS8 配合不佳

    我在使用 swift 应用程序在 iOS 8 设备上运行 Enterprise 版本时遇到问题 如果我使用非企业帐户进行代码签名 它似乎工作正常 有人遇到这个问题吗 以下是我在尝试使用企业帐户运行构建以进行协同设计时在 iOS 设备上收到的

随机推荐