在另一个项目中满足框架的依赖关系
Satisfying a framework's dependencies while within another project
我正在开发一个 iOS 框架。我的开发环境是一个 iOS 应用程序项目,其中包含框架项目,然后将框架的产品添加到应用程序的 "Embedded binaries" 和 "Linked Frameworks and Libraries" 部分。
之前的设置工作正常,但我正在处理的这个特定框架需要另一个框架才能运行。我已经通过 Carthage 安装了这个框架,并将它添加到基础应用程序的项目("Embedded binaries" 和 "Linked Frameworks and Libraries"),然后也是框架的项目 "Linked Frameworks and Libraries".
然而,当我 运行 应用程序时,出现以下两个错误(FrameworkOne
是我在项目中使用的框架,FrameworkTwo
是依赖项):
dyld: lazy symbol binding failed: Symbol not found:
[symbol here]
Referenced from:
[path to iOS sim]/FrameworkOne.framework/FrameworkOne
Expected in:
[path to application]/Frameworks/FrameworkTwo.framework/FrameworkTwo
...和...
dyld: Symbol not found:
[symbol here]
...the same paths as above...
我做错了什么?
答案很简单,事后看来令人沮丧:我的应用程序项目和我的框架项目中使用的框架版本不匹配。
如果您遇到类似问题,请检查您的应用程序和框架是否使用相同的版本!
我正在开发一个 iOS 框架。我的开发环境是一个 iOS 应用程序项目,其中包含框架项目,然后将框架的产品添加到应用程序的 "Embedded binaries" 和 "Linked Frameworks and Libraries" 部分。
之前的设置工作正常,但我正在处理的这个特定框架需要另一个框架才能运行。我已经通过 Carthage 安装了这个框架,并将它添加到基础应用程序的项目("Embedded binaries" 和 "Linked Frameworks and Libraries"),然后也是框架的项目 "Linked Frameworks and Libraries".
然而,当我 运行 应用程序时,出现以下两个错误(FrameworkOne
是我在项目中使用的框架,FrameworkTwo
是依赖项):
dyld: lazy symbol binding failed: Symbol not found:
[symbol here]
Referenced from:
[path to iOS sim]/FrameworkOne.framework/FrameworkOne
Expected in:
[path to application]/Frameworks/FrameworkTwo.framework/FrameworkTwo
...和...
dyld: Symbol not found:
[symbol here]
...the same paths as above...
我做错了什么?
答案很简单,事后看来令人沮丧:我的应用程序项目和我的框架项目中使用的框架版本不匹配。
如果您遇到类似问题,请检查您的应用程序和框架是否使用相同的版本!