app

ios审核被拒4.3(马甲包该如何上架)

混江龙づ霸主 提交于 2019-12-05 06:08:47
4.3一般存在3种情况,可以根据被拒回复进行判断,如果你真的看不懂被拒回复,下面一一列举,逐一排除,黑色字体是解决方案 第一种:简称代码重复,代码重复使用也有三种情况 1.可能你之前用这套源码上过一个包,现在用这套代码直接改一个logo跟名字再上一个马甲,这种基本会直接4.3 这种情况基本要改源码,第一步:工程中的文件夹的名字全部进行修改。第二步:每一个工程都有一个类前缀, 我们需要取一个长一点的类前缀, 并且这个类前缀在你的整个工程一定是一个唯一的字符串, 我们假设这个类前缀是PayDayLoan, 现在我们需要生成一个控制器, 控制器的结尾Controller也需要用一个特定的字符去代替, 比如:Director,剩下的View以及object做法类似, 就不一一介绍了,做马甲的时候就是把这些名字用另一个唯一的字符去代替, 尽量长一点。第三步:把另一个其他的工程中的类全部导入进来, 主要是混淆代码, 在现有的工程中调用, 可以没有任何效果, 只是单纯调用方法。 注:单一的加入垃圾代码混淆没用的! 2.如果你的这套源码在一个账号上提交过,但是被拒了,后来因为其他原因你不得不在别的账号上重新提交此源码,这种情况第二个账号基本也会报4.3 这种情况需要在第一个账号做一下处理, xcode新建一个应用, 直接用之前提交过的bundle Id打包,logo用一个纯白或者纯黑的图片,

最全iOS马甲包审核以及常见审核问题

孤街醉人 提交于 2019-12-05 06:07:45
从事过APP运营的开发者们,可能都听说过苹果马甲包。而对从事棋牌游戏行业的创业者来说,苹果马甲包的重要性更是不言而喻。尤其是去年棋牌马甲包大规模下架事件,更是让众多棋牌运营商损失惨重。那么,有没有什么方法能够解决苹果马甲包审核的问题呢?在此之前,我们需要先了解苹果审核的规则。 机审和人工审核 和众多平台审核的机制类似,苹果审核有机审和人工审核两部分。包上传后首先进入的是预审,会被扫描API等,没问题的话才会在iTC里出现 然后才可以提交至 Waiting。 在审核前期,也就是 Waiting For Review(等待审核)阶段一般是机审,机审不通过则直接被拒,通过后才会进入人工审核,这个阶段主要看的是App的元数据,例如标题、描述、截图等,以及检测App的功能使用情况,常遇到的ipv6也在此处检测。 2、审核时间逐渐缩短,但延期审核现象增多 虽然大家一直在吐槽苹果的审核时间,但相比于之前,例如7~8天阶段、3~4天阶段,现在已经很不错了。而且通过近三个月的审核数据对比,App审核的周期又有了进一步缩短的趋势。不过现在又出现了一个现象或者说处罚方式——延期审核。 延期审核一般针对的是大量同种类的App,比如房卡类棋牌游戏(斗地主、麻将类),还有涉及敏感题材的App,比如金融、彩票、VPN等。特别是对于游戏,苹果已经摸清了此类App开发者的套路(马甲包、隐藏支付等)

APP加固新方向——混淆和瘦身

落爺英雄遲暮 提交于 2019-12-05 05:56:52
在阿里云云栖社区举办的在线培训中,来自阿里移动安全部的陵轩带来了题为《 APP加固新方向——混淆和瘦身》的精彩分享。本次分享的主要内容包括 APP 加固的发展历程以及阿里内部对移动安全加固最新的研究——混淆和 APK 优化瘦身。 直播回顾视频: https://yq.aliyun.com/edu/lesson/play/393 以下内容是根据直播和PPT整理。 加固的意义 从安卓2.x版本起,加固技术就逐渐火了起来。最初,只有一些创业型公司涉及加固领域;随着安卓应用的逐渐升温,诸如阿里、腾讯、百度等大型互联网公司逐渐涉及该领域。 那么为什么要对APP进行加固呢?主要原因有三点:首先安卓的APP应用通常采用Java语言编写的,开发门槛低,容易被反编译(解释性语言的弊端);其次安卓市场比较混乱且可自签名,进而导致大量应用被二次打包,植入广告、木马;同时,手机Root后,黑客可利用Hook等技术手段可对应用进行动态攻击,获取应用的核心逻辑。综合这三点来看,安卓应用的安全系数是非常低的,因此APP加固就有了意义:应用加固之后可以有效减少反编译、二次打包、植入广告木马等操作。 传统加固 第一代加固技术采用的是Dex加密存储,解密时落地;落地之后通过自定义的DexClassLoader将解密出的Dex加载到内存中,然后程序运行该文件(Dex是APK的Java代码经过编译后生成的文件

