1

我在我创建的自定义框架中使用 coreLocationframework,将框架集成到我的项目后,运行应用程序后出现以下错误

架构 i386 的未定义符号:“_OBJC_CLASS_$_CLLocationManager”,引用自:MYFramework “_kCLLocationAccuracyBest”中的 objc-class-ref,引用自:MYFramework ld 中的 -[Utility getCurrentLocation]:未找到架构 i386 的符号 clang:错误: 链接器命令失败,退出代码为 1(使用 -v 查看调用)

之后,我刚刚在我的项目中添加了相同的 corelocationframework,然后错误没有提示代码正在运行。

所以我想知道这背后的原因是什么,如果我也添加其他框架会发生这种情况吗?

4

2 回答 2

2

框架的核心是一个包含框架中所有代码的静态库。当您引用 iOS SDK 中的任何核心框架时,它们会动态链接到您的项目。因此,您在框架项目中引用的任何核心框架也需要在链接到您的框架的应用程序中被引用。

于 2013-10-06T15:00:40.807 回答
2

每当您构建依赖于另一个框架的静态库或框架时,您都必须将该框架链接到您的框架以及最终项目中。

如果你在某个地方发布这个框架供其他人使用,你应该有说明说明在他们安装你的框架之后,他们也必须链接CoreLocation

例子:

MyFramework
--> Frameworks
   --> CoreLocation.framework

MyApp
--> Frameworks
   --> MyFramework.framework
   --> CoreLocation.framework
于 2013-10-06T15:00:49.083 回答