我的最新版本已被 Apple 应用商店接受,但几天后我收到了下面引用的通知。
我的应用程序也使用 Rollout.io,我明确询问这是否是问题所在。还没有回应。
如果 respondsToSelector 或 performSelector 被禁止了,有没有替代品?
亲爱的开发者,
您的应用程序、扩展程序和/或链接框架似乎包含明确设计的代码,能够在应用程序审查批准后更改您的应用程序的行为或功能,这不符合 Apple 开发人员计划许可协议和应用程序的第 3.3.2 节商店审查指南 2.5.2。与最初为 App Store 审核时相比,此代码与远程资源相结合,可以促进对应用行为的重大更改。虽然您目前可能没有使用此功能,但它有可能加载私有框架、私有方法并启用未来的功能更改。
这包括任何将任意参数传递给动态方法的代码,例如 dlopen()、dlsym() 、responsToSelector:、 performSelector :、method_exchangeImplementations(),以及运行远程脚本以根据内容更改应用程序行为或调用 SPI下载的脚本。即使远程资源不是故意恶意的,它也很容易被中间人 (MiTM) 攻击劫持,这可能会给应用程序的用户带来严重的安全漏洞。
请对您的应用进行深入审查,并删除任何符合上述功能的代码、框架或 SDK,然后再提交下一个更新供您的应用进行审查。
编辑:苹果论坛提到这一点:https ://forums.developer.apple.com/thread/73640