HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

建议把版本号增加到打包页面

新版本

建议把版本号增加到打包页面,选择打包的时候,直接可以填写版本号

建议把版本号增加到打包页面,选择打包的时候,直接可以填写版本号

插件市场是不是招不到人审核了,什么插件都往上放,要付费直接标明可好,打着开源浪费参考人时间

插件市场是不是招不到人审核了,什么插件都往上放,要付费直接标明可好,打着开源浪费参考人时间

插件市场是不是招不到人审核了,什么插件都往上放,要付费直接标明可好,打着开源浪费参考人时间

【uni-app实战-分享01】uni-app微信公众号授权登录,特别是vue模式的坑

uniapp 教程

用uni-app的朋友们都知道,uni-app是用vue开发的,那么有2种页面展现方式。

方式1:history,方式2:hash。hash模式带了个#号,而且发布到手机上,页面不能刷新,一刷新就404了。没办法,只能是选history模式。

下面说下3点注意事项:

1、保留登录前的页面参数。为了不让参数传到后台,并且在微信授权链接带来带去,可以将参数和登录前的地址存到本地缓存,代码如下:

let pages = getCurrentPages();  

//如果不是登录页  

if ("pages/login/login" != currentPage.route) {  

//保存登录前的地址  

        uni.setStorageSync("currentPage", currentPage.route);  

        //保存登录前的参数  

        uni.setStorageSync("currentPageOptions", currentPage.options);  

}

2、后端代码。基本没什么好讲的,就是一个跳过去授权,然后回调。回调的话填uni-app的登录成功地址,写入缓存。

// 存入登录信息  

uni.setStorageSync('token', options.token);  

uni.setStorageSync('user_id', options.user_id);  

// 获取登录前页面  

let url = '/' + uni.getStorageSync('currentPage');  

// 获取登录前参数  

let pageOptions = uni.getStorageSync('currentPageOptions');  

if(Object.keys(pageOptions).length > 0){  

      url += '?';  

     for(let i in pageOptions){  

            url += i + '=' + pageOptions[i] + '&';  

     }  

     url = url.substring(0, url.length - 1);  

}  

// 重载页面  

uni.reLaunch({  

       url: url  

});

3、配置路由跳转,以nginx为例,否则访问不到。比如打包后的代码放在h5目录下,则按以下设置:

location /h5 {  

try_files $uri $uri/ @router;  

}  

location @router {  

         rewrite ^.*$ /h5/index.html last;  

}

经过以上3点设置,登录前的参数和页面能够保留和跳转,发布到手机端都能正常登录访问。

喜欢的朋友点个关注,全是实战干货。

继续阅读 »

用uni-app的朋友们都知道,uni-app是用vue开发的,那么有2种页面展现方式。

方式1:history,方式2:hash。hash模式带了个#号,而且发布到手机上,页面不能刷新,一刷新就404了。没办法,只能是选history模式。

下面说下3点注意事项:

1、保留登录前的页面参数。为了不让参数传到后台,并且在微信授权链接带来带去,可以将参数和登录前的地址存到本地缓存,代码如下:

let pages = getCurrentPages();  

//如果不是登录页  

if ("pages/login/login" != currentPage.route) {  

//保存登录前的地址  

        uni.setStorageSync("currentPage", currentPage.route);  

        //保存登录前的参数  

        uni.setStorageSync("currentPageOptions", currentPage.options);  

}

2、后端代码。基本没什么好讲的,就是一个跳过去授权,然后回调。回调的话填uni-app的登录成功地址,写入缓存。

// 存入登录信息  

uni.setStorageSync('token', options.token);  

uni.setStorageSync('user_id', options.user_id);  

// 获取登录前页面  

let url = '/' + uni.getStorageSync('currentPage');  

// 获取登录前参数  

let pageOptions = uni.getStorageSync('currentPageOptions');  

if(Object.keys(pageOptions).length > 0){  

      url += '?';  

     for(let i in pageOptions){  

            url += i + '=' + pageOptions[i] + '&';  

     }  

     url = url.substring(0, url.length - 1);  

}  

