array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 苹果审核2.1大礼包,这几个方面入手。 - 爱码网

原文:https://www.cnblogs.com/taoxu/p/9054968.html

 

你收到大礼包了吗?


 

      突然间的2.1大礼包成了一个重灾区,苹果加大了中国区的审核力度。但其实归根结底,会触犯到这个大礼包的App很大部分或者说几乎都是和这个关键词挂钩的 ---“马甲包”!

      这个“马甲包”的含义我们就不在多做解释,相信大家都明白。但其实作为一个开发者而言,自己是很不喜欢马甲包,但没办法有些时候很多事不是你想怎样就能怎样的,那既然因为这个原因收到2.1的大礼包那你该怎样处理呢?总结自己和这个2.1纠缠的经验,我们在下面会提供一些方法来处理。

 苹果审核2.1大礼包,这几个方面入手。

 

 

 

关于App Store的审核团队其实你有必要了解一下       


 

      这一点其实我觉得我们真的还是有必要了解一下的,比如说我听到的下面这些疑问:

      1、App Store中国区的审核是在中国吗?

      2、审核时间是不是和我们上班的时一样?

      3、App Store的审核是不是都是人工审核?

      4、审核团队肯定Very大,这次提交不通过换个账号在提交就不会是同一个人,会不会审核一不小心过了?

      5、审核流程到底是什么样子的?

      6、审核我App的是GG还是MM,の这个就是我们乱扯的......

      针对上面的这些问题,用我自己收集到的信息再加上自己的判断说一些上面的这些问题:

 

      1、App Store中国区的审核是在美国,不在中国!

      App Store中国区的审核和其他区的一样,审核是统一集中在美国,并且是有中国人在的,这也就是为什么他们那么了解中国政策以及有些同学说给他们发的中文邮件也OK的原因,还甚至有同学说苹果给自己回复了中文邮件,这个真的没遇到过,但我还是建议发邮件的时候最好用中英文双语比较好,因为开发者的邮件大多是直接“谷歌、有道”翻译的!有些翻译的会比较难理解,如果你中文在写一遍能帮助到审核人员正确理解你的意思!

      苹果 App Store 的所有审核团队都是在美国总部吗?还是每个区域市场单独审核?--知乎

 

      2、审核时间是不是和我们上班的时一样?

      の要这么想就真的错了,审核时间是北京时间夜晚,按照我们和美国的时差,你睡觉的时候就是人家上班的时候,这也说明了审核地点的确是在美国!你要连我们项目的审核时间都不知道是晚上,那我只能说小伙子,你晚上睡得太早了!告诉你们老板 you need add class!

      还有一点这里需要提的,按照我提交几十次APP的经验,你要想第二天又个审核结果,最好在我们北京时间早上提交应用,这也就是为什么我们早上有了审核结果的时候,要想尽快再有结果,就最好在早上改好重新提交审核!!要是到了中午,那一般情况下就得隔天才有结果了!

 

      3、App Store的审核是不是都是人工审核?no no no 

      今年之所以大片的出现2.1大礼包,就是因为你死在了机器手里,这里我们把审核的大概的流程也说一下,等于把第五个问题在这里也提前回答了:

      预审阶段

      提交App Store之前 Application Loader 做的那些就算试一次预审了,这关都过不了,那就说明包有问题啊! 

      我们提交之后的等待审核

      提交之后会进入等待审核,这一步其实还是机器审核的,人工智能在这一步应该有用到,并且在这一步会有这样一个操作: 账号定位和代码定位。这两个问题很关键,  账号定位之后后续提交的项目都会受到前面提交版本的影响的,这点相信都有体会和理解,再有一点就是代码定位,这个就没有账号定位那么简单了。假如你的项目被拒了,你换个账号提交,这时候苹果扫描到你的代码数据和以前包的代码数据很相似的时候,可能就会给你一个2.1大礼包了,这个就得我们做些代码混淆或者天啊及垃圾代码的处理,这些后面说,知道有这么回事就可以了。

     审核通过之后就看是你自己是选择手动了手动发布还是自动发布了,这一步我们就不在多说了!

 

      4、审核团队肯定Very大,这次提交不通过换个账号在提交就不会是同一个人,会不会审核一不小心过了?

      关于这个问题,我直接给出回答就是错了,团队真的不大,很有可能你就两次撞车到同一个人手里,关于这个问题再给大家看一篇比较有说服力的文章,可以很好的帮你解决这个疑问!

      2018-03-29揭秘苹果App Store审核团队,知己知彼好过审

 

      6、审核我App的是GG还是MM?

      gun............哈哈

 

 

