从静态库(.a)中删除方法调用而不重新编译

12 xcode objective-c ios

我正在使用一个静态库,在上传我的二进制文件时会给我一个警告,以供Apple查看.

导致警告的静态库中的方法(非公共选择器)从未被我调用,其相应的.h从我的项目中删除,但警告仍然存在.

鉴于我知道导致问题的方法名称,有没有办法让我打开/编辑这个.a并注释/删除有问题的代码,然后在我的项目中使用修改后的.a.

我无法访问.a源代码来重新编译它,它的旧版本和它的创建者没有联系方式供我跟踪.

非常感谢,-Cake

dav*_*den 6

快速而肮脏的解决方案:在十六进制编辑器中打开.a文件并更改名称的所有实例.保留函数名称的长度相同,以便文件中的偏移不会改变,只需更改字母或类似的东西即可.我做了一个快速测试,在我们构建为静态库的子项目中添加了一个虚函数,然后调整.a文件中的函数名称(有五个实例,这是值得的),一切都构建好了.我认为没有任何理由在此之后它不会通过App Store检查.

我真的很惊讶函数在最终构建中仍然存在,但我认为死代码剥离应该清除任何未使用的代码.呵呵.