// 重载页面  

uni.reLaunch({  

       url: url  

});

3、配置路由跳转,以nginx为例,否则访问不到。比如打包后的代码放在h5目录下,则按以下设置:

location /h5 {  

try_files $uri $uri/ @router;  

}  

location @router {  

         rewrite ^.*$ /h5/index.html last;  

}

经过以上3点设置,登录前的参数和页面能够保留和跳转,发布到手机端都能正常登录访问。

喜欢的朋友点个关注,全是实战干货。

收起阅读 »

IOS开发和发布证书申请流程

查看附件

查看附件

android云打包启动图错误:Execution failed for task ':app:mergeReleaseResources'.

.9.png

问题描述:

uniApp中设置了安卓9.png格式的启动图片以后,进行安卓APP云打包出现错误,错误日志:

FAILURE: Build failed with an exception.  

* What went wrong:  
Execution failed for task ':app:mergeReleaseResources'.  
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed  
Output: error: top-left corner pixel must be either opaque white or transparent.  

......(此处省略更多)......

出现问题的原因及解决办法:

使用draw9patch工具制作保存出来的.9.png图片是包含着黑边的,该黑边本就用于指定哪些部分可以被拉伸填满容器,哪些部分保持不变,如果像这篇文章《androidUI设计 .9.png 制作及去黑线》,最后介绍的使用xUltimate-d9pc-x86工具去除黑边后,那打包就出现错误了,黑边是Android的.9.png图片实现自适应的核心,因此不能去除。

所以,使用draw9patch工具制作保存出来的.9.png启动图片,就直接使用了,不用处理掉黑边。

注:draw9patch工具制作保存出来的.9.png启动图片尺寸会比原图多1-2px,这不影响使用。(若有帮助请点个赞,本人也是在这个坑里吃了不少苦,为了能帮助到其它人,特意写了这个经验)

继续阅读 »

问题描述:

uniApp中设置了安卓9.png格式的启动图片以后,进行安卓APP云打包出现错误,错误日志:

FAILURE: Build failed with an exception.  

* What went wrong:  
Execution failed for task ':app:mergeReleaseResources'.  
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed  
Output: error: top-left corner pixel must be either opaque white or transparent.  

......(此处省略更多)......

出现问题的原因及解决办法:

使用draw9patch工具制作保存出来的.9.png图片是包含着黑边的,该黑边本就用于指定哪些部分可以被拉伸填满容器,哪些部分保持不变,如果像这篇文章《androidUI设计 .9.png 制作及去黑线》,最后介绍的使用xUltimate-d9pc-x86工具去除黑边后,那打包就出现错误了,黑边是Android的.9.png图片实现自适应的核心,因此不能去除。

所以,使用draw9patch工具制作保存出来的.9.png启动图片,就直接使用了,不用处理掉黑边。

注:draw9patch工具制作保存出来的.9.png启动图片尺寸会比原图多1-2px,这不影响使用。(若有帮助请点个赞,本人也是在这个坑里吃了不少苦,为了能帮助到其它人,特意写了这个经验)

收起阅读 »

uniapp vue 小程序 公众号 接外包

本人长期接外包,有需要的老板欢迎咨询。
商城,直播,官网都可。
微信1042608617

本人长期接外包,有需要的老板欢迎咨询。
商城,直播,官网都可。
微信1042608617

xcode中设置ios启动图,并生成官方zip文件方法

uni_app

之前的文章有问题,感谢370293265@qq.com大佬的经验分享,如果是单背景可以借鉴他的文章,或者直接下载文章中的连接,文章地址:
https://app.yinxiang.com/fx/280d41e3-3aba-420f-895c-aeec84a2ede5,资源地址:LaunchScreen.storyboard_.zip

继续阅读 »

之前的文章有问题,感谢370293265@qq.com大佬的经验分享,如果是单背景可以借鉴他的文章,或者直接下载文章中的连接,文章地址:
https://app.yinxiang.com/fx/280d41e3-3aba-420f-895c-aeec84a2ede5,资源地址:LaunchScreen.storyboard_.zip