说正题:2.1大礼包怎么处理?


 

       说怎么处理之前至少得说说什么是2.1大礼包啊!下面是这个大礼包的截图,原邮件和谷歌翻译版同框!

 

苹果审核2.1大礼包,这几个方面入手。

     

      这就是传说中的2.1大礼包,针对上面的问题说说我们能做的处理有哪些!

      首先:要是你的App没有触犯到上面的这写内容(其实大家有没有触犯这些心理有很清楚的,哈哈)建议真诚的回复苹果的邮件,好好沟通,当然剩下的内容你也就不用再看了,赶紧去给苹果写邮件去吧!

      其次:真的触犯了这些的,我们动手吧!

      要是你的应用的确是马甲包,你要做的就是下面这些事了:

 

      1、修改工程名

      2、图片资源修改名字,并且改变图片的hash值,不要让检测到时以前被拒的资源

      3、类名你也得改改了

      4、混淆随机添加垃圾代码、参数

      5、修改方法名

      6、重要类中的方法进行打乱排序

      7、如果可以建议换个账号提交,并且换个IP去提交

      8、如果可以建议换一台电脑去打包

 

      1、修改工程名

          修改Xcode工程名称(完美版)

          在iOS项目中,如何完美的修改项目名称

          上面这两篇属于手动修改的,当然我们还是有脚本的,脚本的地址我们在最下面给大家。以及脚本的一些使用说明我也会在下面再细说的。

 

      2、图片资源修改名字,并且改变图片的hash值

           关于这一点,在下面的脚本中我们 .xcassets 文件里面的资源是直接能用脚本改的,其他的一下资源可能的我们手动改一下,当然你要改脚本也是完全可以的,因为我们站在巨人的肩膀上,而巨人把脚本开源了!

      剩下的这些修改类名以及修改函数名这些等等的我们的脚本里面都有,我们在这里也就不在专门去说了。我们说重点吧,脚本走起......

           

      使用 ImageMagick 对 png 图片做轻量压缩,及不损失图片质量,又可改变图片文件 hash 值。方法:

      安装 ImageMagick,brew install imagemagick

      压缩工程目录下所有 png 文件,find . -iname "*.png" -exec echo {} \; -exec convert {} {} \;

 

 

你要的重点在这里


 

      首先,脚本传送门......    https://github.com/klaus01/KLGenerateSpamCode (感谢作者)

      苹果审核2.1大礼包,这几个方面入手。

 

      这里说两点是需要注意的,我们在图上有标注,但这里还是再说一次会比较好:

      1、绝对路劲一定要注意!!

      2、生成垃圾代码存放路劲,你可以在桌面直接建一个文件夹保存就行了,他会保存生成的.h 和.m的文件,当你编译的时候有时候会生成私有方法,报错的你直接删除就行了,反正都是垃圾代码,但在项目中还是新建一个文件保存吧,不然会对以后的开发者造成误导!

 

      最后参考的文章在这里:(感谢!)

      “苹果2.1大礼包”审核被拒,这有份iOS马甲包混淆方案

      马甲包混淆工程

      最后还是脚本地址--走起:https://github.com/klaus01/KLGenerateSpamCode

相关文章: