在没有use_frameworks的情况下使用cocoapods!在斯威夫特 [英] Using cocoapods without use_frameworks! in Swift
问题描述
根据本教程,我们应该在Swift项目中将 use_frameworks!
添加到 Podfile
。但是如何在同一项目的 .m
中使用第三方代码?
According to this tutorial, we should add use_frameworks!
to Podfile
in Swift project. But how to use third-party code in .m
in the same project?
一种可能的方法是,
- 请勿将
use_frameworks!
添加到Podfile
- 在
中导入标题...- Bridging-Header.h
- 然后,我可以在.swift和.m文件中使用第三方代码
- Do NOT add
use_frameworks!
toPodfile
- Import header in
...-Bridging-Header.h
- Then, I can use third-party code in both .swift and .m file
但是当我尝试在 ...- Bridging-Header.h
,它只是抛出 *。h文件未找到
错误,如何解决此问题
But when I try to import header in ...-Bridging-Header.h
, it just throw *.h file not found
error, how to fix this issue?
推荐答案
过去
直到CocoaPods 1.4.x(包括在内),如果没有 use_frameworks!
不能使用带有Swift代码的CocoaPods。
Past
Up to CocoaPods 1.4.x (included), it was NOT possible to use CocoaPods with Swift code without use_frameworks!
.
现在,使用CocoaPods 1.xx(我在1.4.0上进行了验证),通常使用 use_frameworks!
用于Swift和ObjC项目:它允许您以任何方式混合两种语言而不会出现问题:
Nowadays, with CocoaPods 1.x.x (I verified it with 1.4.0), it's common to use use_frameworks!
for both Swift and ObjC projects: it allows for a mix of the two languages in any way you want without issues:
- 您将能够在Objective-C项目中使用Swift依赖项。
- 您将可以在Swift项目中使用Objective-C依赖项。
现在,CocoaPods 1.5.0 支持将Swift Pod集成为静态库。尝试一下( sudo gem install cocoapods
),然后从您的Podfile中删除 use_frameworks!
。
Nowadays, CocoaPods 1.5.0 supports integrating swift pods as static libraries. Try it (sudo gem install cocoapods
) and enjoy removing use_frameworks!
from your Podfile.
请注意,对于iOS:
- Apple需要Xcode 10.1最低,只有得到很好的支持启动CocoaPods 1.6.0 ,所以不要打扰使用较旧版本的CocoaPods。
- Apple最低要求在2020年4月使用Xcode 11,为此,我将只使用CocoaPods 1.7.5或更高版本,以及xcodeproj 1.13.0或更高版本。
- Apple requires Xcode 10.1 minimum, which is only well supported starting CocoaPods 1.6.0, so don't bother using older versions of CocoaPods.
- Apple will require Xcode 11 minimum in April 2020, for which I would only use CocoaPods 1.7.5 or newer, together with xcodeproj 1.13.0 or newer.
这篇关于在没有use_frameworks的情况下使用cocoapods!在斯威夫特的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!