收起阅读 »

为什么应该在uni-app项目里使用luch-request?

request

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。

项目的开发离不开数据交互,一个好的request请求库可以让我们的开发事半功倍。uni-app也不例外,uni.request只提供基础请求功能,无法达到项目开发的要求,luch-request应运而生。

luch-request是什么?

luch-request 是一个基于Promise 开发的uni-app跨平台、项目级别的请求库,它有更小的体积,易用的api,方便简单的自定义能力。

luch-request诞生于19-05月,至今已迭代20多个版本。DCloud插件市场request类插件下载量第一。支持npm下载。

它能为我们解决什么问题?

  • 支持全局挂载
  • 支持多个全局配置实例
  • 支持自定义验证器
  • 支持文件上传/下载
  • 支持task 操作
  • 支持自定义参数
  • 支持多请求拦截器/响应拦截器
  • 对参数的处理比uni.request 更强

也许你还不明白这些有什么用。但是他却对应着我们开发中一个一个的痛点。

你的数据获取方式

uni.request({  
    url: this.$baseUrl + 'api/user?arg1=data1'  
    method: 'POST',  
    data: {id:1},  
    header: {Content-Type: '...', token: '....'}  
    success: (res) => {},  
    fail: (err) => {}  
}) 

使用luch-request后

this.$http.post('/api/user', {  
    id: 1  
}, {  
    params: {  
        arg1: data1  
    }  
}).then(res => {  
    ...  
}).catch(err => {  
    ...  
})

它有什么优势?

条件编译开发: 减少代码体积,减少开发中debug时的误导影响。看不到对应终端额外的参数。

极易的自定义能力: 有些插件会把loading、auth等参数加入配置,使其做一些请求之外的操作,这些配置并不是所有人都会使用。request请求库只需专注于请求即可。luch-request对额外操作的处理则更为优雅,增加了custom配置,使开发者可以做一些自定义操作。

http.setConfig((config) => { /* config 为默认全局配置*/  
  config.baseURL = 'http://www.quanzhan.co' /* 根域名 */  

  config.custom = {  
    loading: true // 默认有loading  
  }  
  return config  
})  
http.interceptors.request.use((config) => { /* 请求之前拦截器。可以使用async await 做异步操作 */  
  config.header = {  
    ...config.header,  
    a: 1 // 演示拦截器header加参  
  }  
  // 演示custom 用处  
  if (config.custom.loading) {  
    uni.showLoading()  
  }  
  return config  
}, (config) => {  
  return Promise.reject(config)  
})  

http.interceptors.response.use(async (response) => { /* 请求之后拦截器。可以使用async await 做异步操作  */  
  // if (response.data.code !== 200) { // 服务端返回的状态码不等于200,则reject()  
  //   return Promise.reject(response)  
  // }  
  if (response.config.custom.loading) {  
    uni.hideLoading()  
  }  
  return response  
}, (response) => { // 请求错误做点什么。可以使用async await 做异步操作  
  console.log(response)  
  if (response.config.custom.loading) {  
    uni.hideLoading()  
  }  
  return Promise.reject(response)  
})  

// 单接口不想要loading  
http.get('user/list', {custom: {loading: false}})  
http.post('user/list', {}, {custom: {loading: false}})  

易用的api设计: 部分api设计为降低学习成本,参照axios设计。并扩展一些其它的api,入门更加容易。

...

快速上手

npm

npm i luch-request -S

cli 用户使用npm 包需增加以下配置项目根路径下创建vue.config.js 文件,增加以下内容

// vue.config.js  
 module.exports = {  
      transpileDependencies: ['luch-request']  
 }  

GitHub

GitHub

使用DCloud/luch-request 文件夹即可

DCloud插件市场
DCloud插件市场

luch-request官网

luch-request官网

更新历史

更新记录

继续阅读 »

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。

项目的开发离不开数据交互,一个好的request请求库可以让我们的开发事半功倍。uni-app也不例外,uni.request只提供基础请求功能,无法达到项目开发的要求,luch-request应运而生。

luch-request是什么?

