HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

快速获取Hbuilder打包ios私钥p12和profile文件.mobileprovision

iOS打包 iOS证书 技术分享

Hbuilder如果要打包ipa上架App Store或者安装到直接的非越狱手机测试苹果APP

要在Hbuilder工上需要上传两个ios证书文件私钥p12和profile文件.mobileprovision!才能打包ipa!

这里介绍快速获取ios证书(p12)和(mobileprovision)上传到Hbuilder就可以打包了,而且可以在Windows系统直接申请。

没有Mac的伙伴也无所谓!

ios证书有很多类型,不同的环境使用不同的证书,不能乱搭!

iOS开发证书申请(xcode开发手机测试)

iOS发布证书申请(发布上架App Store)

iOS推送证书申请(APP推送通知)

iOS真机调试证书申请(安装到非越狱手机测试)

iOS企业证书申请(免上架App Store安装手机使用)

这里以发布证书为例

iOS发布证书 用于发布到App Store,只有用iOS发布证书打包的IPA才能上架到苹果应用市场。

一、创建iOS发布证书

iOS证书申请这里就是用到一个工具Appuploader,可以在win系统中辅助快速申请iOS证书,如果没有Mac也无所谓。

可以很快速的创建ios证书

先安装好Appuploader安装教程

1、打开Appuploader,选择Certification

2、点击+ ADD类型会出现各种证书选项,根据自己需要创建的证书类型选择。

iOS App Development 开发证书
Apple Push Notification service SSL(Sandbox) 开发调试模式推送证书
App Store and Ad Hoc 发布证书
Push Notification Auth Key (Sandbox & Producyion) 推送授权key
Push Notification service SLL(Sandbox & Producyion)发布上架模式的推送证书
Pass Type ID Certificate pass type证书
Website Push ID Certificate 网站推送证书
Watchkit Services Certificate
iwatch服务证书
voIP Services Certificate voip服务证书
Apple Pay Certificate
苹果支付证书

3、以创建发布证书为例,输入证书名称,邮箱,密码(打包ipa时用到),点击ok即可创建。

4、创建成功后,点击p12 File,下载保存.p12证书文件到电脑。

二、创建iOS发布描述文件

1、打开Appuploader,选择Profiles

2、点击+ ADD,根据需要选择配置文件类型,以发布描述文件为例,选择 App Store。

iOS App Development 苹果开发描述文件
tvOS App Development 苹果电视开发描述文件
App Store 发布描述文件
tvOS App Store 电视发布描述文件
Ad Hoc 不上架可推广描述文件
tvOS Ad Hoc 苹果电视不上架推广描述文件
3、选择之前在开发者中心创建的 APP IDs,勾选关联好发布证书,如果之前创建了2个发布证书,那勾选哪个就下载对应的那个,输入名称,点击ok创建。

4、创建成功了.mobileprovision的描述文件,点击Download下载,保存到电脑

现在发布证书.p12和发布描述文件.mobileprovision都有了,就可以去打包ipa了。

ios真机调试文档(不上架App Store安装手机测试)

HBuilder打包ios上架App Store完整流程

继续阅读 »

Hbuilder如果要打包ipa上架App Store或者安装到直接的非越狱手机测试苹果APP

要在Hbuilder工上需要上传两个ios证书文件私钥p12和profile文件.mobileprovision!才能打包ipa!

这里介绍快速获取ios证书(p12)和(mobileprovision)上传到Hbuilder就可以打包了,而且可以在Windows系统直接申请。

没有Mac的伙伴也无所谓!

ios证书有很多类型,不同的环境使用不同的证书,不能乱搭!

iOS开发证书申请(xcode开发手机测试)

iOS发布证书申请(发布上架App Store)

iOS推送证书申请(APP推送通知)

iOS真机调试证书申请(安装到非越狱手机测试)

iOS企业证书申请(免上架App Store安装手机使用)

这里以发布证书为例

iOS发布证书 用于发布到App Store,只有用iOS发布证书打包的IPA才能上架到苹果应用市场。

一、创建iOS发布证书

iOS证书申请这里就是用到一个工具Appuploader,可以在win系统中辅助快速申请iOS证书,如果没有Mac也无所谓。

可以很快速的创建ios证书

先安装好Appuploader安装教程

1、打开Appuploader,选择Certification

