考虑到需要在某些类中导入框架,如何在 iOS 项目的特定目标中使用框架?
Posted
技术标签:
【中文标题】考虑到需要在某些类中导入框架,如何在 iOS 项目的特定目标中使用框架?【英文标题】:How to use a framework just in a specific target in the iOS project by considering the need to import it in some classes? 【发布时间】:2020-04-27 08:38:32 【问题描述】:我有一个包含多个目标的项目,其中一个目标使用特殊框架。框架是用 Objective-C 编写的,我的项目是用 Swift 编写的。
所以我需要一个定义框架的桥接头文件。现在我使用公用 Bridging-header 文件,但我不想在其他目标上使用该框架。
我尝试为每个目标单独使用 Bridging-header 文件,但遇到编译错误,即在导入它的类文件中找不到框架!
- TL;DR
我的问题是:如何在具有多个目标的 Swift 项目中添加一个 Objective-C 框架,同时考虑到它应该在一个目标以及桥接头文件中使用? p>
【问题讨论】:
【参考方案1】:几天后,我可以设法解决它。
1) 在 BridgingHeader.h 文件中添加自定义标志 (MY OPTIONS)
以及 #ifdef
和 #endif
。如下图:
2) 选择 Target(specific) -> Build Settings -> Preprocessor Macros 然后添加
MY_OPTIONS=1
3) 选择 Target(specific) -> Build Settings -> Swift Compiler - Custom Flags -> Other Swift Flags 然后添加
-DMY_OPTIONS
4) 在你的类上添加这一行以防止在编译其他目标时出现编译错误
#if MY_OPTIONS
let specificVC = SpecificViewController()
self.present(specificVC, animated: true, completion: nil)
#endif
【讨论】:
以上是关于考虑到需要在某些类中导入框架,如何在 iOS 项目的特定目标中使用框架?的主要内容,如果未能解决你的问题,请参考以下文章