问题 Xcode - 删除未使用的框架?


随着时间的推移,当您开发应用程序时,您需要为其添加新库,这些库需要新的框架才能运行。然后你删除库,如果你像我一样,你忘记删除最初添加的框架。

有没有办法找出我的代码需要什么框架才能运行?


8295
2017-10-21 09:37


起源

不是'回答 - worty':我只是从链接阶段删除可疑的并基于它重新引入它们 ld的错误。 - justin
@Justin:我不同意,这是值得回答的。它很好地回答了这个问题。 - JeremyP
@JeremyP好吧,你说服了我=) - justin


答案:


我只是从Xcode中的链接阶段(或者xcconfig,如果你在那里定义它们)删除有问题的框架,并根据ld的错误重新引入框架。

如果您的目标是多个操作系统版本,那么建立和链接这些SDK可能是个好主意,因为事情可能会有所不同。

我通常也不会将静态库链接到它们的依赖项,为最终的可执行文件保留它。

完成该阶段后,您可以删除未从Xcode项目链接的框架。


8
2017-10-21 10:06



“将静态库链接到它们的依赖项,为最终的可执行文件保留它”是什么意思。还有一些文档在Objective-C中应该支持不同的框架吗? - Peter Warbo
a)这意味着默认情况下,我的静态库目标不会链接到外部库。我将其保存为最终链接。 b)我不确定你问的是什么。 - justin
你能给我一个例子,因为我觉得我没有遇到静态库。 - Peter Warbo
静态库是可执行代码的目标类型,类似于动态库或框架(如带有资源的动态库),但不同之处在于它们的符号与最终可执行文件合并而不是动态加载。这显然不是你构建中的问题;如果您已经开发了应用程序链接到的静态库,那么您很可能知道您正在链接它们。 - justin


我讨厌严重挖掘,但我发现你可以通过从Inspector中的目标中取消选中并构建来轻松测试依赖关系。如果没有错误,则没有依赖性。


8
2018-06-04 01:24



截图在这里真的很有帮助。 - Laura Calinoiu