iOS-APP性能优化的那些事

≯℡__Kan透↙ 提交于 2019-12-05 05:51:28
前言 本人在这家公司已经三年多了,这款三年多我一直在做的APP也烂熟于心,APP也0到1到目前的500万的用户量;对于APP的功能来说也是比较全面的,用到的技术知识点也比较多吧,APP的优化也是一直在做的事情,而且APP性能的优化也不是一朝一夕的事情,在此离别之际,我将详细说明讲解一下我在三年里对APP性能优化方面做过的一些事,大家仁者见仁智者见智,也欢迎大家进群提供宝贵的意见和建议! 这里我主要讲性能方面的优化,代码方面的优化或者说API包方面的优化请看我的另一篇博文: ? iOS-APP包的瘦身之旅(从116M到现在的36M的减肥之路) ? 基础优化 使用ARC,现在的iOS开发大家用的都是ARC,几乎没有人再去使用MRC了,使用ARC的好处就是不用再时时刻刻注意要释放创建的对象了;避免使用xib或者storyboard。 这里说一下xib和sb的缺点吧,如下: 1.占用API包比较大; 2.导致APP启动时间比较耗时,因为在APP启动main()以前需要加载他们; 3.加载速度比较慢; 4.后期的版本更新迭代维护时间成本比较高; 5.多人开发容易引起冲突。 列表图片优化 列表不论在哪一个APP中是使用最为广泛的一款控件了,在我的APP中也不例外,我们的APP只要功能列表类似于微信的朋友圈,图片有0~9张的形式还可以是视频文件,如下图: 先说一说图片吧,如果一个列表都是9张图片

iOS 马甲包制作

假装没事ソ 提交于 2019-12-05 05:50:48
一、马甲包简介 在ASO中马甲的意思就是内容与主APP一样,但icon图标、应用名不同,一般来说开发者的帐号是不同的,但也有的同鞋做的马甲开发者帐号都是同一样,不过这样的话,隐蔽性要差一些。 做马甲有哪些好处 1.替主号进行改版测试,将风险最小化。 使用主App进行改版测试会存在很多弊端,马甲的好处是可以随意更改,一旦引发不良影响又不会造成很大的损失。如果测试效果良好,则可以对主App进行相应功能迭代。 2.多入口引流 马甲app本身是可以获取新增用户的,其向主号导量的方式主要有三: ①如果马甲与主App使用同样后台,用户信息可以共享; ②通过弹窗,广告,Push等引导用户到App Store下载主App。 ③有一部份App接了网盟相互导流。 二、参考文章 https://www.jianshu.com/p/04b63de8ae23 来源: CSDN 作者: sacrifice123 链接: https://blog.csdn.net/sacrifice123/article/details/81203631

iOS马甲包审核以及常见审核问题

和自甴很熟 提交于 2019-12-05 05:47:00
iOS马甲包审核以及常见审核问题 1、苹果近期审核动态分析 2、2018年App Store算法重大调整首次曝光一、苹果近期审核动态分析 1、机审越来越完善 众所周知,应用在上架至App Store前,必须通过神秘的苹果审核团队的审核。能否在短时间内顺利通过审核,对App推广节奏和策略、以及迭代等的应该是非常大的! 首先讲一下提审的流程 目前应用提审的整个流程大体分为五个阶段,这个登录过iTC后台或操作过App上架的小伙伴应该都知道:Prepare For Upload(准备上传)、Waiting For Review(等待审核)、 In Review(审核)、Pending Developer Release(等待开发者发布)、Ready For Sale(准备销售)。 其中 Waiting For Review(等待审核)和In Review(审核)这两个阶段是不受开发者控制的,也就是说,这两个阶段由审核人员操控。 下面说一下机审和人工审核 苹果审核大体分为三部分,预审、机审和人工审核。包上传后首先进入的是预审,会被扫描API等,没问题的话才会在iTC里出现 然后才可以提交至 Waiting。 在审核前期,也就是 Waiting For Review(等待审核)阶段一般是机审,去年闹得沸沸扬扬的4.3就是通过机器扫描扫代码; 机审不通过则直接被拒,通过后会进入人工审核,即In

app性能测试2