2、点击+ ADD类型会出现各种证书选项,根据自己需要创建的证书类型选择。

iOS App Development 开发证书
Apple Push Notification service SSL(Sandbox) 开发调试模式推送证书
App Store and Ad Hoc 发布证书
Push Notification Auth Key (Sandbox & Producyion) 推送授权key
Push Notification service SLL(Sandbox & Producyion)发布上架模式的推送证书
Pass Type ID Certificate pass type证书
Website Push ID Certificate 网站推送证书
Watchkit Services Certificate
iwatch服务证书
voIP Services Certificate voip服务证书
Apple Pay Certificate
苹果支付证书

3、以创建发布证书为例,输入证书名称,邮箱,密码(打包ipa时用到),点击ok即可创建。

4、创建成功后,点击p12 File,下载保存.p12证书文件到电脑。

二、创建iOS发布描述文件

1、打开Appuploader,选择Profiles

2、点击+ ADD,根据需要选择配置文件类型,以发布描述文件为例,选择 App Store。

iOS App Development 苹果开发描述文件
tvOS App Development 苹果电视开发描述文件
App Store 发布描述文件
tvOS App Store 电视发布描述文件
Ad Hoc 不上架可推广描述文件
tvOS Ad Hoc 苹果电视不上架推广描述文件
3、选择之前在开发者中心创建的 APP IDs,勾选关联好发布证书,如果之前创建了2个发布证书,那勾选哪个就下载对应的那个,输入名称,点击ok创建。

4、创建成功了.mobileprovision的描述文件,点击Download下载,保存到电脑

现在发布证书.p12和发布描述文件.mobileprovision都有了,就可以去打包ipa了。

ios真机调试文档(不上架App Store安装手机测试)

HBuilder打包ios上架App Store完整流程

收起阅读 »

新手调用Native.js, startService 不能启动服务

service

今天参照 http://ask.dcloud.net.cn/question/433 中所给的方式开启后台服务。本地打包后发现在执行main.startService(intent); 后服务没有正常执行, 将代码防盗android 里面后确定执行成功,但是服务未启动。

找了一下午终于发现问题,需要在AndroidManifest.xml 声明服务如下
<service android:name="io.dcloud.HBuilder.Wiedii.MsgService" android:exported="true" />

见:http://www.cnblogs.com/lwbqqyumidi/p/4181185.html

继续阅读 »

今天参照 http://ask.dcloud.net.cn/question/433 中所给的方式开启后台服务。本地打包后发现在执行main.startService(intent); 后服务没有正常执行, 将代码防盗android 里面后确定执行成功,但是服务未启动。

找了一下午终于发现问题,需要在AndroidManifest.xml 声明服务如下
<service android:name="io.dcloud.HBuilder.Wiedii.MsgService" android:exported="true" />

见:http://www.cnblogs.com/lwbqqyumidi/p/4181185.html

收起阅读 »

IOS使用openURL打开百度地图的坑,已解决!

function openBMap(lon, lat, title, address) {
var url=null,id=null,f=null;
address = address == ''? title: address;
switch ( plus.os.name ) {
case "Android":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/android
url = "baidumap://map/marker?location=" + lat + "," + lon + "&title=" + title + "&content=" + address + "&src=wz";
f = androidMarket;
id = "com.baidu.BaiduMap";
break;
case "iOS":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/ios
url = "baidumap://map/marker?location=" + lat.toFixed(6) + "," + lon.toFixed(6) + "&title=" + title + "&content=" + address + "&src=wz";
// url = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&content=%e6%89%93%e9%80%a0HTML5%e6%9c%80%e5%a5%bd%e7%9a%84%e7%a7%bb%e5%8a%a8%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7&src=HelloH5";
f = iosAppstore;
id = "itunes.apple.com/cn/app/bai-du-de-tu-yu-yin-dao-hang/id452186370?mt=8";
break;
default:
return;
break;
}
url = encodeURI(url); //重点在这一句,如果不加,android没问题,但是ios打不开,每次提示未安装,所以同学们要注意了
console.log(url);
plus.runtime.openURL( url, function(e) {
plus.nativeUI.confirm( "检查到您未安装百度地图,是否到商城搜索下载?", function(i){
if ( i.index == 0 ) {
f(id);
}
} );
} );
}

继续阅读 »

