当你从事一个职业很久,你可能会遇见各种奇葩问题,同时这些问题促使你不断学习不断进步。尤其对从事IT行业的人,不断学习是一定要的,几乎每天都有新的知识更新,建议大家要每天都要坚持逛一些技术论坛,看一些技术帖子、技术博客之类,要不断学习,只有不断的学习才能不被淘汰。
App提审被拒了四次,可谓是每一次被拒的理由都不尽相同,这次本人觉得最奇怪,我项目中明明没有使用地理位置,在提交二进制代码的时候却被苹果机审判定为无效代码。那么我如何知道被判定为无效代码了呢?我在Xcode上提交代码,和往常一样,是提交成功了的,到这一步,我们往往就放心多了,带着一点小庆幸,登录开发者账号,去提审。当你登录开发者账号的时候,发现并没有像你想象的那样,构建版本的蓝色小加号就出现在你的面前,如下图:
小加号注意:如果你是第一次提交代码,你可能看不到这个加号,如果不是第一次,你可能看不到你刚才提交的代码版本,通常的情况下遇到这种情况,我们往往会说等一等,等一等就会出现的。可是你等的花儿都谢了,也不见你上传的版本的出现,这个时候你可能就会变得有些着急了。如果开发者账号接收邮件的是你自己的邮箱,你可能会很快看到苹果发给你的邮件,但是往往开发者账号都是你的上级领导申请的,邮箱写的是领导的邮箱,导致你不能及时看到邮件,此时此刻的你应该是火急火燎,开始了一遍遍的上传代码,有时候会看见你上传的代码正在处理中,但是刷新界面发现你的上传的版本又莫名其妙不见了,真是见了鬼了!出现这种情况,记得一定要去邮箱查看你是否收到了苹果发来的邮件,下面我把我收到的邮件展示如下:
问题邮件收到这封邮件,更是令人困惑不解,我项目里面没有使用位置相关的东西,为什么说我的info.plist要包含这个 NSLocationAlwaysUsageDescription这个隐私数据呢?以前也没有遇到类似的情况,这个真是见了鬼了。无奈求助互联网,发现收到这封邮件的不独我一人。这个是一个比较靠谱的链接https://stackoverflow.com/questions/52002466/error-appstore-connect-missing-purpose-string-in-info-plist-file,链接中这个回复还是比较靠谱的。
靠谱的回答上面明确说了,即使你的应用没有使用定位功能,在你的的plist文件中也要写上这个两个隐私NSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription (注意这两个在现在的plist文件中对应的是Privacy - Location Always Usage Description和Privacy - Location When In Use Usage Description)
千万要注意的是邮件中说的NSLocationAlwaysUsageDescription对应的是Privacy - Location Always Usage Description,不是Privacy - Location Usage Description,如果你手误写了Privacy - Location Usage Description,还是会被判定为无效文件的。
写上了上面两个隐私文件,终于上传成功了,长舒一口气,耐心等待审核~~~~
上传代码过程总结:
第一次上传代码:没有写上面两个隐私文件,构建版本中版本显示了一会正在处理中,刷新界面然后就消失了,收到了上面苹果发来的邮件;
第二次上传代码:按照邮件上所说,在plist文件中添加了上面两个隐私Privacy - Location Usage Description和Privacy - Location When In Use Usage Description,(注意这次我添加的是Privacy - Location Usage Description),进行第二次上传,上传成功后构建版本出一直显示正在处理中,等了两个多小时还是显示正在处理。。。
第三次上传代码:出现上述情况,都是隐私相关在作祟,继续检查plist文件,发现位置相关的一个隐私写成了Privacy - Location Usage Description,修改成Privacy - Location Always Usage Description后,继续上传,上传成功。
网友评论