HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

iOS平台--离线打包制作自定义基座

iOS平台离线生成自定义基座

1、在原生工程里找到 control.xml文件,在HBuilder节点里查看是否有这2个: debug="true" syncDebug="true" 配置,没有的话增加上,然后保存,如需查看log日志需要将libliblog.a库添加到工程。


2、 确保Xcode工程的Bundle identifier不为 io.dcloud.HBuidler。
3、在原生工程里找到info.plist文件并增加一项,如下图:

4、确保原生工程里Pandora文件夹下的apps文件夹下只有一个文件夹(文件夹的名称和里面js项目的manifest的id值相同)
5、确保control.xml文件里的appid的值和apps目录下的第一个文件夹的名称一致
6、确保HBuilderX里要调试的项目的manifest.json的appid和control.xml的appid值一致
7、使用Xcode的Product下的archive 打包,然后生成ipa,并把ipa名称命名为:iOS_debug.ipa
8、在js工程里主目录下新建一个名称为unpackage的文件夹(如果有不用新建),再在unpackage文件夹下新建一个名称为debug文件夹,并把生成的iOS_debug.ipa包放入debug文件夹。
9、在HBuildX里,找到之前appid相同的js工程准备调试,点击“运行” --“运行到手机或模拟器“--“使用自定义基座运行(iOS)”,等待连接成功之后就可以调试了。

注意:自定义基座包只能用于调试,不能直接上传 App Store,打正式包时请将 第一条说明中 control.xml 中的 debug syncDebug 置为 false 或者直接删除这个两个属性,同时移除 libliblog.a 库。

提示:离线sdk制作的自定义基座不支持在HX中调试,如需调试请使用HX提交自定义基座打包

继续阅读 »

1、在原生工程里找到 control.xml文件,在HBuilder节点里查看是否有这2个: debug="true" syncDebug="true" 配置,没有的话增加上,然后保存,如需查看log日志需要将libliblog.a库添加到工程。


2、 确保Xcode工程的Bundle identifier不为 io.dcloud.HBuidler。
3、在原生工程里找到info.plist文件并增加一项,如下图:

4、确保原生工程里Pandora文件夹下的apps文件夹下只有一个文件夹(文件夹的名称和里面js项目的manifest的id值相同)
5、确保control.xml文件里的appid的值和apps目录下的第一个文件夹的名称一致
6、确保HBuilderX里要调试的项目的manifest.json的appid和control.xml的appid值一致
7、使用Xcode的Product下的archive 打包,然后生成ipa,并把ipa名称命名为:iOS_debug.ipa
8、在js工程里主目录下新建一个名称为unpackage的文件夹(如果有不用新建),再在unpackage文件夹下新建一个名称为debug文件夹,并把生成的iOS_debug.ipa包放入debug文件夹。
9、在HBuildX里,找到之前appid相同的js工程准备调试,点击“运行” --“运行到手机或模拟器“--“使用自定义基座运行(iOS)”,等待连接成功之后就可以调试了。

注意:自定义基座包只能用于调试,不能直接上传 App Store,打正式包时请将 第一条说明中 control.xml 中的 debug syncDebug 置为 false 或者直接删除这个两个属性,同时移除 libliblog.a 库。

提示:离线sdk制作的自定义基座不支持在HX中调试,如需调试请使用HX提交自定义基座打包

收起阅读 »

html5+仿微信聊天实例

基于html5+css3+zepto+swiper+wcPop等技术开发的仿微信聊天项目,仿微信聊天界面模板,基本实现了消息、表情发送,图片、视频预览,红包、打赏及长按消息右键菜单提示……
https://blog.csdn.net/yanxinyun1990











继续阅读 »

基于html5+css3+zepto+swiper+wcPop等技术开发的仿微信聊天项目,仿微信聊天界面模板,基本实现了消息、表情发送,图片、视频预览,红包、打赏及长按消息右键菜单提示……
https://blog.csdn.net/yanxinyun1990











收起阅读 »

2018.12.12版本SDK离线打包启动图之后webview加载之前有未知视图

iOS离线打包

如图所示


请问各位大佬,是什么原因?是开屏广告吗?

如图所示


