我有两个项目,一个Cocoa iPhone应用程序和一个它使用的静态库。
我已经在iPhone模拟器上成功测试了它,但当我尝试将其部署到我的iPhone设备时,我得到(符号未找到)链接错误。
如果删除库的依赖性,项目构建/运行正常。
我确保所有构建设置都设置为iPhoneOS而不是模拟器。
我确定它的一些简单,但有没有人遇到类似的问题从iPhone模拟器转移到设备?
- 编辑:我已经设法创建了新项目(一个用于应用程序,一个用于静态库),并成功地让它们在iPhone或模拟器上运行。但是我有一个非常奇怪的问题...对于每个特定的项目我都无法让它适用于设备和模拟器...我已经仔细检查了构建设置,确保正在引用的库用于匹配的构建设置(我相信),但我无法解决这些链接错误。
我认为我必须做一些非常错误的事情...所有苹果文档都说'它非常简单 - 只需点击一下',但这给了我很多问题。
这可能与xCode构建设置有关,但我似乎无法理解为什么选择不同的构建平台并重建库不起作用。
答案 0 :(得分:7)
查看my answer to a similar question以获取可能有用的文章的链接。有一篇有趣的文章link。
答案 1 :(得分:1)
最终我意识到问题所在。
我将设备目标从模拟器更改为iPhone设备,然后删除了旧的(模拟器)静态库并附加了新的(设备)库。
一切正常,除了库搜索路径(在构建配置中)仍然首先列出了模拟器目录,我假设它是找到并使用它而不是设备。
这也解释了为什么我能够让每个设置都适用于新项目,但只能在设置之间进行更改。
这是一个简单而愚蠢的问题,但却给我带来了一些悲伤和时间。我仍然不确定如何正确设置目标依赖的构建设置,但至少如果有人遇到类似的问题需要注意。
答案 2 :(得分:1)
我已经创建了一个关于如何创建和使用静态库的完整教程,本教程介绍了苹果建议的方法,也许人们会发现它很有用:
这种方法的优点是它可以根据你的项目设置自动重新编译库(所以没有设备/模拟器构建的麻烦)