我有一个具有以下项目规范设置的项目:
Main App
--> UIFramework (own framework)
--> CoreFramework (own framework)
--> Mixpanel Third Party framework installed using carthage
每个框架都设置为其上一个框架的项目依赖项,换句话说: - CoreFramework 包含 Mixpanel 框架 - UIFramework 依赖于 CoreFramework - 主应用依赖于 UIFramework
这个结构是在一个公共(public)工作区上设置的。
我可以毫无问题地单独构建和测试每个框架。 我的问题归结为从主应用程序访问 CoreFramework。
如果我获取 Root View Controller 并编写以下代码:
import UIKit
import UIFramework
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let object = UIFrameworkClass()
object.testFunction()
}
}
应用程序在设备上运行和构建没有任何问题。 但是,如果我写这段代码:
import UIKit
import UIFramework
import CoreFramework
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let object = UIFrameworkClass()
object.testFunction()
coreFrameworkGlobalTestFunction()
}
}
构建时出现以下错误:
Framework not found Mixpanel for architecture arm64
我已经尝试将 Mixpanel 框架直接嵌入和链接到我的应用程序,但无济于事。
关于造成这种情况的原因有什么想法吗?如何从我的主应用程序访问 CoreFramework 上的类和函数而不出错?
非常感谢。
最佳答案
以防其他人将来遇到同样的问题:
我能够通过将 Mixpanel 库的路径添加到主应用程序 Build Settings
的 Frameworks Search Path
属性来解决问题,问题就消失了。
一定会喜欢一些很棒的 Xcode 魔法。
关于使用嵌套框架的 iOS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963573/