请问各位大佬,是什么原因?是开屏广告吗?

android——离线打包制作自定义基座

调试基座 自定义基座 离线打包

离线打包配置

参考文档:Android离线打包

debug 配置

设置根节点的debug和syncDebug为true,如下图所示:

添加debug-server-release.aar依赖库(请在离线SDK中查找此依赖库)。
在build.gradle中添加okhttp3的依赖

dependencies {  
implementation "com.alibaba:fastjson:1.2.83"  
implementation "com.squareup.okhttp3:okhttp:3.12.12"  
}

生成apk文件

android studio生成APK文件

  1. 点击build -> build Bundle/APK -> Build APK

  2. 点击右侧Gradle侧边栏,点击需要打包的module -> Tasks -> build -> assembleDebug/assembleRelease

  3. APK文件生成路径见下图(build文件夹只有在project视图下可见)。

复制APK文件到HBuilderX中

  1. 在HBuilderX项目中创建创建unpackage目录,在unpackage目录中创建debug目录,将上述生成的APK文件拷贝到debug目录中。
  2. 重命名文件为android_debug.apk,目录结构参考下图

运行自定义基座

参考文档:什么是自定义基座及使用说明

  1. 将运行基座选为自定义基座。

  2. 点击运行,直接运行到手机即可。

继续阅读 »

离线打包配置

参考文档:Android离线打包

debug 配置

设置根节点的debug和syncDebug为true,如下图所示:

添加debug-server-release.aar依赖库(请在离线SDK中查找此依赖库)。
在build.gradle中添加okhttp3的依赖

dependencies {  
implementation "com.alibaba:fastjson:1.2.83"  
implementation "com.squareup.okhttp3:okhttp:3.12.12"  
}

生成apk文件

android studio生成APK文件

  1. 点击build -> build Bundle/APK -> Build APK

  2. 点击右侧Gradle侧边栏,点击需要打包的module -> Tasks -> build -> assembleDebug/assembleRelease

  3. APK文件生成路径见下图(build文件夹只有在project视图下可见)。

复制APK文件到HBuilderX中

  1. 在HBuilderX项目中创建创建unpackage目录,在unpackage目录中创建debug目录,将上述生成的APK文件拷贝到debug目录中。
  2. 重命名文件为android_debug.apk,目录结构参考下图

运行自定义基座

参考文档:什么是自定义基座及使用说明

  1. 将运行基座选为自定义基座。

  2. 点击运行,直接运行到手机即可。

收起阅读 »

自己开发的个人小程序【BAT全书】,关于 Java 基础知识的

微信小程序

Java 后端开发,想着年后要面试找新工作,所以想着开发一款小程序,总结一下 Java 基础知识。目前基本完成,还算能看。
学习 Java 的可以体验一下!

继续阅读 »

Java 后端开发,想着年后要面试找新工作,所以想着开发一款小程序,总结一下 Java 基础知识。目前基本完成,还算能看。
学习 Java 的可以体验一下!

收起阅读 »

HBuilderX技巧:Git插件,手把手教你扩展git命令

外部命令 插件 Git

官方的git插件,只是列出了常用的git命令,并不涵盖所有。

遇到缺失的怎么办?

小编教您如何扩展git命令

git插件配置入口在哪里?

如下图片所示,点击最后一个【插件配置】,即打开git插件配置文件package.json

解析GIT命令菜单

{  
        "id":"GIT_TAG",                          // Git命令ID  
        "name":"git tag",                         // 外部命令显示的名称  
        "command":["git", "tag"],             // 命令,参数使用逗号分割即可  
        "workingDir":"${projectDir}",       // 工作目录,一般两个参数 ${projectDir}: 项目目录;${file}:文件 workingDir也可以省略  
        "key":"",            // 快捷键  
        "showInParentMenu":false,       // 是否显示在上一级菜单中,默认false  
        "onDidSaveExecution": false,    // 是否保存时执行,默认false  
        "type":"terminal"                        // 默认terminal  
      }  

如上解说,只需要配置一个id、name、command,就可以组成一个新的命令

特别说明:

比如切换分支、创建tag、创建分支,都需要输入啊,别担心。