luch-request 是一个基于Promise 开发的uni-app跨平台、项目级别的请求库,它有更小的体积,易用的api,方便简单的自定义能力。

luch-request诞生于19-05月,至今已迭代20多个版本。DCloud插件市场request类插件下载量第一。支持npm下载。

它能为我们解决什么问题?

  • 支持全局挂载
  • 支持多个全局配置实例
  • 支持自定义验证器
  • 支持文件上传/下载
  • 支持task 操作
  • 支持自定义参数
  • 支持多请求拦截器/响应拦截器
  • 对参数的处理比uni.request 更强

也许你还不明白这些有什么用。但是他却对应着我们开发中一个一个的痛点。

你的数据获取方式

uni.request({  
    url: this.$baseUrl + 'api/user?arg1=data1'  
    method: 'POST',  
    data: {id:1},  
    header: {Content-Type: '...', token: '....'}  
    success: (res) => {},  
    fail: (err) => {}  
}) 

使用luch-request后

this.$http.post('/api/user', {  
    id: 1  
}, {  
    params: {  
        arg1: data1  
    }  
}).then(res => {  
    ...  
}).catch(err => {  
    ...  
})

它有什么优势?

条件编译开发: 减少代码体积,减少开发中debug时的误导影响。看不到对应终端额外的参数。

极易的自定义能力: 有些插件会把loading、auth等参数加入配置,使其做一些请求之外的操作,这些配置并不是所有人都会使用。request请求库只需专注于请求即可。luch-request对额外操作的处理则更为优雅,增加了custom配置,使开发者可以做一些自定义操作。

http.setConfig((config) => { /* config 为默认全局配置*/  
  config.baseURL = 'http://www.quanzhan.co' /* 根域名 */  

  config.custom = {  
    loading: true // 默认有loading  
  }  
  return config  
})  
http.interceptors.request.use((config) => { /* 请求之前拦截器。可以使用async await 做异步操作 */  
  config.header = {  
    ...config.header,  
    a: 1 // 演示拦截器header加参  
  }  
  // 演示custom 用处  
  if (config.custom.loading) {  
    uni.showLoading()  
  }  
  return config  
}, (config) => {  
  return Promise.reject(config)  
})  

http.interceptors.response.use(async (response) => { /* 请求之后拦截器。可以使用async await 做异步操作  */  
  // if (response.data.code !== 200) { // 服务端返回的状态码不等于200,则reject()  
  //   return Promise.reject(response)  
  // }  
  if (response.config.custom.loading) {  
    uni.hideLoading()  
  }  
  return response  
}, (response) => { // 请求错误做点什么。可以使用async await 做异步操作  
  console.log(response)  
  if (response.config.custom.loading) {  
    uni.hideLoading()  
  }  
  return Promise.reject(response)  
})  

// 单接口不想要loading  
http.get('user/list', {custom: {loading: false}})  
http.post('user/list', {}, {custom: {loading: false}})  

易用的api设计: 部分api设计为降低学习成本,参照axios设计。并扩展一些其它的api,入门更加容易。

...

快速上手

npm

npm i luch-request -S

cli 用户使用npm 包需增加以下配置项目根路径下创建vue.config.js 文件,增加以下内容

// vue.config.js  
 module.exports = {  
      transpileDependencies: ['luch-request']  
 }  

GitHub

GitHub

使用DCloud/luch-request 文件夹即可

DCloud插件市场
DCloud插件市场

luch-request官网

luch-request官网

更新历史

更新记录

收起阅读 »

appstore的5.5寸、6.5寸和12.9寸屏幕截图的生成方法

使用香蕉云编就可以将普通的浏览器截图生成带状态栏的、满足app store尺寸的截图了,可以生成5.5寸、6.5寸和12.9的屏幕截图

没有mac电脑的朋友可以用这个来上架,windows就可以在线生成

https://www.yunedit.com/jietu

生成的效果图如下:

继续阅读 »

使用香蕉云编就可以将普通的浏览器截图生成带状态栏的、满足app store尺寸的截图了,可以生成5.5寸、6.5寸和12.9的屏幕截图

