【问题标题】:How to remove these mangled selectors from iOS app如何从 iOS 应用程序中删除这些损坏的选择器
【发布时间】:2019-07-08 01:59:56
【问题描述】:

我需要帮助来删除我的 iOS 应用中已知的错误选择器。

Apple 拒绝了我的应用说明:

关于准则 2.3.1,此应用已验证包含错误选择器,例如 - x7kQPFEZS4af59md1eVMqf42YSTGAZVO:i5B8qlaSJwvmVviceDOQkqQ0vwGq35XMmtV81zlsmHnws

我尝试运行列出所有符号的 nm 命令,然后使用 grep 搜索上述选择器:

grep -r x7kQPFEZS4af59md1eVMqf42YSTGAZVO .

grep -r i5B8qlaSJwvmVviceDOQkqQ0vwGq35XMmtV81zlsmHnws .

两个 grep 都显示以下结果:

二进制文件 ./Payload/MyAppName.app/MyAppName 匹配

MyAppName 是一个二进制文件(unix 可执行文件)。

如何进一步从我的 iOS 应用程序中删除这些损坏的选择器? (或者至少找到创建这个选择器的代码/框架)

【问题讨论】:

  • 你找到答案了吗?
  • @NabeelAhmed 是的。添加为答案,可能对其他人有所帮助。
  • grep -r x7kQPFEZS4af59md1eVMqf42YSTGAZVO 。这对我有用

标签: ios app-store obfuscation nm otool


【解决方案1】:

我使用反汇编程序Hopper 来定位一个包含错误选择器的库。我按照以下步骤操作:

  1. 从 Xcode 项目创建 .ipa 文件(不确定它是导出为开发版还是 App Store 构建版,您可能必须分别尝试)。
  2. 解压 .ipa 文件
  3. 打开Hopper应用,解压后将.app文件拖放到Payload文件夹中。
  4. 在询问时将其加载为“FAT 存档”。
  5. 让应用程序完成扫描。
  6. 在左侧菜单中搜索损坏的选择器名称。
  7. 选择匹配的选择器,在右侧的详细信息窗格中,我可以找到一些项目特定的类/方法名称。我在我的项目中搜索了这些类和方法名称并找到了库。

在我删除该库后,该应用获得了批准。

【讨论】:

  • 我有类似的问题,但苹果没有提到任何损坏的选择器。你会推荐使用 Hooper 吗?苹果的回应。我们发现您的应用包含混淆代码、选择器修改或旨在通过在 App Store 批准后更改此应用的概念来颠覆应用审核流程的功能。此应用的下一次提交可能需要更长的审核时间,在此问题得到解决之前,此应用将不符合加急审核条件。
  • @TaimurAjmal 我不得不向 Apple 询问更多细节,然后他们提供了损坏的选择器。如果您不了解选择器,Hopper 在这里将没有用处。首先向 Apple 询问损坏的选择器。这么晚才回复很抱歉!希望你已经修好了:)
猜你喜欢
  • 2013-02-26
  • 2017-10-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 2015-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多