我们被苹果拒绝了。一直发生对吗?但这一次我们有点难过。解决这个问题的旧方法并没有为解决方案提供线索。
来自苹果:
- 5 性能:软件要求
性能 - 2.5.1
您的应用使用或引用以下非公共 API:
过渡:完成:
App Store 不允许使用非公共 API,因为如果这些 API 发生变化,可能会导致糟糕的用户体验。
这个应用程序已经有大约五年了,多年来,主要是由于业务需求,它有很多对 3rd 方 SDK 的引用。这是我们集中注意力的地方,但是线索很快就干涸了,并且正在变成大量删除所有内容,直到我们找到包含此旧代码的部分。
我们所知道的是它不是一个符号, otool
也nm
没有找到任何东西。strings
确实找到了一个匹配项(调试版本中的 1 次,我们的最终版本版本中的 2 次,如果这是一个线索或有所不同的话。)这似乎是 UIKit 的调用,所以我假设情况并非如此。
有人对如何进行有任何建议吗?
我们正在检查项目中引用的每个存档/lib/binary,并进行字符串搜索。如果失败了,我们将撕掉每个 SDK 并进行破坏性的二进制搜索以找到有罪的一方......如果有关于如何解决这个问题的热门提示,我会全力以赴!
这是命令行输出(字符串、otool 和 nm):
Dev-MBP:helloworld.app codemonkey$ otool -ov helloworld | grep -C 10 "transition:didComplete"
Dev-MBP:helloworld.app codemonkey$ nm helloworld | grep -C 10 "transition:didComplete"
Dev-MBP:helloworld.app codemonkey$ strings helloworld | grep -C 3 "transition:didComplete"
destinationLayout
prepareTransition:
performTransition:
transition:didComplete:
destinationViewController
sourceViewController
isViewTransition
--
--
destinationLayout
prepareTransition:
performTransition:
transition:didComplete:
destinationViewController
sourceViewController
isViewTransition
Dev-MBP:helloworld.app codemonkey$ strings helloworld | grep "transition:didComplete"
transition:didComplete:
transition:didComplete:
Dev-MBP:helloworld.app codemonkey$