function openBMap(lon, lat, title, address) {
var url=null,id=null,f=null;
address = address == ''? title: address;
switch ( plus.os.name ) {
case "Android":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/android
url = "baidumap://map/marker?location=" + lat + "," + lon + "&title=" + title + "&content=" + address + "&src=wz";
f = androidMarket;
id = "com.baidu.BaiduMap";
break;
case "iOS":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/ios
url = "baidumap://map/marker?location=" + lat.toFixed(6) + "," + lon.toFixed(6) + "&title=" + title + "&content=" + address + "&src=wz";
// url = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&content=%e6%89%93%e9%80%a0HTML5%e6%9c%80%e5%a5%bd%e7%9a%84%e7%a7%bb%e5%8a%a8%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7&src=HelloH5";
f = iosAppstore;
id = "itunes.apple.com/cn/app/bai-du-de-tu-yu-yin-dao-hang/id452186370?mt=8";
break;
default:
return;
break;
}
url = encodeURI(url); //重点在这一句,如果不加,android没问题,但是ios打不开,每次提示未安装,所以同学们要注意了
console.log(url);
plus.runtime.openURL( url, function(e) {
plus.nativeUI.confirm( "检查到您未安装百度地图,是否到商城搜索下载?", function(i){
if ( i.index == 0 ) {
f(id);
}
} );
} );
}

收起阅读 »

IOS10 打开系统设置

IOS原有跳转Wi-Fi设置是”prefs:root=WIFI”,新的写法是”App-Prefs:root=WIFI”

function networkType(){
var types = {};
types[plus.networkinfo.CONNECTION_UNKNOW] = "Unknown connection";
types[plus.networkinfo.CONNECTION_NONE] = "No connection";
types[plus.networkinfo.CONNECTION_ETHERNET] = "Ethernet connection";
types[plus.networkinfo.CONNECTION_WIFI] = "WiFi connection";
types[plus.networkinfo.CONNECTION_CELL2G] = "Cellular 2G connection";
types[plus.networkinfo.CONNECTION_CELL3G] = "Cellular 3G connection";
types[plus.networkinfo.CONNECTION_CELL4G] = "Cellular 4G connection";

if (plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE || plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_UNKNOW) {
mui.toast("当前暂无网络连接,请打开数据服务!", "提示");
mui.confirm('网络出错,请检查网络配置', '温馨提示', ['退出', '设置'], function(e){
if(e.index == 0){
} else {
if(mui.os.ios){
plus.runtime.launchApplication({action:'App-Prefs:root=WIFI'}, function(e){
console.log(JSON.stringify(e));
}); //WIFI
} else {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.WIFI_SETTINGS');
main.startActivity(mIntent);
}
}
});
}
else {
console.log(types[plus.networkinfo.getCurrentType()]);
}
}

继续阅读 »

IOS原有跳转Wi-Fi设置是”prefs:root=WIFI”,新的写法是”App-Prefs:root=WIFI”

function networkType(){
var types = {};
types[plus.networkinfo.CONNECTION_UNKNOW] = "Unknown connection";
types[plus.networkinfo.CONNECTION_NONE] = "No connection";
types[plus.networkinfo.CONNECTION_ETHERNET] = "Ethernet connection";
types[plus.networkinfo.CONNECTION_WIFI] = "WiFi connection";
types[plus.networkinfo.CONNECTION_CELL2G] = "Cellular 2G connection";
types[plus.networkinfo.CONNECTION_CELL3G] = "Cellular 3G connection";
types[plus.networkinfo.CONNECTION_CELL4G] = "Cellular 4G connection";

if (plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE || plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_UNKNOW) {
mui.toast("当前暂无网络连接,请打开数据服务!", "提示");
mui.confirm('网络出错,请检查网络配置', '温馨提示', ['退出', '设置'], function(e){
if(e.index == 0){
} else {
if(mui.os.ios){
plus.runtime.launchApplication({action:'App-Prefs:root=WIFI'}, function(e){
console.log(JSON.stringify(e));
}); //WIFI
} else {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.WIFI_SETTINGS');
main.startActivity(mIntent);
}
}
});
}
else {
console.log(types[plus.networkinfo.getCurrentType()]);
}
}

收起阅读 »

关于PHP Editor中PHP代码折叠的问题