在命令中加上${userInput},就可以调起一个输入框。如下

"command":["git", "tag", "${userInput:请输入tag名称}"]

示例: git tag示例

比如git tag是一个比较重要的操作,官方没提供,那我们自己手动加上吧

例子1: 打tag标签

{  
        "id":"GIT_TAG_CREATE",  
        "name":"git tag 打标签",  
        "command":["git", "tag", "${userInput:请输入tag名称}"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      }

例子2:git show查看标签信息

{  
        "id":"GIT_SHOW",  
        "name":"git show 查看标签信息",  
        "command":["git", "show","${userInput:请输入要查看的tag名称}"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      }

例子3:git tag 查看标签列表

{  
        "id":"GIT_TAG_LIST",  
        "name":"git tag 查看标签列表",  
        "command":["git", "tag"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      },  

例子4: git reset 回退到指定版本

{  
        "id":"GIT_RESET_COMMIT",  
        "name":"git reset 回退到指定版本",  
        "command":["git", "reset", "--hard", "${userInput:请输入commit id}"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      }

注意事项

  1. 编辑插件配置后,并不能马上生效,需要重启软件。
  2. 请大家将自己修改后的配置文件,另存一份,以防更新后丢失。

git配置文件

小编将自己的git配置文件,放到github上了,请大家关注

git配置文件地址

继续阅读 »

官方的git插件,只是列出了常用的git命令,并不涵盖所有。

遇到缺失的怎么办?

小编教您如何扩展git命令

git插件配置入口在哪里?

如下图片所示,点击最后一个【插件配置】,即打开git插件配置文件package.json

解析GIT命令菜单

{  
        "id":"GIT_TAG",                          // Git命令ID  
        "name":"git tag",                         // 外部命令显示的名称  
        "command":["git", "tag"],             // 命令,参数使用逗号分割即可  
        "workingDir":"${projectDir}",       // 工作目录,一般两个参数 ${projectDir}: 项目目录;${file}:文件 workingDir也可以省略  
        "key":"",            // 快捷键  
        "showInParentMenu":false,       // 是否显示在上一级菜单中,默认false  
        "onDidSaveExecution": false,    // 是否保存时执行,默认false  
        "type":"terminal"                        // 默认terminal  
      }  

如上解说,只需要配置一个id、name、command,就可以组成一个新的命令

特别说明:

比如切换分支、创建tag、创建分支,都需要输入啊,别担心。

在命令中加上${userInput},就可以调起一个输入框。如下

"command":["git", "tag", "${userInput:请输入tag名称}"]

示例: git tag示例

比如git tag是一个比较重要的操作,官方没提供,那我们自己手动加上吧

例子1: 打tag标签

{  
        "id":"GIT_TAG_CREATE",  
        "name":"git tag 打标签",  
        "command":["git", "tag", "${userInput:请输入tag名称}"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      }

例子2:git show查看标签信息

{  
        "id":"GIT_SHOW",  
        "name":"git show 查看标签信息",  
        "command":["git", "show","${userInput:请输入要查看的tag名称}"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      }

例子3:git tag 查看标签列表

{  
        "id":"GIT_TAG_LIST",  
        "name":"git tag 查看标签列表",  
        "command":["git", "tag"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      },  

例子4: git reset 回退到指定版本

{  
        "id":"GIT_RESET_COMMIT",  
        "name":"git reset 回退到指定版本",  
        "command":["git", "reset", "--hard", "${userInput:请输入commit id}"],  
        "workingDir":"${projectDir}",  
        "key":"",  
        "showInParentMenu":false,  
        "onDidSaveExecution": false,  
        "type":"terminal"  
      }

注意事项

  1. 编辑插件配置后,并不能马上生效,需要重启软件。
  2. 请大家将自己修改后的配置文件,另存一份,以防更新后丢失。

git配置文件

小编将自己的git配置文件,放到github上了,请大家关注

git配置文件地址

收起阅读 »

【素与简科技】小程序商城开发之砍价

小程序

随着移动互联网的发展,在信息化的时代里,构建协同网络,沉淀数据,接入算法已经成为智能商业的必备要素。微信小程序刚好满足以上特点,现在很多企业商家也开始定制开发了属于自己的小程序商城,而其中的一种常见玩法,相信大家都不会陌生,就是“砍价”。这是一种基于微信小程序传播便捷优势而衍生的营销玩法,同时也是小程序对现代购物消费模式改变的影响因素之一。

“砍价”创新了线上商城的营销方式,用开发小程序商城提供技术支持,让商城在砍价的过程中得到裂变传播而提升曝光度、带动商城引流效果。用这种“砍价”的方式给到用户更大的消费让利,可以刺激用户主动分享转发,也给到用户新的消费选择。

“新零售”概念出现之后,无人超市、小程序拼团等也开始涌出。利用小程序的即扫即用与软硬件对接能力,让无人超市的实现成为可能,无需再配备服务人员,让消费者能自助化消费,省时省力更方便。

而关于小程序拼团的玩法,大家可以去参考一下“拼多多”的玩法,它是一个专注于C2B拼团的第三方电商平台,支持多个商家入驻,用户可以在任何一个商家中选择拼团产品,发起拼团并组团而获得价格优惠。这两种玩法,同样需要去定制开发小程序商城来实现,而且它们对现在购物消费模式的影响也很明显,它们让用户在购物消费的时候不再需要通过营业员获取服务,它让用户获取优惠消费资格多了一个选项,它们都在让人们的生活变得更智能化、更便捷化。

微信小程序能实现的玩法还有很多,无论是跟着传统电商玩法去定制开发,还是融入创意去创新商城玩法,透过微信小程序这个平台与生俱来的优势,重构零售体系,打造线上,线下融合购物场景,打造智能商业。

小程序定制开发推荐深圳素与简科技有限公司(http://www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

继续阅读 »

随着移动互联网的发展,在信息化的时代里,构建协同网络,沉淀数据,接入算法已经成为智能商业的必备要素。微信小程序刚好满足以上特点,现在很多企业商家也开始定制开发了属于自己的小程序商城,而其中的一种常见玩法,相信大家都不会陌生,就是“砍价”。这是一种基于微信小程序传播便捷优势而衍生的营销玩法,同时也是小程序对现代购物消费模式改变的影响因素之一。

“砍价”创新了线上商城的营销方式,用开发小程序商城提供技术支持,让商城在砍价的过程中得到裂变传播而提升曝光度、带动商城引流效果。用这种“砍价”的方式给到用户更大的消费让利,可以刺激用户主动分享转发,也给到用户新的消费选择。

“新零售”概念出现之后,无人超市、小程序拼团等也开始涌出。利用小程序的即扫即用与软硬件对接能力,让无人超市的实现成为可能,无需再配备服务人员,让消费者能自助化消费,省时省力更方便。

而关于小程序拼团的玩法,大家可以去参考一下“拼多多”的玩法,它是一个专注于C2B拼团的第三方电商平台,支持多个商家入驻,用户可以在任何一个商家中选择拼团产品,发起拼团并组团而获得价格优惠。这两种玩法,同样需要去定制开发小程序商城来实现,而且它们对现在购物消费模式的影响也很明显,它们让用户在购物消费的时候不再需要通过营业员获取服务,它让用户获取优惠消费资格多了一个选项,它们都在让人们的生活变得更智能化、更便捷化。

微信小程序能实现的玩法还有很多,无论是跟着传统电商玩法去定制开发,还是融入创意去创新商城玩法,透过微信小程序这个平台与生俱来的优势,重构零售体系,打造线上,线下融合购物场景,打造智能商业。

小程序定制开发推荐深圳素与简科技有限公司(http://www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

收起阅读 »

素与简科技:小程序定制开发之客服功能

小程序

一般的商城平台都有一个必备的功能,就是客服功能。当然现在火热的微信小程序商城也能开发客服功能。但是模板跟定制的结果还会存在差异,以定制开发的方式去实现微信小程序商城的客服功能,往往能以技术支持去获得更多的玩法,打破客服沟通局限,提高工作效率与客户服务满意度。

下面来简单介绍一下定制开发是如何实现小程序商城客服功能。

1、定制页面悬浮客服按钮,实时快速切换客服界面

相信细心的人会发现,有一些小程序商城的客服按钮,并不会只放在商品详情页当中,因为这种相对较为隐蔽的设计,有时候容易让用找不到客服界面而致使用户流失。所以,有一些运营商在定制开发微信小程序商城的时候,会选择在每一个页面中都显示悬浮式的客服按钮,位置明显,操作方便,点击一下即可进入到客服系统寻求问题的解答,用户体验会更好一些,对商城留住用户、转化客户也有所帮助。

2、接入多客服与自动回复,分流用户流量,提高工作效率

在同一时间内,也许小程序商城后台的客服系统,会同时接入多个资询流量,如果只是单一客服服务,那么用户资询势必需要排队才能获得服务,这对用户体验满意度以及客户留存转化并不利。而定制开发的方式所获得的客服功能,支持多客服服务去分流用户,也支持自定义回复一些基本问题,而减轻客服人员工作量,降低服务重复率,提高工作效率。

3、定制历史消息查看功能,便于衔接多次咨询内容

有时候会出现这种情况,就是同一个用户一个问题,分成了两次咨询,若是没有查看历史消息的功能,那么不同客服、甚至同一个客服都无法衔接到上次客户咨询的内容,会造成客服的不知所以然,不知道怎么去回答客户的问题。所以定制开发微信小程序商城的时候,客服功能中最好就包含着查看历史消息的细分功能,方便客服人员快速相应用户问题,及时解答客户疑问。

4、统计客服数据,分析用户需求,完善商城架构

用户在找客服人员在资讯的时候,也是一个比较好的了解用户需求、促进流量转化、调整平台架构的契机,所以想要了解用户、刺激转化、调整架构的话,则就需要对客服咨询所产生的这些数据进行统计与分析,通过精准的数据收集,去窥视用户明显的、潜在的需求,为调整架构与精准营销做数据参考。

定制开发的小程序一般要比模板开发有更多的功能应用实现,可以根据客户的实际需求进行量身定制,实用可靠,小程序定制开发推荐深圳素与简科技有限公司(www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

继续阅读 »

一般的商城平台都有一个必备的功能,就是客服功能。当然现在火热的微信小程序商城也能开发客服功能。但是模板跟定制的结果还会存在差异,以定制开发的方式去实现微信小程序商城的客服功能,往往能以技术支持去获得更多的玩法,打破客服沟通局限,提高工作效率与客户服务满意度。

下面来简单介绍一下定制开发是如何实现小程序商城客服功能。

1、定制页面悬浮客服按钮,实时快速切换客服界面

相信细心的人会发现,有一些小程序商城的客服按钮,并不会只放在商品详情页当中,因为这种相对较为隐蔽的设计,有时候容易让用找不到客服界面而致使用户流失。所以,有一些运营商在定制开发微信小程序商城的时候,会选择在每一个页面中都显示悬浮式的客服按钮,位置明显,操作方便,点击一下即可进入到客服系统寻求问题的解答,用户体验会更好一些,对商城留住用户、转化客户也有所帮助。

2、接入多客服与自动回复,分流用户流量,提高工作效率

在同一时间内,也许小程序商城后台的客服系统,会同时接入多个资询流量,如果只是单一客服服务,那么用户资询势必需要排队才能获得服务,这对用户体验满意度以及客户留存转化并不利。而定制开发的方式所获得的客服功能,支持多客服服务去分流用户,也支持自定义回复一些基本问题,而减轻客服人员工作量,降低服务重复率,提高工作效率。

3、定制历史消息查看功能,便于衔接多次咨询内容

有时候会出现这种情况,就是同一个用户一个问题,分成了两次咨询,若是没有查看历史消息的功能,那么不同客服、甚至同一个客服都无法衔接到上次客户咨询的内容,会造成客服的不知所以然,不知道怎么去回答客户的问题。所以定制开发微信小程序商城的时候,客服功能中最好就包含着查看历史消息的细分功能,方便客服人员快速相应用户问题,及时解答客户疑问。

4、统计客服数据,分析用户需求,完善商城架构

用户在找客服人员在资讯的时候,也是一个比较好的了解用户需求、促进流量转化、调整平台架构的契机,所以想要了解用户、刺激转化、调整架构的话,则就需要对客服咨询所产生的这些数据进行统计与分析,通过精准的数据收集,去窥视用户明显的、潜在的需求,为调整架构与精准营销做数据参考。

定制开发的小程序一般要比模板开发有更多的功能应用实现,可以根据客户的实际需求进行量身定制,实用可靠,小程序定制开发推荐深圳素与简科技有限公司(www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

收起阅读 »

html5+css3聊天系统|仿微信聊天室模板

h5+css3仿微信聊天室|移动端webapp聊天系统|仿微信聊天界面模板













欢迎大家一起交流 QQ(282310962) wx(xy190310)

继续阅读 »

h5+css3仿微信聊天室|移动端webapp聊天系统|仿微信聊天界面模板













欢迎大家一起交流 QQ(282310962) wx(xy190310)

收起阅读 »

绿色风格MUI模拟考试答题系统手机页面模板

mui

绿色风格MUI模拟考试答题系统手机页面模板,包括自主组卷、模拟试卷、章节组卷、错题、收藏功能。左右滑动切换下一题目。


下载地址:https://www.sucaihuo.com/templates/4191.html

继续阅读 »

绿色风格MUI模拟考试答题系统手机页面模板,包括自主组卷、模拟试卷、章节组卷、错题、收藏功能。左右滑动切换下一题目。


下载地址:https://www.sucaihuo.com/templates/4191.html

收起阅读 »

iOS云打包提交Appstore提示“ERROR ITMS-90534: "Invalid Toolchain.”的问题

iOS云端打包

更新:此问题已过期。1月12日起已经恢复正常。
遇到无法上传Appstore的问题,请单独开贴。

以下内容已过期==========================
最近苹果提交Appstore验证机制的更新,导致使用XCode9.2版本生成的ipa会提示“ERROR ITMS-90534”错误。
目前HBuilder&HBuilderX大多数云端打包机使用的都是XCode9.2版本,从今天(2019.1.11)中午开始已经暂停了所有存在此问题的打包机。

由于减少了打包机,导致iOS云端打包排队比较严重,打包等待时间较长,请耐心等待(估计排队4个小时)。因为创建新的打包机对目前运行的打包机会产生影响,所以此问题可能会持续到周末,在此期间还请避免提交不必要的打包请求。

注意:碰到“ERROR ITMS-90534”问题的开发者需要重新提交云端打包才能解决,为了避免目前的阻塞,请错峰打包

由此给您带来不便,敬请谅解!

注:离线打包只要不使用XCode9.2就仍然可用。

继续阅读 »

更新:此问题已过期。1月12日起已经恢复正常。
遇到无法上传Appstore的问题,请单独开贴。

以下内容已过期==========================
最近苹果提交Appstore验证机制的更新,导致使用XCode9.2版本生成的ipa会提示“ERROR ITMS-90534”错误。
目前HBuilder&HBuilderX大多数云端打包机使用的都是XCode9.2版本,从今天(2019.1.11)中午开始已经暂停了所有存在此问题的打包机。

由于减少了打包机,导致iOS云端打包排队比较严重,打包等待时间较长,请耐心等待(估计排队4个小时)。因为创建新的打包机对目前运行的打包机会产生影响,所以此问题可能会持续到周末,在此期间还请避免提交不必要的打包请求。

注意:碰到“ERROR ITMS-90534”问题的开发者需要重新提交云端打包才能解决,为了避免目前的阻塞,请错峰打包

由此给您带来不便,敬请谅解!

注:离线打包只要不使用XCode9.2就仍然可用。

收起阅读 »

苹果APP上架App Store被拒常见问题4.2、4.2等条款及解决思路

上架 iOS打包

苹果APP的审核是一道大难关,遇见被拒是很正常的事情,如果被拒就根据反馈问题,和下面提供的思路去寻求解决方案。

苹果审核大体分为三部分,预审、机审和人工审核。

ipa包上传后首先进入的是预审,会被扫描API等,预审通过后会在https://itunesconnect.apple.com/后台活动那出现构建版本,然后才可以提交审核(如果没通过,会有反馈邮件,查看原因,很多上传ipa成功了,但后台没看到ipa构建版本,就是预审都没过。)

在 提交审核开始显示是(等待审核)这个阶段一般是机审,机审主要是对代码进行机器审核,排查APP是否重复应用,“2.1苹果狗年大礼包”事件就更多地依赖机器自动审核,减少人工成本;

通过后会显示为(审核)这个阶段,即人工审核阶段,这个阶段主要看的是App的元数据,例如APP封面、功能、体验等等,注重用户体验,到了这步很快就会有结果了。

目前机审机制越来越完善了,而且也越来越受重视,相比前几个月,近期的苹果审核时间逐渐缩短,平均审核时间为23.9 小时。

2.1 App 完成度

主要有应用出现崩溃、加载失败等非常明显的Bug、应用不支持 IPv6网络下使用、测试账号、隐藏开关等。

解决方法:提前测试产品是否有bug、在IPV6网络下是否能使用等,根据反馈邮件,一个个审查自身产品信息是否符合,适当情况下可以发送截图视频给苹果官方以证明自己的清白。

2.3 准确的元数据

主要是应用标题、描述、截图等与应用功能严重不符。如用安卓手机截图,浏览器截图!

解决方法:重新更换截图,保证整个APP功能、流程看起来是一致的。去除隐藏功能模块代码或将需要隐藏功能的代码及定向跳转链接网址做混淆处理,适当增加逻辑复杂度。

3.2.1 可接受的商业模式

主要是没有资质。

解决方法:最佳方案是拿到资质,如果实在没有资质,建议大家尽可能多的把自己公司合规的证据资料发给苹果,而套壳、换新账号碰运气上架等操作,不得已的话可以尝试。

5.1.1 数据收集和存储

主要是App 强制用户注册,且基于不需要用户信息的功能之上、暗中采集/共享用户的个人信息。

解决方法:先与用户协商,让用户同意后注册,有“强登陆”功能的一定要修改为提示登陆的版本。

4.3 重复 App

主要针对的是重复App,意思就是你的App跟别人上架的APP功能或者代码很相似,通常就是苹果认为是马甲包。

解决办法:可通过修改名字、icon、主色调、代码等解决,并且注意相同的APP包提交至少间隔一天以上。

4.2 最低功能要求

主要问题在于苹果认为部分开发者上传的App功能不够,或者没有自己的核心功能,比如直接打包一个网页上架的很容易触发这个问题。

解决办法:可以添加一些功能丰富产品(导航栏,下拉刷新,推送通知等功能),如果觉得功能已经全了,还没有通过审核,可以向苹果解释产品解决的用户需求,以及具体功能的展现。

3.1.1 购买项目

主要是接入第三方支付,支付宝、微信等。

解决方法:老老实实地走苹果支付的支付方式,用内购。如果隐藏虚拟产品或者通过后更改支付方式,都是有一定风险的。

2.5 软件要求

主要是产品加入违规代码

解决方法:很可能是三方库中含有SDK,可以更新所有三方库,或者反编译提交的ipa,检查文档中是否有违规字符串,有的话删掉。

5.1.5 定位服务

主要是 App 未得到允许,与第三方共享收集的用户数据,且并未说明使用目的等,例:位置、账号……

解决方法:如果要采取用户数据信息,需要给予用户提示,并得到用户的允许,或设置为可选,并且明确告知苹果采集用户数据信息的使用目的。总的来说就是要弹出提示说明使用这个权限做什么用,写清楚。

5.2 知识产权

主要是未经授权,使用受版权保护的第三方材料、App不得与苹果现有产品类似等。

解决方法:确保 app 只包含由您创建或拥有使用许可的内容,提交产品时使用受版权保护的第三方的书面证据或者将产品中包含的未经第三方授权的部分隐藏。

审核还会遇到各种各样的问题,根据反馈来进行相应的修改。

iOS APP上架被拒重新提交审核教程

继续阅读 »

苹果APP的审核是一道大难关,遇见被拒是很正常的事情,如果被拒就根据反馈问题,和下面提供的思路去寻求解决方案。

苹果审核大体分为三部分,预审、机审和人工审核。

ipa包上传后首先进入的是预审,会被扫描API等,预审通过后会在https://itunesconnect.apple.com/后台活动那出现构建版本,然后才可以提交审核(如果没通过,会有反馈邮件,查看原因,很多上传ipa成功了,但后台没看到ipa构建版本,就是预审都没过。)

在 提交审核开始显示是(等待审核)这个阶段一般是机审,机审主要是对代码进行机器审核,排查APP是否重复应用,“2.1苹果狗年大礼包”事件就更多地依赖机器自动审核,减少人工成本;

通过后会显示为(审核)这个阶段,即人工审核阶段,这个阶段主要看的是App的元数据,例如APP封面、功能、体验等等,注重用户体验,到了这步很快就会有结果了。

目前机审机制越来越完善了,而且也越来越受重视,相比前几个月,近期的苹果审核时间逐渐缩短,平均审核时间为23.9 小时。

2.1 App 完成度

主要有应用出现崩溃、加载失败等非常明显的Bug、应用不支持 IPv6网络下使用、测试账号、隐藏开关等。

解决方法:提前测试产品是否有bug、在IPV6网络下是否能使用等,根据反馈邮件,一个个审查自身产品信息是否符合,适当情况下可以发送截图视频给苹果官方以证明自己的清白。

2.3 准确的元数据

主要是应用标题、描述、截图等与应用功能严重不符。如用安卓手机截图,浏览器截图!

解决方法:重新更换截图,保证整个APP功能、流程看起来是一致的。去除隐藏功能模块代码或将需要隐藏功能的代码及定向跳转链接网址做混淆处理,适当增加逻辑复杂度。

3.2.1 可接受的商业模式

主要是没有资质。

解决方法:最佳方案是拿到资质,如果实在没有资质,建议大家尽可能多的把自己公司合规的证据资料发给苹果,而套壳、换新账号碰运气上架等操作,不得已的话可以尝试。

5.1.1 数据收集和存储

主要是App 强制用户注册,且基于不需要用户信息的功能之上、暗中采集/共享用户的个人信息。

解决方法:先与用户协商,让用户同意后注册,有“强登陆”功能的一定要修改为提示登陆的版本。

4.3 重复 App

主要针对的是重复App,意思就是你的App跟别人上架的APP功能或者代码很相似,通常就是苹果认为是马甲包。

解决办法:可通过修改名字、icon、主色调、代码等解决,并且注意相同的APP包提交至少间隔一天以上。

4.2 最低功能要求

主要问题在于苹果认为部分开发者上传的App功能不够,或者没有自己的核心功能,比如直接打包一个网页上架的很容易触发这个问题。

解决办法:可以添加一些功能丰富产品(导航栏,下拉刷新,推送通知等功能),如果觉得功能已经全了,还没有通过审核,可以向苹果解释产品解决的用户需求,以及具体功能的展现。

3.1.1 购买项目

主要是接入第三方支付,支付宝、微信等。

解决方法:老老实实地走苹果支付的支付方式,用内购。如果隐藏虚拟产品或者通过后更改支付方式,都是有一定风险的。

2.5 软件要求

主要是产品加入违规代码

解决方法:很可能是三方库中含有SDK,可以更新所有三方库,或者反编译提交的ipa,检查文档中是否有违规字符串,有的话删掉。

5.1.5 定位服务

主要是 App 未得到允许,与第三方共享收集的用户数据,且并未说明使用目的等,例:位置、账号……

解决方法:如果要采取用户数据信息,需要给予用户提示,并得到用户的允许,或设置为可选,并且明确告知苹果采集用户数据信息的使用目的。总的来说就是要弹出提示说明使用这个权限做什么用,写清楚。

5.2 知识产权

主要是未经授权,使用受版权保护的第三方材料、App不得与苹果现有产品类似等。

解决方法:确保 app 只包含由您创建或拥有使用许可的内容,提交产品时使用受版权保护的第三方的书面证据或者将产品中包含的未经第三方授权的部分隐藏。

审核还会遇到各种各样的问题,根据反馈来进行相应的修改。

iOS APP上架被拒重新提交审核教程

收起阅读 »