在没有 use_frameworks 的情况下使用 cocoapods!在 Swift
Using cocoapods without use_frameworks! in Swift
根据this教程,我们应该在Swift项目中添加use_frameworks!
到Podfile
。但是如何在同一个项目中使用.m
中的third-party代码呢?
一种可能的方法是,
- 不要将
use_frameworks!
添加到 Podfile
- 在
...-Bridging-Header.h
中导入 header
- 然后,我可以在 .swift 和 .m 文件中使用 third-party 代码
但是当我尝试在 ...-Bridging-Header.h
中导入 header 时,它只是抛出 *.h file not found
错误,如何解决这个问题?
过去
直到 CocoaPods 1.4.x(包括在内),如果没有 use_frameworks!
.
,则无法将 CocoaPods 与 Swift 代码一起使用
现在:1.x.x 及以上
如今,使用 CocoaPods 1.x.x(我用 1.4.0 对其进行了验证),Swift 和 ObjC 项目通常使用 use_frameworks!
:它允许混合使用以您想要的任何方式使用两种语言,没有问题:
- 您将能够在 Objective-C 项目中使用 Swift 依赖项。
- 您将能够在 Swift 项目中使用 Objective-C 依赖项。
现在:1.5.x 及以上
如今,CocoaPods 1.5.0 supports integrating swift pods as static libraries。尝试一下 (sudo gem install cocoapods
) 并享受从 Podfile 中删除 use_frameworks!
的乐趣。
注意 iOS:
- Apple 要求最低 Xcode 10.1,只有 starting CocoaPods 1.6.0 得到很好的支持,所以不要费心使用旧版本的 CocoaPods。
- Apple 将在 2020 年 4 月要求至少 Xcode 11,为此我只会使用 CocoaPods 1.7.5 或更新版本,以及 xcodeproj 1.13.0 或更新版本。
根据this教程,我们应该在Swift项目中添加use_frameworks!
到Podfile
。但是如何在同一个项目中使用.m
中的third-party代码呢?
一种可能的方法是,
- 不要将
use_frameworks!
添加到Podfile
- 在
...-Bridging-Header.h
中导入 header
- 然后,我可以在 .swift 和 .m 文件中使用 third-party 代码
但是当我尝试在 ...-Bridging-Header.h
中导入 header 时,它只是抛出 *.h file not found
错误,如何解决这个问题?
过去
直到 CocoaPods 1.4.x(包括在内),如果没有 use_frameworks!
.
现在:1.x.x 及以上
如今,使用 CocoaPods 1.x.x(我用 1.4.0 对其进行了验证),Swift 和 ObjC 项目通常使用 use_frameworks!
:它允许混合使用以您想要的任何方式使用两种语言,没有问题:
- 您将能够在 Objective-C 项目中使用 Swift 依赖项。
- 您将能够在 Swift 项目中使用 Objective-C 依赖项。
现在:1.5.x 及以上
如今,CocoaPods 1.5.0 supports integrating swift pods as static libraries。尝试一下 (sudo gem install cocoapods
) 并享受从 Podfile 中删除 use_frameworks!
的乐趣。
注意 iOS:
- Apple 要求最低 Xcode 10.1,只有 starting CocoaPods 1.6.0 得到很好的支持,所以不要费心使用旧版本的 CocoaPods。
- Apple 将在 2020 年 4 月要求至少 Xcode 11,为此我只会使用 CocoaPods 1.7.5 或更新版本,以及 xcodeproj 1.13.0 或更新版本。