如果你觉得你所有设置步骤都弄过了,也重启了IDE,还是不能折叠代码,那个让期待的“+”、“-”号还是不出现,建议你立即看一眼HD底部正在使用的编辑器是不是已经显示为【PHP Editor (Aptana)】,如果没有显示为这个插件的名称,点击一下,在弹出列表中选择这个插件即可。完成后,HD代码区略微一闪,“+”、“-”号就出现了。

如果从头开始,那么:

  1. 确保已下载PHP Editor插件。
  2. 选择【工具】->【选项】->【HBuilder】->【编辑器】->【PHP】,点击后,右侧设置区域即可看见【折叠】设置,你可以根据自己的需要,选择代码元素的这点方式
  3. 操作完成后,如果不出现折叠标志,则按前面所说再试一试。

JS和HTML也类似。

继续阅读 »

如果你觉得你所有设置步骤都弄过了,也重启了IDE,还是不能折叠代码,那个让期待的“+”、“-”号还是不出现,建议你立即看一眼HD底部正在使用的编辑器是不是已经显示为【PHP Editor (Aptana)】,如果没有显示为这个插件的名称,点击一下,在弹出列表中选择这个插件即可。完成后,HD代码区略微一闪,“+”、“-”号就出现了。

如果从头开始,那么:

  1. 确保已下载PHP Editor插件。
  2. 选择【工具】->【选项】->【HBuilder】->【编辑器】->【PHP】,点击后,右侧设置区域即可看见【折叠】设置,你可以根据自己的需要,选择代码元素的这点方式
  3. 操作完成后,如果不出现折叠标志,则按前面所说再试一试。

JS和HTML也类似。

收起阅读 »

【MUI还需改进】indexed list 索引列表的一些问题以及自己想到的一些笨办法

indexed list

indexed list 索引列表 目前自己踩过的坑

1、动态加载的数据过多时性能明显下降,尤其是数据达到一定量级时那速度特别感人

笨办法:由于数据比较多,无奈之下只好使用AJAX的方式直接查询数据库,然后将查询结果展示到索引列表,若是查询结果过多的话,则直接使用分页的形式展示数据,一次只加载固定长度的数据,这样性能还在可接受的范围内

2、索引列表高度的问题,在某些场景下webview是隐藏的,document.body.offsetHeight获取到的高度是0,尤其是隐藏状态下动态加载了数据索引列表显示不完整

笨办法:直接根据当前webview高度计算索引列表窗口,一些布局特殊的webview则是当webview显示时重新获取webview高度并设置下索引列表的高度

3、索引列表与下拉刷新不兼容,当索引列表使用了下拉刷新时,索引列表就无法向上滚动了

笨办法:放弃下拉刷新,直接监听longtap事件,将下拉刷新的方式改成了按住屏幕刷新的方式

4、数据过多时快速滚动索引列表会闪烁

笨办法:妈蛋、劳资不用了 #24#24#24

希望文档能完善点,组件也能多一点,MUI真心有些丑,这次重构就只好用framework7+vue了,其实mui也可以借鉴一下framework7,闭门造车是很难得

希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点

继续阅读 »

indexed list 索引列表 目前自己踩过的坑

1、动态加载的数据过多时性能明显下降,尤其是数据达到一定量级时那速度特别感人

笨办法:由于数据比较多,无奈之下只好使用AJAX的方式直接查询数据库,然后将查询结果展示到索引列表,若是查询结果过多的话,则直接使用分页的形式展示数据,一次只加载固定长度的数据,这样性能还在可接受的范围内

2、索引列表高度的问题,在某些场景下webview是隐藏的,document.body.offsetHeight获取到的高度是0,尤其是隐藏状态下动态加载了数据索引列表显示不完整

笨办法:直接根据当前webview高度计算索引列表窗口,一些布局特殊的webview则是当webview显示时重新获取webview高度并设置下索引列表的高度

3、索引列表与下拉刷新不兼容,当索引列表使用了下拉刷新时,索引列表就无法向上滚动了

笨办法:放弃下拉刷新,直接监听longtap事件,将下拉刷新的方式改成了按住屏幕刷新的方式

4、数据过多时快速滚动索引列表会闪烁

笨办法:妈蛋、劳资不用了 #24#24#24

希望文档能完善点,组件也能多一点,MUI真心有些丑,这次重构就只好用framework7+vue了,其实mui也可以借鉴一下framework7,闭门造车是很难得