巧了我就是萌 提交于 2019-12-05 05:21:53
找坐标步骤: 设置 -> 关于手机 -> 版本号 连续点击,直到显示 您已处于开发者模式,无需进行此操作 为止,退出进入 开发者选项 ,找到 指针位置 ,开启后点击屏幕即可看到坐标 先输入from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage,再输入MonkeyRunner.alert("hello","hi","OK"),就会弹出 可以在sdk/tools/monkeyrunner.bat里进行输入 把上面脚本保存成py文件,然后在cmd里输入monkeyrunner xx.py文件,一定要输入绝对路径,也可以在monkeyrunner.bat里输入相对路径(这里的相对路径是相对于monkeyrunner.bat) img2=MonkeyRunner.loadImageFromFile('c:\\files\\test_1234.png','png') MonkeyRunner.sleep(3) flag=image.sameAs(img2,0.65) # 图像对比 MonkeyRunner.sleep(1) print flag # true或者false RSS是每个app都是一个内存,如10M,PSS是每个app都乘以10M的比例 adb shell "top -d 1 |

第七次小组讨论--市场价值

我是研究僧i 提交于 2019-12-05 05:11:16
一、会议讨论 讨论时间 : 2019.11.16 讨论地点 : 主楼阶梯教室 小组组员 : PM:黄晓天 前台:胡昊、常恒 后台:陈虹、程福建 UI:黄杉杉、冯洋月 软件测试:陈祥郁 会议记录:顾雪婷 客户扮演:侯英龙 会议目的 : 讨论app在市场的价值 讨论内容 : PM:这款app完成之后能站住市场吗 前台:app界面优雅,搭载的功能繁多,用户第一次使用会感觉app不单调 后台:有第三方众多小程序,app后端数据功能开发完善,理论和逻辑清晰 前台:我们所完成的app会给使用它的新用户带来焕然一新的感觉,总体程度上会给客户带来独一无二的视觉体验 客户:虽然在市面上并没有这种app的软件,但是就目前中国可持续发展的战略来看,这款app在不久的将来会给这个社会带来一次日常生活的大改革 前台:在目前的界面来看我们可以抛出app 在后续可以发展pc端,ios端多款端口app,让这款app的客户范围扩大 客户:如果这些可以实现,那在不久的将来也可以作为家长教育孩子垃圾分类的教学app,让他们从小就认识我们应该一起保护这社会环境,自然环境 前台/后台:这个我们可以尽量去实现,让我们的app能够影响更多人,让更多人知道垃圾分类的重要性 前台:另外我们也可以加载一些,关于垃圾分类的宣传窗口,更加生动形象的去告诉世人垃圾分类的重要性,在后期使用的人多的时候

Robotframework自动化3-APP启动

僤鯓⒐⒋嵵緔 提交于 2019-12-05 04:38:52
前言 前两节已经讲述了环境的搭建,这节介绍APP是如何运行的 介绍 1、创建项目 2、创建测试套件 3、创建测试用例 4、APP运行 一、创建项目 打开ride,开始创建项目,左上角File-->New Project,Type选择File,Format选择Robot 二、创建测试套件 鼠标放到测试项目上右键选择New Suit,type选择File,Format选择ROBOT 三、创建测试用例 鼠标放到测试套件上右键选择New Test Case 保存之后就会看到这样的界面 四、APP运行 真实场景下我们运行得时候大部分都是真机,所以我们在这里以真机为例 1、先导入AppiumLibrary,鼠标点击测试套件--->Library--输入AppiumLibrary,点击OK、 此时,如果页面上的AppiumLibrary是红色的则说明你没有AppiumLibrary这个库,需要先安装才可以。 使用国内镜像进行安装: pip2 install robotframework-AppiumLibrary -i http://pypi.douban.com/simple/--trusted-host pypi.douban.com 2、然后再重新引用一次,重复步骤1.如果显示黑色则表示那种成功了,如果还是红色得话,可以打开log看一下是什么原因 查看Tools-view ride log

node.js框架 express

别等时光非礼了梦想. 提交于 2019-12-05 04:34:39
express是在node.js的基础上,拓展出的一个简洁实用的框架结构,运用这个东西,我们可以更方便的处理很多的事情。只要上手了,那就是个贝多芬! 一般安装express有几种方法。 第一,使用npm安装,cmd中输入npm install express -g,这个-g是全局安装,也就是安装在被你用"config set global"设置的文件夹里,需要注意的是,安装完了以后,需要改变环境变量以及其路径来指向你的安装目录。 第二,复制粘贴。(……废话!)不过这样的存在安全性问题,因为在复制粘贴的过程中,可能会有数据丢失之类的情况出现。 最后,值得注意的是,一旦在你的nodejs中存在了一个文件夹里面放置了express框架,而且他被你引用过,那么无论你怎么挽救也是无用的……要么把它删除,要么把它覆盖。 express() 创建一个express应用程序 相当于new一个对象,但是还能少写三个字母,将express存入变量app中,从此app翻身做主人! 1 2 3 4 5 6 7 var express = require( 'express' ); var app = express(); app.get( '/' , function (req, res){ res.send( 'hello world' ); }); app.listen(3000); app.set