ios – Apple在App审核期间如何检测UDID访问?

显然Apple已经开始拒绝使用[UIDevice uniqueIdentifier]的应用程序.我听说有关应用程序在过去一周被拒绝和批准使用它的报告(有些通过,有些则没有).但是,没有一个主要的广告网络(为我的应用程序带来收入)还没有出现不使用UDID的API.我的应用程序中包含的所有API都使用它.他们都说他们正在开发一种新的API,很快就会出来,但可能需要几个月的时间.

对我来说,Apple似乎很难通过App审核流程强制执行此政策,而不是通过不允许它的新版本操作系统(并且人们有时间在测试期间进行编程).

总而言之,我的问题是,如果您在应用审核期间访问UDID,Apple究竟会检测到什么?他们是否以某种方式扫描捆绑包以查看呼叫是否在那里,或者他们是否监控在测试应用程序时实际进行的系统调用?我想如果用户想要付费,或者让他们选择支持广告并因此提供他们的UDID,则可能无法访问广告API.但是,我需要了解Apple是否拒绝基于[UIDevice uniqueIdentifier]简单地编译到您的代码中,或者它们是否基于您在应用程序审核测试期间调用[UIDevice uniqueIdentifier]进行检测.

请不要回答这个问题,原因是你不应该使用[UIDevice uniqueIdentifier]或如何创建自己的UDID等等.我的问题是我需要的第三方库还没有替代解决方案.问题是:Apple在应用审核期间如何检测UDID访问?

解决方法

众所周知,他们使用静态分析,它基本上扫描您编译的二进制文件,以获得对特定方法的调用的编译版本.他们还使用它来检测对私有API的调用.可以通过以创造性方式从字符串构造选择器来欺骗静态分析.虽然这绝不是诚实的或推荐的.

但更强大的方法最有可能通过HTTP代理,通过使用您的应用程序,他们可以监视任何发送出去的UDID的HTTP流量.这可能是通过散列或2way加密得到的.这也不诚实或推荐.

当iOS6今年夏天推出时,该方法可能会被完全删除,因此对其使用的所有混淆都完全没有实际意义.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...