希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点

收起阅读 »

分享离线打包遇到的一个坑

离线打包

离线打包,要添加微信好友和朋友圈分享功能。直接运行Hbuilder项目可以,但是用安卓离线打包后,调不起来了,后来发现,因为在离线打包里,asset->data->dcloud_properties.xml中,多添加了Sina和Tencent的模块配置,而微信的模块配置放在下边,如图:

结果就是plus.share.getServices获取不到微信的配置信息,最后把前两个删掉就可以了。这。。容错率

继续阅读 »

离线打包,要添加微信好友和朋友圈分享功能。直接运行Hbuilder项目可以,但是用安卓离线打包后,调不起来了,后来发现,因为在离线打包里,asset->data->dcloud_properties.xml中,多添加了Sina和Tencent的模块配置,而微信的模块配置放在下边,如图:

结果就是plus.share.getServices获取不到微信的配置信息,最后把前两个删掉就可以了。这。。容错率

收起阅读 »

基于Windows创建iOS证书和p12文件 不用钥匙串 不限制电脑

iOS证书

os的证书需要用mac才能申请,而且证书受电脑限制!现在有款工具Appuploader可以创建证书。

Appuploader支持创建各种Apple证书,创建过程非常简单,不需要钥匙串,只需输入证书名称,创建邮箱等信息即可创建证书,而且可以运行在windows,linux或mac上创建,最方便的是创建的证书可以多电脑使用,不受限制。

Appuploader工具,也可以提交ipa到App Store,或者后续更新app等功能。

继续阅读 »

os的证书需要用mac才能申请,而且证书受电脑限制!现在有款工具Appuploader可以创建证书。

Appuploader支持创建各种Apple证书,创建过程非常简单,不需要钥匙串,只需输入证书名称,创建邮箱等信息即可创建证书,而且可以运行在windows,linux或mac上创建,最方便的是创建的证书可以多电脑使用,不受限制。

Appuploader工具,也可以提交ipa到App Store,或者后续更新app等功能。

收起阅读 »

mui、h5+、h.js、项目实战教程汇总(免费、详细、播放总量已达3万)

5+App开发 mui

mui、h5+、h.js、项目实战教程汇总,观看地址:
http://www.hcoder.net/course


观看地址:
http://www.hcoder.net/course/

自hcoder发布mui h5+ 教程以来视频总播放量已经超过3万,我们一直在努力更新各类视频教程来方便大家学习!
感谢大家的支持和厚爱! 我们会继续努力做得更好!

h.js mui dom操作完美小伙伴同步更新中!更多教程请关注 hcoder.net
http://www.hcoder.net

继续阅读 »

mui、h5+、h.js、项目实战教程汇总,观看地址:
http://www.hcoder.net/course


观看地址:
http://www.hcoder.net/course/

自hcoder发布mui h5+ 教程以来视频总播放量已经超过3万,我们一直在努力更新各类视频教程来方便大家学习!
感谢大家的支持和厚爱! 我们会继续努力做得更好!

h.js mui dom操作完美小伙伴同步更新中!更多教程请关注 hcoder.net
http://www.hcoder.net

收起阅读 »

【公告】关于近期Appstore的警告邮件,【已更换高德和个推SDK使用Alpha版HBuilder重新打包即可】

Appstore 警告信息

关于近期各位开发者收到Appstore 违反政策警告的公告
综合各方信息

  1. 主要禁的还是 JSPatch等热修复框架,特点是可以通过 JS 脚本调用和替换任意 OC 方法。
  2. 而使用5+ WGT或WGTU方式做热更新,更新页面和JS 功能暂时不受影响。
  3. 5+runtime没有使用JSPatch等热修复框架,主要是第三方SDK:高德地图和个推使用了jspatch,因此被警告。
    已更换最新高德和个推SDK 已经更新到Alpha 打包机,如果有Alpha版本的HBuilder请直接打包,如果没有请下载对应版本
    公网地址:

    HBuilder.windows@20170316.zip @alpha版本每天都会编译更新,所以最新版为当日时间戳 格式如:HBuilder.windows@20170316.zip

    Win版本:http://update.dcloud.net.cn/alpha/HBuilder.windows@20170316.zip
    Mac版本:http://update.dcloud.net.cn/alpha/HBuilder.macosx_64@20170316.tar.gz
    注意,HBuilder for Mac alpha 是没有签名的,如Mac系统设置了仅信任AppStore或受信任的开发者来源的安装包,请右键点击打开或control+点击打开HBuilder
    Alpha 版HBuilder 百度云下载地址:链接: https://pan.baidu.com/s/1kUNa0jd 密码: e3xg

