【问题标题】:"The app references non-public selectors in Payload"“应用程序引用了 Payload 中的非公共选择器”
【发布时间】:2014-10-01 09:59:42
【问题描述】:
我发现有两个 SO 问题可以解决这个问题:
(1) 一个问题建议对二进制执行“otool -tv | grep CFUserNotification”。当然,我为 _deviceInfoForKey 更改了 CFUserNotification。我明白了:
Binary file Lexly.app/Lexly matches
(2) 另一个问题建议在二进制文件上执行otool -L Lexly.app/Lexly。我得到了我添加的所有框架的列表,并针对每个架构重复。
这如何帮助我找到使用 3 个违规选择器的外部库?
【问题讨论】:
标签:
ios
app-store
iphone-privateapi
【解决方案1】:
我找到了this blog post,它解释了如何在项目的根目录中创建一个 shell 脚本来查找有问题的选择器。
这是脚本:
#!/bin/bash
for match in $(grep -lR uniqueIdentifier *); do
printf "File: %s\n****************************************\n\n" "$match"
strings $match | grep --context=15 uniqueIdentifier
printf "\n\n\n"
done
只需将uniqueIdentifier 替换为您需要找到的任何选择器。
原来所有这三个选择器都来自我几个月前包含的一个测试版分析库,甚至没有使用。这是我复活的一个旧项目。