没有mac电脑的朋友可以用这个来上架,windows就可以在线生成

https://www.yunedit.com/jietu

生成的效果图如下:

收起阅读 »

关于android 应用在手机安装提示存在风险问题的解决方案

风险 误报 检测 病毒

首先,DCloud的代码是没有病毒的!不用怀疑!!!!公安部、教育部、工商总局都在用DCloud的引擎做app,他们的应用从来没有被报过毒。案例

不要使用公共测试证书发正式应用。公共测试证书一旦被某个非法app使用过,某些不靠谱的检测平台,就会把所有使用公共测试证书的app都报病毒。请使用自己的证书。

最后,如果你的app确定没有非法内容,比如色情、诈骗。那就去投诉误报病毒的rom厂商。

rom弹风险软件的原理:某个app被确定为非法软件,rom会把它的包名、证书、权限清单列入观察名单,在相似的app安装时弹框提醒用户。

也就是DCloud的某个开发者的app被确定为非法软件后,有的做的不靠谱的风险监测软件会凭借一些他们提取的并不合理的特征符,去给其他DCloud引擎开发的app弹框。

但并非所有使用DCloud引擎的应用都会被误报。DCloud引擎仅在app端就有几十万个活跃应用,被误报的仍然是很少数。

目前接收到的被报病毒都是检测平台误报导致。可按已下步骤操作解决问题。第三方SDK与第三方的uni原生插件可能存在问题也可以按已下步骤进行操作。得到问题具体原因。

检测平台

腾讯手机管家

检测链接 https://m.qq.com/security_lab/scans_online.jsp
申诉链接 https://m.qq.com/complaint

安鉴

国内的审核建议以该平台为主。优先在该平台检测自己的apk
1。去安天平台安鉴进行注册. 链接地址:https://dev.avlsec.com/public-pages/home
2。创建项目。并提交apk检测

3。如果您的应用被认为存在风向请申诉。目前已知条件需要企业注册才可以申诉

virustotal

官网:https://www.virustotal.com/gui/home/

由于virustotal属于平台聚合。多数属于静态检测特征极其容易出现误报。目前应用市场下载的apk放到上面去检测多少都会出现几个病毒。均是误报!所以不要过于担心的你应用不安全。对于国内上架影响不大。

以下是申请误报的教程 仅供参考
申报误报 一般1~2个工作日会得到回复,并按邮件说明操作与具体厂商进行沟通。

DCloud并非应用主体,走不了这些检测平台的投诉流程。
需要大家纷纷去投诉,才能让这些检测平台纠正自己的算法。

建议

给开发者一些规避建议:

  1. 要申请软著,正常上架应用商店。不上架的app尤其容易被误报。而且上架后才能占据包名,避免其他有问题的包和你的包使用相同包名,造成对你的应用的误杀。
  2. 前端代码要加密,在manifest里可以配置。
  3. apk要加固,网上很多加固服务。有的应用商店自带加固服务。
  4. 公共测试证书就是测试用的,商用时使用自己的证书打包。
  5. 自有证书填写要规范,不要乱填!
  6. 不要用不可信的原生插件。尤其是私下交易的原生插件。
  7. 少申请敏感权限,比如不上架的应用又要通讯录权限,很容易被视为裸聊诈骗嫌疑。
  8. 正正经经做应用,有的应用确实有嫌疑,即便是人工检测,检测员都不敢给你恢复正常。比如有的应用叫红米金融、360网贷,这些擦边球名称看起来就像要搞诈骗的样子。即便运营者此时此刻还没跑路,检测员也不敢给你恢复。

身正不怕影子斜。DCloud的引擎根本不涉及业务,不会触发任何诈骗、色情的嫌疑。开发者只要自己确实清白,那就去正常的上架、投诉。

常见问题

如果检测有病毒。按一下方向检测一下自己的代码及配置:

