gpt4 book ai didi

objective-c - 如何正确修改自定义cocoa框架?

转载 作者:行者123 更新时间:2023-12-03 18:05:52 28 4
gpt4 key购买 nike

我正在我的 cocoa 项目中使用非常有用的 ID3 框架。我想修改其中的一件小事情,但我似乎无法将所做的更改应用于构建的框架。

该框架提供的源代码附带了一个 Xcode 项目,因此我将其打开并为了测试而放入 NSLog(@"hello"); 。它绝对位于它将被调用的地方,并且框架中还会显示其他 NSLog() 调用,因此不仅仅是控制台输出被抑制。

为了在修改后构建框架,我首先清理了构建文件夹,确保它实际上删除了文件,然后构建它。然后,在我使用该框架的 Xcode 项目中,我删除了旧的引用,并向新构建的框架添加了一个新的引用。使用新构建的框架运行我的项目不会调用修改后的框架代码。我尝试过作为 Xcode 框架项目一部分的开发和部署构建。

我的直觉是框架代码编译成的可执行文件正在以某种方式被缓存。但由于我对框架的工作原理相当不熟悉,所以我不太确定该去哪里寻找。

最佳答案

Mac OS X 中没有可执行文件或框架的缓存。要调试正在发生的情况,有一些有用的技巧:

使用otool -L <path_to_your_executable>在命令行上,了解加载命令(将库和框架加载到可执行文件中)。尝试找到ID3框架并检查路径。如果它以 @executable_path 开头,则必须将框架复制到可执行文件的包装器中。

要真正查看加载了哪些库以及从何处加载,请设置环境变量 DYLD_PRINT_LIBRARIESYES 。您可以从 Xcode 中(在可执行文件设置中)或从终端执行此操作。

您将看到 dyld 加载的库及其路径。

我的直觉是,您的可执行文件仍然从可执行文件的应用程序包装器或其他可能安装它的地方加载旧框架。尝试清理您的项目(使用框架的项目,而不是框架本身)。

关于objective-c - 如何正确修改自定义cocoa框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2468946/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com