在产品新功能开发时,iOS同事提到马甲包是否也要同步进行。马甲包是什么?主包又是什么?两者有什么区别?赶紧上网搜一下。
马甲包和主包拥有同样的内容和功能,除了icon和应用名称不能完全一致,其他基本一致。
一、为什么要做马甲包
目前,马甲包主要有CP和游戏联运方制作。CP做马甲包是为了维持主包生态,解决带量问题。游戏联运则通过制作马甲包获利生存。
二、做马甲包的重要性
做马甲的初衷有很多,有的为了测试产品的某个功能,有的为了覆盖更多关键词,也有的为了试探苹果的底线,使用灰色手段,最终的目的都还是为了获取用户。
1.A/B测试
早期马甲包主要为了做测试用,后来演变成导量的方法和渠道,以应用居多
2.覆盖更多关键词
一个App关键词只能覆盖100字符,所以多做一个App覆盖的字符可以更多
3.渠道
马甲有流量,相当于多了一个渠道,可以选择为自己导流,或与别人进行换量合作
4.刷榜
刷榜有风险,利用马甲包即使被下架也没关系,马甲包刷到很好的位置,就有了用户量,进而产生价值
以上几种方式,机刷是实惠的,但是风险高,容易被苹果后台发现下架,所以一般用马甲包来做机刷,以此来抵抗风险。
总结:我们在使用马甲包的时候一定要把握两个方向,其一:导量,不管是什么产品带来量才能带来效益,效益为先。其二:抗风险,有些优化手段风险极高,但是带来的利益也是极大,所以制作马甲包就是为了抵抗风险,把利益留下。
B. ios上架原生包跟马甲包有什么区别
一楼说的很对。最明显的差异就是流畅度,ios的流畅度是所有系统不可及的。跟Mac os X一样,都是基于unix的操作系统。安卓系统要高于ios两倍的硬件才能达到与之相同的流畅程度。另外二楼的免费软件一说,我给楼主说明下:安卓资源杂乱,不明来源的软件很多。而ios的软件全部是经过苹果的严格审核的,安全性很有保障。至于这两个系统各自的软件数量,ios免费软件的数量跟安卓的差不多···ios越狱后,就可以用破解软件了。安卓系统最大的特点就是卡,特别是低配置的机器,卡,卡到爆···这两个系统没有可比性。想了解更多,楼主来找我吧。
C. ios马甲app怎么打开
方法/步骤
首先进入ASO114工具平台,选择iOS数据查询;
D. 跪求:马甲包上架技术,ios 代码混淆 马甲包过审技术!!!
从收集今年每月审核被拒原因得来的大量数据中可以看出,被拒原因 TOP3:条款 2.3、2.1、4.3(元数据、App 的完成度、重复 App/马甲包)一直是稳定的居高不下,因此开发者们一定要遵守这三条条款,以增加过审几率、节省与苹果纠缠的时间,勿要存在侥幸心理,挑战苹果。
若想通过审核,除遵守上面几项条款以外,在4.3问题上主要是改变二进制代码,如果是同一个包(马甲包)想要改变二进制代码而对功能又没有任何改变,可以使用几维安全提供的安全编译器,利用混淆的技术来改变二进制文件。
帮助过审的同时,还能利用IOS开发子团队开发的包过审马甲包加密混淆编译器可安全编译C、C++、Objective-C、Swift代码,支持安卓 NDK和iOS马甲包项目
支持iOS项目[APP、动态库、静态库]和安卓NDK项目[SO动态库、静态库]!
E. 应用提交 App Store 上架被拒的原因都有哪些
被拒的原因常见的有:
1、APP的完成度
要考虑iOS上架应用是否有明显的bug,在IPV6网络下能够流畅使用,是否有隐藏开关,测试账号是否完善等等。
2、准确的元数据
描述、截图与实际功能不符,一定要用苹果手机截图,去除隐藏功能模块代码
3、商业模式
主要是因为没有资质。所以建议大家尽可能多地把自己公司合规的证据资料发给苹果。
4、强制或暗中采集用户信息
不能暗中采集或共享用户的个人信息,将“强登录”功能修改为提示登录的版本。
5、 重复 App
当iOS上架应用的代码或者功能与已有APP相似度太高,那么有可能会被认定为马甲包。
6、功能不够完善
如果苹果人为该iOS上架应用功能太少,没有核心功能时,那么也可能审核不通过。一般打包封装的APP很容易触发这个问题。
7、支付
主要是iOS上架应用接入第三方支付,支付宝、微信等,所以还是老老实实地走苹果支付的支付方式。
8、代码违规
很可能是三方库中含有SDK,检查文档中是否有违规字符串,有的话删掉。
9、定位服务
还是那句话,iOS上架应用如果要采取用户数据信息,需要给予用户提示,得到用户的允许。
10、知识产权
主要是iOS上架应用中未经授权,使用受版权保护的第三方材料。
iOS上架还会遇到各种各样的问题,根据反馈来进行相应的修改。
如果上架App Store受阻,其实可以通过苹果企业签名和tf签名的方式来进行安装,两种方法都是不需要经过App Store审核的快速安装方式。
进入微导流,点击上方的“企业签名”或“tf上架”,上传ipa进行在线签名即可。
F. android 上架马甲包 是什么意思
简单地说就是他们的app有违规的地方无法上架,写个架子能通过验证的,然后他们把壳子拿去淘到自己的app上。
马甲包在IOS或安卓系统都是存在的,马甲app又称为影子app,app矩阵,app分身等,总的来说就是主app产品的“克隆版”,通过不同的开发者账号上架与主app功能一样的app,就是app马甲包。
通常马甲app的应用名称,副标题,icon,应用截图,包名,bundle ID,关键词,开发者账号都与主app不一样,这是为了方便通过苹果审核。
同时不同的马甲包通常也用于针对不同人群,不同场景开发app应用。当然了,马甲app的数量还取决于公司的app运营推广能力,开发支持,行业特点等等。
之所以要做app马甲包,主要有4个目的:
1.抢占应用市场有限位置
关键词搜索结果占位,榜单占位,覆盖更多关键词
2.为主app导流
各种开屏,弹窗,插屏,push广告引流下载主app,安卓热更新等等
3.规避市场风险
用于app刷量,冲榜,刷词,刷热搜等等,防下架应急措施,竞品竞争等
4.技术测试需求
技术用于AB测试,新功能测试,渠道试水,数据分析等
但是想要上架马甲包并不是容易的事情,苹果审核机制非常严格,要做好各马甲包的上传,还需做好如下5点:
1.二进制代码差异化
2.前端,UI差异化
3.开发者信息,IP地址差异化
4.二次开发,功能差异化
5.元数据差异化
App马甲包的建立有利有弊,想做这类推广的CP就需要多测试上传,多总结失败原因,并且在推广运营过程中针对不同场景做好差异化,就可以通过多个app在应用市场中获量了。
(6)什么是ios马甲包扩展阅读:
1、安装App后没有用的安装包apk及时删除
手机和个人计算机有很大的相似之处,在维护方法方面很多是相通的。现在许多经过手机厂商改进过的ROM都十分贴心,一般安装完某个App后会提醒是否删除安装包,如果没有其他用途了就可以立即删除,如果手机没有此项功能,也可手动删除。
2、定期清理缓存
长期使用社交应用会产生非常多的缓存,而且应用自己不会删除,长时间会积累许多的缓存,占用存储空间且造成卡顿,因此,可以使用手机设置里的应用程序管理里的清除缓存功能删除。还可以使用有清理垃圾功能的系统维护App。也可以卸载后重装一次。
3、使用时及时关闭不用的程序
虽然安卓系统会在内存紧张时自动结束一些进程,但在实际的应用中,应该有未雨绸缪的意识,平时就随手在多任务切换界面结束当前用不到的App,释放手机当时的运行内存,不仅有利于手机高效的运转,也防止其后台软件运行时的流量白白流失。
4、使用网页版代替客户端
大部分网站都希望用户们下载他们的客户端,对于一些网站来说,根本没必要使用App,用手机浏览器使用网页版就可以解决,且不会影响流畅和正常的运行,因此,这样可以节省一部分本地的存储空间且可以避免相应网站客户端恶劣的绑定下载以及有毒软件。
5、使用工具严控App的权限
有一些App经常自启就是因为自启权限及与之相关权限不被严格控制。现在的手机一般都有无需root就可以使用内置的权限管理工具进行管理。注意禁止一些应用的开机启动等权限。如果没有内置此类工具,也可以手动root,但要注意选择可靠的root工具、root后可能不保修等问题。
G. iOS审核被拒4.3,怎么解决
最近,苹果对于中国区的iOS开发者们要求很是严格,想必各位也吃到了苹果的2.1大礼包,满世界的寻找马甲包的混淆方案。
作者:棋牌视角
来源:棋牌视角
本文为作者授权鸟哥笔记发布,转载请联系作者并注明出处
来源:棋牌视角(ID:qipai49)
本文为作者授权鸟哥笔记发布,转载请联系作者并注明出处。
马甲包对于一家公司的产品引流起到至关重要的作用。但是最近这段时间,苹果对于中国区的iOS开发者们要求很是严格,想必各位也吃到了苹果的2.1大礼包,满世界的寻找马甲包的混淆方案。
第一次被打回
第一次被打回时,我们并没有意识到马甲包的问题有多严重,而且苹果给出的拒绝原因是我们的APP中包含敏感词汇,我们当时并没有往马甲包的方面去想,第一次被打回时,我们采用的方案是对敏感词汇进行base64+MD5的混合加密方案,然后就重新提包了。
第二次被打回
这次苹果说的很明显了,而且他们机扫了我们的二进制文件,告诉我们API名称与我们之前的一个产品非常相像,而且那个产品并不是使用这个马甲包的开发者账号。我们猜测苹果可能针对APP做了数据库,会去比对方法名。
这一次我们代价比较大,由于之前没有考虑到这层,我们的API名称就是和系统方法命名方式保持一致,导致无法引入脚本来自动替换。我们花了三个开发,和6个小时,人工对我们自定义的API名称加上了特定前缀,如ab_xxx.这个思路主要是根据念茜大佬之前在微博上发布的API混淆加密方案。念茜的脚本是将需要混淆的API添加进文件,然后全局对所有需要加密的API字段进行混淆加密。我们在此基础上更新了脚本,可以自动抓取拥有我们前缀的API进行加密。但是这个方案在后面我们完全摒弃,所以在这里不详细往下说了。
第三次打回
第三次被打回已经惊动了老板,再想不出好的固化混淆方案我觉得差不多可以收拾东西了。这次苹果的拒绝原因更令人窒息,他说我们的API加密性质太明显,认为我们的APP一定藏有什么隐藏功能,还给我们吃了一张延迟审核的黄牌。经过我们一波分析之后,认为这几次被打回的经验中,苹果没有涉及到说我们的UI有什么相似的地方,所以,只要我们能把这个马甲包做到变成我们开发人员都认为是另一个APP即可。
分析
首先感谢将混淆脚本开源的大佬!已经找不到源码是谁写的了,我们只是站在了巨人的肩膀上!
改头换面
首先,由于是从主APP上拉的分之进行开发,所以这个马甲包的scheme和工程名都没有变化,于是我们首先从这里进行开刀。我们把project名称完全换成了另一个。
API
首先base64加密API肯定不能再使用了,苹果都说了,加密特征太过明显。
幸好之前已经把所有自定义的API名称都加上了ab_前缀,使得我们写脚本很好识别。我们将所有扫描出的API放到一个plist文件中保存在本地,然后我们建立了6个数组,每个数组中有6个单词,每次从每个数组中随机抽取一个单词。将6个单词拼接成一段方法名保存在另一个plist文件中,当然,在保存前,先去重,如果这个方法名已经用过了,那我们随机再换,这样一共可以生成46656种方法名,对于我们的工程已经够用了。
图片
我们利用脚本遍历本地所有png文件,当然你可以自行添加.jpg格式遍历。根据自己的命名规则将所有图片重新命名了一波。另外我们也发现网上有个轮子可以利用shell命令对所有图片资源进行超轻量级的压缩,在不影响图片质量的情况下,改变图片的hash值。当然我们的马甲包中图片没有和主界面相似的,所以的这一步我们没有实践。
类前缀替换
这一步主要是更改文件名。程序扫描绝对地址下的所有文件,只要是带”XX”开头的文件都替换成”AB”这种,另外每次替换一个文件都要遍历所有文件,将所有用到这个头文件的文件内容进行更换。
注意
类前缀替换有时会有个别没有替换到,我没能定位到问题,但很少,可以手动查找替换
生成垃圾代码
我用plist专门搞了一个垃圾方法名,每四个方法生成一个带参数名的方法。暂时每个文件里只生成一个垃圾方法。当然可以多运行几次,就会生成几个垃圾方法
实现
混淆工程我们使用C+OC的混合编程方式。
目前已经实现的功能有:
1、图片资源修改名字
2、修改工程名
3、类前缀修改,如“GD”修改为“IE”,即修改了文件名
4、混淆随机添加垃圾代码、参数
5、修改方法名前缀
6、人工修改部分方法名,人工对重要类中的方法进行打乱排序
7、(可选)本地图片超轻量级压缩,打乱hash值,新上的马甲包建议修改
使用方法
启动参数配置
先配置启动参数再运行,如图
除第一项必选外其他都非必选。另外第一项启动参数必须放在第一行
参数解释
1.工程代码的绝对路径
2.-modifyProjectName [原工程名]>[新工程名]
3.-modifyClassNamePrefix [xcodeproj文件的绝对路径,不是pod安装后的那个打开文件] [旧类前缀]>[新类前缀]
4.-spamCodeOut
5.-ignoreDirNames [需要忽略的文件夹],[需要忽略的文件夹] 注意,Pods文件夹不在混淆范围内,不需要写
6.-handleXcassets (混淆图片文件)
7.-deleteComments (删除多余的空格和注释)
8.-chageAPIPrefix [旧方法名前缀]>[新方法名前缀] 注意,前缀要有“”才能被识别,如果之前工程中没有xx下划线开头来命名方法的,此项不要勾选
此工程可以选择混淆概率,修改工程中kPercent数值。
实际测试如下
小结
目前第三次打回后的工程已经提审,未可知能否过审,会持续更新。脚本也写的很匆忙,后期会进行优化。脚本传送门
www.it9188.com