虽然可以继续使用WGT和WGTU更新方式,但是为了避免appstore审核失败,应该尽量不要显式提示或者”更新“字眼
建议直接走下次启动后生效,另外wgt下载请使用https,避免被三方恶意劫持。

根据苹果要求,收到警告的同学只需要在下次提交版本时去掉相关框架就可以,目前已经有开发者去除高德SDK之后成功通过审核。
此警告没有时间期限,目前也不会强制下架。

部分开发者的app被苹果下架,因为苹果的审核政策不透明,还需向苹果详情了解情况。并非使用HTML5+技术的app都会下架。
同时也可参考如下方案,先通过我们的iOS流应用为用户提供服务:
http://ask.dcloud.net.cn/article/1180
尤其参考里面的代练通的做法http://help.dailiantong.com/contents/13/2004.html

继续阅读 »

关于近期各位开发者收到Appstore 违反政策警告的公告
综合各方信息

  1. 主要禁的还是 JSPatch等热修复框架,特点是可以通过 JS 脚本调用和替换任意 OC 方法。
  2. 而使用5+ WGT或WGTU方式做热更新,更新页面和JS 功能暂时不受影响。
  3. 5+runtime没有使用JSPatch等热修复框架,主要是第三方SDK:高德地图和个推使用了jspatch,因此被警告。
    已更换最新高德和个推SDK 已经更新到Alpha 打包机,如果有Alpha版本的HBuilder请直接打包,如果没有请下载对应版本
    公网地址:

    HBuilder.windows@20170316.zip @alpha版本每天都会编译更新,所以最新版为当日时间戳 格式如:HBuilder.windows@20170316.zip

    Win版本:http://update.dcloud.net.cn/alpha/HBuilder.windows@20170316.zip
    Mac版本:http://update.dcloud.net.cn/alpha/HBuilder.macosx_64@20170316.tar.gz
    注意,HBuilder for Mac alpha 是没有签名的,如Mac系统设置了仅信任AppStore或受信任的开发者来源的安装包,请右键点击打开或control+点击打开HBuilder
    Alpha 版HBuilder 百度云下载地址:链接: https://pan.baidu.com/s/1kUNa0jd 密码: e3xg

虽然可以继续使用WGT和WGTU更新方式,但是为了避免appstore审核失败,应该尽量不要显式提示或者”更新“字眼
建议直接走下次启动后生效,另外wgt下载请使用https,避免被三方恶意劫持。

根据苹果要求,收到警告的同学只需要在下次提交版本时去掉相关框架就可以,目前已经有开发者去除高德SDK之后成功通过审核。
此警告没有时间期限,目前也不会强制下架。

部分开发者的app被苹果下架,因为苹果的审核政策不透明,还需向苹果详情了解情况。并非使用HTML5+技术的app都会下架。
同时也可参考如下方案,先通过我们的iOS流应用为用户提供服务:
http://ask.dcloud.net.cn/article/1180
尤其参考里面的代练通的做法http://help.dailiantong.com/contents/13/2004.html

收起阅读 »

"framework not found UserNotifications的问题

App离线打包

按照官方的ios离线打包步骤进行打包,总是出现如下的错误:
framework not found UserNotifications for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
第一时间想到来dcloud.io上面需求答案,可惜很失望,既没有官方的说法,也没有开发者分享答案。
没办法,只好自己问度娘,后来在stackoverflow上面找到了答案。原文地址:
http://stackoverflow.com/questions/40034972/ionic-ld-framework-not-found-usernotifications
虽然提问者使用的是ionic,其实道理都是相通的。
文中提到两个解决方案:
1、使用Xcode8.0版本,因为通过dcloud官网下载的5+SDK离线打包会使用到UserNotifications,
而该特性为IOS10以上版本进行消息推送所需,而目前只有XCode8.0集成了其开发库;
2、使用Xcode8.0以下版本,在工程中搜索UserNotifications,然后将配置该内容的地方去掉。