1、是否使用了公共测试证书。如果是请更改您的打包证书!!!
2、如果是私有证书,请检测您的证书是否符合规范,相关信息是否全部填写,并填写真实数据。如果不是请更正!!!
3、检测权限配置。如果没有使用相关通能请将相关权限删除。如联系人定位相机音频录音等敏感权限。容易被误报!!!
4、应用名称过于贴近敏感词汇也会被报风险应用。如“xx币”、“xx赚钱”、“区块链xx” 等。

apk检测不报病毒了,应用安装后还是会报有风险?

请将APK版本升级。如果还是不行将检测的链接与误报相关平台联系。申报误报!!!

HBuilderX更新了公共测试证书详情

如果你还在使用测试证书需要注意!安装时可能被系统弹窗提示有风险。因为签名更换了! 导致系统记录数据与安装apk不符!怀疑你可能是钓鱼系app!

关于apk加固

推荐uni安全加固参考其背后支持对接多个加固服务商,包括腾讯云和蚂蚁小程序云

关于被腾讯检测出A.gray.Bulimia.a病毒

多数是由于应用性质决定的。具体解释权在腾讯!
1、补充隐私协议。参考
2、请去 https://m.qq.com/complaint/ 申诉。。。

关于被腾讯检测出A.gray.Bulimia.b病毒

目前了解到的情况都与签名证书有关联。
1、使用了测试证书。请改为自己私有证书
2、使用了私有证书。但证书信息填写不正规。CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown这种情况也是违规的。请填写真实信息。并及时改正。重新签名打包提交检测。

关于安天平台检查app存在风险的解决方案

1、去安天平台安鉴进行注册并检测自己的app. 链接地址:https://dev.avlsec.com/public-pages/home
2、如果您的应用被认为存在风向请申诉。目前已知条件需要企业注册才可以申诉。

安鉴检测应用集成了极光

官方并未集成极光SDK。是检测平台误报。

继续阅读 »

首先,DCloud的代码是没有病毒的!不用怀疑!!!!公安部、教育部、工商总局都在用DCloud的引擎做app,他们的应用从来没有被报过毒。案例

不要使用公共测试证书发正式应用。公共测试证书一旦被某个非法app使用过,某些不靠谱的检测平台,就会把所有使用公共测试证书的app都报病毒。请使用自己的证书。

最后,如果你的app确定没有非法内容,比如色情、诈骗。那就去投诉误报病毒的rom厂商。

rom弹风险软件的原理:某个app被确定为非法软件,rom会把它的包名、证书、权限清单列入观察名单,在相似的app安装时弹框提醒用户。

也就是DCloud的某个开发者的app被确定为非法软件后,有的做的不靠谱的风险监测软件会凭借一些他们提取的并不合理的特征符,去给其他DCloud引擎开发的app弹框。

但并非所有使用DCloud引擎的应用都会被误报。DCloud引擎仅在app端就有几十万个活跃应用,被误报的仍然是很少数。

目前接收到的被报病毒都是检测平台误报导致。可按已下步骤操作解决问题。第三方SDK与第三方的uni原生插件可能存在问题也可以按已下步骤进行操作。得到问题具体原因。

检测平台

腾讯手机管家

检测链接 https://m.qq.com/security_lab/scans_online.jsp
申诉链接 https://m.qq.com/complaint

安鉴

国内的审核建议以该平台为主。优先在该平台检测自己的apk
1。去安天平台安鉴进行注册. 链接地址:https://dev.avlsec.com/public-pages/home
2。创建项目。并提交apk检测

3。如果您的应用被认为存在风向请申诉。目前已知条件需要企业注册才可以申诉

virustotal

官网:https://www.virustotal.com/gui/home/

由于virustotal属于平台聚合。多数属于静态检测特征极其容易出现误报。目前应用市场下载的apk放到上面去检测多少都会出现几个病毒。均是误报!所以不要过于担心的你应用不安全。对于国内上架影响不大。

以下是申请误报的教程 仅供参考
申报误报 一般1~2个工作日会得到回复,并按邮件说明操作与具体厂商进行沟通。

DCloud并非应用主体,走不了这些检测平台的投诉流程。
需要大家纷纷去投诉,才能让这些检测平台纠正自己的算法。

建议

