objective-c - 在不重新编译的情况下从静态 lib(.a) 中删除方法调用

标签 objective-c ios xcode

我使用的是静态库,当我上传我的二进制文件供 apple 审查时,它会给我一个警告。

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

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

我无法访问 .a 源来重新编译它,而且它非常古老,而且它的创建者没有我可以追踪的联系方式。

非常感谢, -蛋糕

最佳答案

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

我真的很惊讶该功能仍然存在于最终版本中,不过我认为死代码剥离应该清除所有未使用的代码。呵呵。

关于objective-c - 在不重新编译的情况下从静态 lib(.a) 中删除方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554168/

相关文章:

objective-c - 是否有可用于 NSNotificationCenter 的通知名称列表?

iOS:蓝牙配对请求对话框 - 我可以知道用户的选择吗?

ios - 应用程序在执行注销例程时崩溃

ios - Swift:从 UITapGestureRecognizer 获取任意信息

objective-c - 在类之间传递信息

objective-c - iOS - 使用滑动的高级动画/滑动速度

iphone - UITableView 单元格重用、低内存警告、加载图像后设备中的应用程序崩溃

objective-c - Xcode #import 找不到 .h 文件

iphone - 当用户在屏幕上移动手指时,轴上的动画/旋转/平移 View

swift - UIButton 调整大小动画不是动画