美文网首页副本相关程序员iOS入的那些坑
iOS手游“马甲”那些事……

iOS手游“马甲”那些事……

作者: Ampaw | 来源:发表于2018-07-09 14:18 被阅读198次
    志博云天

    一、走进马甲


    摘要

      随着马甲包的出现,给ASO优化带来了新的方式,也给优化工作带来了极大的便利。我们在使用马甲包的时候一定要把握两个方向:
      1. 导量,无论是什么产品,唯有带来量才能带来效益,效益为先;
      2. 抗风险,有些优化手段风险极高,但是带来的利益也是极大,所以制作马甲包是为了抵抗风险,把利益留下。

    Q:为什么做马甲包,做马甲包有哪些好处?
    A:

      1. 马甲包最核心的作用就是获取有效客户,另一方面是增加关键词的覆盖量

      众所周知,单个App只能有100个字符的关键词,多个App就意味着可以覆盖N*100个字符的关键词,关键词覆盖越多就意味着能够被更多的客户搜索到。有展现量才有下载量,有下载量才有可能发展成为有效客户。

      2. 导量

      主包和马甲包属于同一个平台,用户信息可以共享。马甲包可以通过弹窗、广告、Push等引导用户下载主包,也可以通过接入网盟相互导流。

      3. 抗风险

      正常情况下,任何一款产品都要不断地更新新功能。如果我们直接在主包上更新,一旦新功能不被用户接受就损失大了,前期大量投资带来的用户将会流失。这对很多产品开发者来说都是 “不可承受之痛” !如果使用马甲包,则可以随意测试新功能,好的功能才在主包上迭代。

    Q:如何最大程度的规避马甲产品被苹果下架风险?
    A:

      1. 申请开发者账号时,一个身份一个号,一个号一个马甲,各不相关;
      2. 将主包功能分拆独立,形成新的应用;
      3. 上传应用包时,避免IP和MAC地址相同。


    二、制作马甲


    摘要

      二进制代码是应用市场判别产品的唯一标准,把代码做一些调整或修改,便会生成一个全新的二进制代码,这是制作马甲包的唯一方式。与此同时,功能局部化、产品简单化、页面差异化、整套UI更改等都是制作马甲包的有效处理。

    出包指南
    (一)出包准备

      1. 出包类型:原生包、马甲H5壳包;
      2. 服务器部署:iOS服需在海外(美国最佳)搭建审核服,避免审核过程中因网络问题引起被拒;
      3. 完善IP检测机制,实时掌握苹果审核进入App的进度。

    (二)游戏主要界面相关修改

      修改App启动后第一个页面,保证马甲与主App的第一个页面不同,从先入视觉迷惑苹果审核人员。界面修改的目的在于区别主游戏,且在审核服修改。界面简单或者夸张,向两个极端,并对进入游戏的场景进行适当的减少或增加。

    常见处理:
      1. 启动页、闪屏页修改;
      2. 选服界面修改;
      3. 创角 / 选角界面修改;
      4. Loading页修改;
      5. 地图随机、角色外显装备随机、UI按钮隐藏或修改样式;
      6. 充值UI界面改动、修改UI样式、颜色或新增充值档位,过审后隐藏;
      7. 初始加载无需从服务器下载资源,减少因网络问题出现画面加载慢;
      8. 其他修改,如进入游戏背景音乐的修改等。

    (三)游戏工程代码相关修改

      代码中严禁出现敏感字样!

    常见处理:
      1. 审核服避免出现“审核”、“测试”、“test”等字样;
      2. 不可出现公司 logo 、版权信息;
      3. 原生游戏开启符合苹果要求的充值(苹果内购);
      4. 全局搜索游戏代码与注释,移除 alipay,wechat,weixin,pay等敏感词;
      5. 修改工程名,已有的代码进行混淆(改类名、函数名、静态变量名等),特别是相关域名可进行加密处理;
      6. 加入无用的混淆代码,混淆代码做到自动随机生成,同一个游戏打出不同的包,混淆代码不一样。并在游戏合适的地方假装调用,示例如下:

        BOOL isEnter = NO;
        if (isEnter == YES) {
            // 混淆代码,调用入口
        }
    
    (四)游戏资源文件相关修改

      1. 图片资源使用 ImageMagick 对 png 图片做轻量压缩;

    a.安装 ImageMagick,brew install imagemagick
    b.压缩工程目录下所有 png 文件,find . -iname "*.png" -exec echo {} \; -exec convert {} {} \;
    

      2. 修改资源文件的MD5及Hash值;
      3. 资源改名以及添加无用的资源。

    (五)规避拒审4.3条款

      1. ipa包特征(代码、资源相似性);
      2. 开发者账号(每个马甲包出包使用对应的账号);
      3. 打包电脑(使用不同的IP与设备打包);
      4. 上传IP(上传ipa包时,切换IP);
      5. 材料相似性(iTC后台材料,如宣传图、icon、版权等不要出现相同)。

    (六)打包注意事项

      1. 断网打包;
      2. 连网打包需换IP;
      3. 不同MAC设备打包;
      4. Xcode登录对应开发者账号打包。


    三、被拒4.3条款,部分解决方案


    (一)元数据方面修改

      1. 修改应用程序价格,打造与原产品不同的价格级别;
      2. 修改应用程序发布地区,打造与原产品不同的售卖地区或分不同地区运营;
      3. 修改产品分类,打造与原产品不同的产品侧重属性分类。

    (二)二进制方面修改

      1. 升级version,升级一个版本号提交审核;
      2. 换bundle id,换一个包再提交审核;
      3. 换开发者账号,换不同账号提交审核;
      4. 修改素材、UI色调、logo、主色调等;
      5. 修改功能界面,此处可改功能做小开关控制;
      6. 添加垃圾代码或注释块,此处主要防苹果机审扫描(多加点注释,无关的也无所谓)。



    示例:
    1. 如果之前用这套源码上过一个包,现在用这套代码直接改一个logo跟名字再上一个马甲,这种基本会直接4.3

    这种情况,需要修改源码:
      第一步:工程中文件夹的名字全部进行修改;
      第二步:每一个工程都有一个类前缀,需取一个长点的类前缀,且这个类前缀在你整个工程中一定是唯一的字符串。
      第三步:将垃圾代码全部导入工程并调用,目的是混淆代码。

      注:单一的加入垃圾代码混淆是没用的!
    1. 如果这套源码在另一个账号上提交过,但是被拒了,后来因为其他原因你不得不在别的账号上重新提交此源码,这种情况第二个账号基本也会直接4.3

    2. 如果你的源码只要提交到itunes connect里面,就算没提交审核,当你再次使用此源码提交审核时,基本也会直接4.3

      对于2,3种情况需要在第一个账号做一下处理,Xcode新建一个应用,直接用之前提交过的bundle Id打包,logo用一个纯白或者纯黑的图片,将这个新建的应用提交到应用市场,构建版本中将之前被拒的包移除, 用这个新的应用顶替之前被拒的包,app名字改成 “作废-此应用不再提交” ,后面再随便加一个数次,因为这个名字别人已经用过了, app描述跟app名字一样,剩下的信息全部删除,最后点击保存即可。



    附:苹果三种审核机制

    1. 预审核
        扫描api及plist文件字符缺失。
        此处分两步:
          第一步为上传时,苹果Application Loador应用对于适配icon等的检查;
          第二步为上传后,苹果的功能性检查【如:配置了Push功能,但有缺失或者未打开功能,则会邮件提示】等。

    2. 机审
        此处扫描支付SDK及马甲情况,机器扫描主要看代码块。

    3. 人工审核
        此处主要检测功能、体验测试【如:使用测试账号登录应用体验功能,其他是否有明显bug(含ipv6检测)等】。


    PS:希望这些积累对您有一定帮助,如你有更好的处理方案,还望在下方留言分享,相互学习。谢谢!

    相关文章

      网友评论

      • 陈康stozen:正好需要研究ASO,正好有安总👍
        Ampaw:@陈康stozen 多谢陈总谬赞,我也只能算是了解些罢了!

      本文标题:iOS手游“马甲”那些事……

      本文链接:https://www.haomeiwen.com/subject/xgewuftx.html