当然,最终我采用的是方案1,即将Xcode升级到了8.0,解决了该问题。
方案2我试着搜索UserNotifications,但是并没有搜素到该关键字,我想应该是应用程序默认都需要使用到。

如果还有朋友对该问题困扰,不妨试试。

继续阅读 »

按照官方的ios离线打包步骤进行打包,总是出现如下的错误:
framework not found UserNotifications for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
第一时间想到来dcloud.io上面需求答案,可惜很失望,既没有官方的说法,也没有开发者分享答案。
没办法,只好自己问度娘,后来在stackoverflow上面找到了答案。原文地址:
http://stackoverflow.com/questions/40034972/ionic-ld-framework-not-found-usernotifications
虽然提问者使用的是ionic,其实道理都是相通的。
文中提到两个解决方案:
1、使用Xcode8.0版本,因为通过dcloud官网下载的5+SDK离线打包会使用到UserNotifications,
而该特性为IOS10以上版本进行消息推送所需,而目前只有XCode8.0集成了其开发库;
2、使用Xcode8.0以下版本,在工程中搜索UserNotifications,然后将配置该内容的地方去掉。

当然,最终我采用的是方案1,即将Xcode升级到了8.0,解决了该问题。
方案2我试着搜索UserNotifications,但是并没有搜素到该关键字,我想应该是应用程序默认都需要使用到。

如果还有朋友对该问题困扰,不妨试试。

收起阅读 »

挂人,活干完了不给钱

外包

年前帮一网友做了一个小活,代码打包发给对方后,鸟人借口一个功能没完成,就不给钱了。
需求设这样的(看下图),其中有一个需求是

当应用切换到后台时,其他app内复制数据该app内自动保存

这个功能在android平台是可以实现的,不过在ios平台是有问题的

由于iOS系统极安全防护限制,当应用切换到后台时,系统默认屏蔽剪切版接口,默认获取到的数据为空;当应用切换到前台时,才能访问剪切版,所以需要每次在其他地方复制内容后需要将应用切换到前台

这个也只有踩坑后才能知道能不能搞定

我也在社区中回复了如何操作系统剪切板,如何用Native.js复制内容

对方就咬死了一定要我实现,关键是老子也没办法啊,这个是系统层级的事情

我问了做ios的朋友,也问了DLCOUD的朋友,都回复没法实现。

最主要的是对方一开始也没告知ios一定要实现。

也怪我,刚开始没要定金,主要是刚开始对方发我第一版需求的时候,我做完了,给钱很痛快,
第二次也就是这次的需求我就没要定金,大意了。

打算赚点零花钱过春节就这么黄了。艹

第二次做的时候代码完全重构。。。。


童鞋们,注意了这个人不可靠

QQ号是:80780471

微信: mammapworrall

头像这个鸟样

附一下聊天截图:

代码已分享到了coding.net上,需要了解websql的童鞋可参考

地址在phillyx

继续阅读 »

年前帮一网友做了一个小活,代码打包发给对方后,鸟人借口一个功能没完成,就不给钱了。
需求设这样的(看下图),其中有一个需求是

当应用切换到后台时,其他app内复制数据该app内自动保存

这个功能在android平台是可以实现的,不过在ios平台是有问题的

由于iOS系统极安全防护限制,当应用切换到后台时,系统默认屏蔽剪切版接口,默认获取到的数据为空;当应用切换到前台时,才能访问剪切版,所以需要每次在其他地方复制内容后需要将应用切换到前台

这个也只有踩坑后才能知道能不能搞定

我也在社区中回复了如何操作系统剪切板,如何用Native.js复制内容

对方就咬死了一定要我实现,关键是老子也没办法啊,这个是系统层级的事情

我问了做ios的朋友,也问了DLCOUD的朋友,都回复没法实现。

最主要的是对方一开始也没告知ios一定要实现。

也怪我,刚开始没要定金,主要是刚开始对方发我第一版需求的时候,我做完了,给钱很痛快,
第二次也就是这次的需求我就没要定金,大意了。

打算赚点零花钱过春节就这么黄了。艹

第二次做的时候代码完全重构。。。。


童鞋们,注意了这个人不可靠

QQ号是:80780471

微信: mammapworrall

头像这个鸟样

附一下聊天截图:

代码已分享到了coding.net上,需要了解websql的童鞋可参考

地址在phillyx

收起阅读 »