给开发者一些规避建议:

  1. 要申请软著,正常上架应用商店。不上架的app尤其容易被误报。而且上架后才能占据包名,避免其他有问题的包和你的包使用相同包名,造成对你的应用的误杀。
  2. 前端代码要加密,在manifest里可以配置。
  3. apk要加固,网上很多加固服务。有的应用商店自带加固服务。
  4. 公共测试证书就是测试用的,商用时使用自己的证书打包。
  5. 自有证书填写要规范,不要乱填!
  6. 不要用不可信的原生插件。尤其是私下交易的原生插件。
  7. 少申请敏感权限,比如不上架的应用又要通讯录权限,很容易被视为裸聊诈骗嫌疑。
  8. 正正经经做应用,有的应用确实有嫌疑,即便是人工检测,检测员都不敢给你恢复正常。比如有的应用叫红米金融、360网贷,这些擦边球名称看起来就像要搞诈骗的样子。即便运营者此时此刻还没跑路,检测员也不敢给你恢复。

身正不怕影子斜。DCloud的引擎根本不涉及业务,不会触发任何诈骗、色情的嫌疑。开发者只要自己确实清白,那就去正常的上架、投诉。

常见问题

如果检测有病毒。按一下方向检测一下自己的代码及配置:

1、是否使用了公共测试证书。如果是请更改您的打包证书!!!
2、如果是私有证书,请检测您的证书是否符合规范,相关信息是否全部填写,并填写真实数据。如果不是请更正!!!
3、检测权限配置。如果没有使用相关通能请将相关权限删除。如联系人定位相机音频录音等敏感权限。容易被误报!!!
4、应用名称过于贴近敏感词汇也会被报风险应用。如“xx币”、“xx赚钱”、“区块链xx” 等。

apk检测不报病毒了,应用安装后还是会报有风险?

请将APK版本升级。如果还是不行将检测的链接与误报相关平台联系。申报误报!!!

HBuilderX更新了公共测试证书详情

如果你还在使用测试证书需要注意!安装时可能被系统弹窗提示有风险。因为签名更换了! 导致系统记录数据与安装apk不符!怀疑你可能是钓鱼系app!

关于apk加固

推荐uni安全加固参考其背后支持对接多个加固服务商,包括腾讯云和蚂蚁小程序云

关于被腾讯检测出A.gray.Bulimia.a病毒

多数是由于应用性质决定的。具体解释权在腾讯!
1、补充隐私协议。参考
2、请去 https://m.qq.com/complaint/ 申诉。。。

关于被腾讯检测出A.gray.Bulimia.b病毒

目前了解到的情况都与签名证书有关联。
1、使用了测试证书。请改为自己私有证书
2、使用了私有证书。但证书信息填写不正规。CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown这种情况也是违规的。请填写真实信息。并及时改正。重新签名打包提交检测。

关于安天平台检查app存在风险的解决方案

1、去安天平台安鉴进行注册并检测自己的app. 链接地址:https://dev.avlsec.com/public-pages/home
2、如果您的应用被认为存在风向请申诉。目前已知条件需要企业注册才可以申诉。

安鉴检测应用集成了极光

官方并未集成极光SDK。是检测平台误报。

收起阅读 »

HBuilderX2.8+的正式版什么时候能发布?

启动页面

HBuilderX2.8+的正式版什么时候能发布?等着ios打包呢!Alpha版打包,感觉心里不慎,

HBuilderX2.8+的正式版什么时候能发布?等着ios打包呢!Alpha版打包,感觉心里不慎,

安卓10 gradle版本和sdk最小兼容版本测试

使用官方提供的demo,把gradler版本设置gradle-5.6.4-all.zip,编译版本为3.6.3,当minSdkVersion为22的时候,编译出来项目安卓10跑没问题,当minSdkVersion为23的时候,页面还是空白,只有导航栏

使用官方提供的demo,把gradler版本设置gradle-5.6.4-all.zip,编译版本为3.6.3,当minSdkVersion为22的时候,编译出来项目安卓10跑没问题,当minSdkVersion为23的时候,页面还是空白,只有导航栏