GPUImage Swift iOS 7

Posted

技术标签:

【中文标题】GPUImage Swift iOS 7【英文标题】:GPUImage swift iOS 7 【发布时间】:2014-10-23 14:07:09 【问题描述】:

是否有人发布了适用于 ios 7+ 的 Swift 和 GPUImage 应用程序? 当我尝试发布应用时出现错误(不是我的屏幕,但我得到了相同的结果)

应用程序在 ios 7 的所有设备和模拟器上运行完美,我也通过 testflight 将它作为临时发送它仍然有效,但我现在无法发布它。

【问题讨论】:

你是如何包含这两个库的?我的意思是您使用的是预编译版本还是正在下载源代码?或者更好的是可可豆荚。 GPUImage: github.com/BradLarson/… 和 Alamofire: github.com/Alamofire/Alamofire#installation 但我只需要修复 GPUImage,因为我将用 AFNetworking 替换 Alamofire 据我所知,swift 没有可可豆荚 似乎有点工作,但问题是 swift 正在使用 GPUImage 的共享库,该库是为 iOS 8 或更高版本构建的。您将其更改为 iOS 7。 【参考方案1】:

所以这里的根本问题是对嵌入式框架的支持。要让像 GPUImage 这样的 Objective-C 框架可用于 Swift 项目,您必须将其构建为一个模块,这首先需要将其构建为一个完整的捆绑框架。我为 GPUImage 设置了这个,以便可以在 Swift 项目中使用它。

对捆绑框架(而不是我们一直使用的静态库)的支持是 iOS 8 的新功能,但您可以在本地运行,甚至可以使用捆绑框架将 iOS 应用程序临时部署回 iOS 7(Mac 当然有从一开始就支持这个)。例如,我使用 GPUImage 的 FilterShowcaseSwift 示例应用程序在 iOS 7 上运行良好。

但是,听起来 App Store 正在拒绝使用捆绑框架的应用程序,这些框架针对早于 8 的 iOS 版本。我不知道是否有办法解决这个问题,因为您可以再次在 iOS 7 中正常运行这些应用程序。这也可能是暂时的,因为我听说在 App Store 上使用捆绑框架的仅 iOS 8 应用程序也存在问题。

也许您可以手动将 GPUImage 类添加到您的项目中并使用桥接头来避免对框架本身的需求,但这听起来像一团糟。

【讨论】:

谢谢@Brad,您的建议很有帮助。我还没有发布应用程序,但现在它可以在没有 GPUImage.framework 的情况下工作,我将所有文件都包含到我的项目中并使用了桥接器。谢谢你的框架:) 还有更好的解决方法吗?我已经尝试使用该库的 Objective-c 版本,如果我在标题搜索路径字段中添加框架路径,它可以工作,但是如果我设置断点,它会导致一个奇怪的错误并使 Xcode 崩溃。无论如何,手动复制源代码也对我有用。

以上是关于GPUImage Swift iOS 7的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“导入桥接头失败”

图像处理库GPUImage简单使用

使用 GPUImage 归档 ios 应用程序时出现编译错误

iOS中开源框架GPUImage的使用之生成libGPUImage.a文件和创建工程

IOS OpenGL ES GPUImage GPUImageWeakPixelInclusionFilter

iOS:GPUImage 库和 VBO