HBuilder iOS离线打包配置说明.docx
- 文档编号:30749201
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:26
- 大小:5.44MB
HBuilder iOS离线打包配置说明.docx
《HBuilder iOS离线打包配置说明.docx》由会员分享,可在线阅读,更多相关《HBuilder iOS离线打包配置说明.docx(26页珍藏版)》请在冰豆网上搜索。
HBuilderiOS离线打包配置说明
参考文档:
要想使用Hbuilder编译的文件上传到AppStore中必须使用离线打包进行打包。
通过下载SDK包,然后将包内的所有内容都拷贝至mac某个目录中(并不是文档中说明的只拷贝演示项目)
拷贝后,在拷贝目录打开HBuilder-Hello之后,双击,如下图:
按照说明进行相关的修改。
---------------------------------------------------------------------------------------------------------------
------------------------------------------链接中的说明文档------开始------------------------------
OS离线打包
App离线打包
预备环境
▪iOS开发环境,MacOS、XCode7.2以上版本;
▪下载HBuilder离线打包iOS版SDK(5+SDK下载)。
SDK目录说明
▪HBuilder-Hello:
离线打包演示应用;
▪Feature-iOS.xls:
iOS平台各扩展FeatureAPI对应的库文件列表;
▪Readme.txt:
版本说明文件。
注意:
HBuilder运行环境相关库文件已全部包含在HBuilder-Hello演示应用中
配置编译工程
▪从演示应用HBuilder-Hello创建工程
解压SDK包,将演示应用HBuilder-Hello拷贝出来(可对目录进行重命名),进入目录,双击“HBuilder-Hello.xcodeproj”文件打开工程:
▪配置应用标识(BoundleIdentifier)
选择左侧“ProjectNavigator”中应用工程根目录,选中TARGETS下的HBuilder打开工程属性界面,在General下修改Identity的值:
其中BundleIdentifier为苹果的AppID,必须与应用发布是配置的Profile关联的AppID一致;Version为应用版本号,在AppStore中显示的版本号,推荐与manifest.json中version下的name值一致;Build为编译版本号,AppStore判断升级使用,推荐与manifest.json中version下的code值一致。
▪配置应用名称
在工程属性界面,切换到Info项下修改Bundledisplayname的值:
▪配置应用图标和启动界面
演示工程中已经配置好应用的图标和启动界面,只需要将对应图片按照指定的分辨率拷贝到对应工程下的icon和splash目录即可:
▪更新应用资源
注意:
Pandora目录为folderreferences引入方式,修改后不会自动更新,需要在模拟器或设备删除应用后再重新运行
注意:
拷贝到Pandora目录的www目录中manifest.json需要删除注释
打开pandora->apps目录,将下面“HelloH5”目录名称修改为应用manifest.json中的id名称(这步非常重要,否则会导致应用无法正常启动),并将所有应用资源拷贝到其下的www目录中:
▪配置应用信息
打开工程目录下的control.xml文件,修改appid值:
其中appid值为HBuilder应用的appid,必须与应用manifest.json中的id值完全一致;appver为应用的版本号,用于应用资源的升级,必须保持与manifest.json中的version->name值完全一致;version值为应用基座版本号(plus.runtime.innerVersion返回的值),不要随意修改。
▪配置应用使用的5+功能模块(可选)
演示应用中已经引用HBuilder所有扩展的5+API功能模块,如果在应用中没有使用到,为了减少发布时安装包的大小可以删除不使用的模块。
在工程属性界面“BuildSettings”下的“Linking”中找到“OtherLinkerFlags”:
双击弹出值列表:
在“Feature-iOS.xls”文件中查找不使用模块对应的“LinkerFlags”,从列表中删除。
如不使用“XX地图”,则可选中“-llibMap”、“-lbmapimp”、“-lbaidumapapi”,通过列表左下角的减号删除:
▪配置第三方库的参数
如果用到使用第三方库的功能模块(如推送、分享、语音识别、统计),则需要通过“Feature-iOS.xls”文件中查找对应模块的“Info”值,并在工程属性界面“Info”下“CustomiOSTargetProperties”中找到对应的项配置:
如XX地图,需要配置在XX云平台申请应用的appkey,找到“baidu”项下的“appkey”,双击后输入正确的appkey值:
注意:
新浪微博和微信分享还需要配置应用的URLSchemes,在“URLTypes”项下分别输入在各开放平台申请的值:
配置完成编译运行
应用配置完毕,在模拟器上编译运行应用:
正确编译后启动模拟器并运行:
Android平台请参考Android离线打包
---------------------------------------------------------------------------------------------------------------
------------------------------------------链接中的说明文档-----结束------------------------------
打包注意事项:
IOS使用相机时可能会产生英文菜单,
需设置如下内容
在工程的info选项中有Localizationnativedevelopmentregion=China(这里要选择China,默认是en)
IOS后台运行时不能获取位置信息
HBuilder默认生成的应用在iOS是不支持后台运行,当应用切换到后台时应用停止运行,下次切换到前台继续运行。
如果要支持应用切换到后台后继续运行获取位置需要进行额外配置参数操作。
打开应用的manifest.json文件,切换到代码视图,在plus->distribute->apple下添加以下数据:
"UIBackgroundModes":
["location"],
在应用切换到后台之前需要调用监听位置变化API(plus.geolocation.watchPosition):
//...
varwatchId=plus.geolocation.watchPosition(function(p){
console.log("监听位置变化信息:
");
console.log(JSON.stringify(p));
},function(e){
console.log("监听位置变化信息失败:
"+e.message);
},{});
//...
注意:
真机运行不支持此功能,需要提交到打App云端打包才生效
应用切换到后台持续时,需要避免调用同步5+API(调用直接返回数据的API),在后台运行时此类API将无法同步返回数据
Xcode8没有设置Description的问题
最近升级了Xcode8.0,真是很多坑啊,填完一个来另外一个,今天又遇到了一个,用Xcode8.0上传项目时被驳回说是info.plist里面没有设置NSPhotoLibraryUsageDescription、NSCameraUsageDescription、NSContactsUsageDescription、NSMicrophoneUsageDescription等字段,之前这些都是预设的不用加,现在强制了,真是郁闷,下面贴上解决方案
被驳回的原因:
Thisappattemptstoaccessprivacy-sensitivedatawithoutausagedescription.Theapp’sInfo.plistmustcontainanNSPhotoLibraryUsageDescriptionkeywithastringvalueexplainingtotheuserhowtheappusesthisdata.
Thisappattemptstoaccessprivacy-sensitivedatawithoutausagedescription.Theapp’sInfo.plistmustcontainanNSCameraUsageDescriptionkeywithastringvalueexplainingtotheuserhowtheappusesthisdata.
大概意思就是得在plist里面必须加上NSPhotoLibraryUsageDescription和NSCameraUsageDescription的键值对才行,之前都是默认的,现在必须加,要不不让通过,真是坑啊~~具体配置如下图:
大概统计了一下需要加的一些字段列在下面:
NSContactsUsageDescription->通讯录
NSMicrophoneUsageDescription->麦克风
NSPhotoLibraryUsageDescription->相册
NSCameraUsageDescription->相机
NSLocationAlwaysUsageDescription->地理位置
NSLocationWhenInUseUsageDescription->地理位置
发布
发布时,通过ProductàArchive进行打包
上传注意事项:
在上传过程中可能会报错,我遇到的有如下两点:
1、上传应用出错:
ERRORITMS-90161:
"InvalidProvisioningProfile.Theprovisioningprofileincludedinthebundlex.x.x.x[Payload/x.x.x.app]isinvalid.[Missingcode-signingcertificate.]Formoreinformation,visittheiOSdeveloperPortal."
解决:
xcode-windows-organizer-选中archive包,右键showinfinder,找到安装包文件,右键显示包内容,把Products目录下的Application文件夹改名为Payload,修改info.plist文件ApplicationProperties-ApplicationPath,把Application/xx改为Payload/xx重新上传即可。
2、报另外一错误,大概如下图(网上找的)所示内容:
解决:
网站DàAccountàCertificates,Identifiers&ProfilesàAppIdsàiOSAppIDSettingsconfigureservicesforthisAppID将不必要的内容都去掉,然后重新生成资源文件,重新上传至mac中的钥匙串中,再打包,再提交
3、对于测试设备进行测试时,需要在中增加Device,通过ITunes获取到Name和Udid后进行登记,然后使用云端打包方式打包,使用开发者证书和针对于某个设备的资源文件进行云端打包后,在手机中进行测试。
提交过去之后,5天之后苹果给邮件说明已提交审核:
2016年5月4日在这封邮件之后的1天之内,又给出APP的问题如下:
将数据库版本号修改之后,没有提示框重新提交审核。
2016年5月4日凌晨发邮件说已准备审核:
继续等待,到了2016年5月4日10:
47,收到邮件又被拒了,邮件内容如下:
打开后如下内容:
2016年5月4日上午10:
21
发件人Apple
∙10.6 - Appleandourcustomersplaceahighvalueonsimple,refined,creative,wellthoughtthroughinterfaces.Theytakemoreworkbutareworthit.Applesetsahighbar.Ifyouruserinterfaceiscomplexorlessthanverygood,itmayberejected
10.6Details
Yourappstillincludesanupdatebuttonoralertstheusertoupdatetheapp.Toavoiduserconfusion,appversionupdatesmustutilizetheiOSbuilt-inupdatemechanism.
We’veattachedscreenshot(s)foryourreference.
NextSteps
Pleaseremovetheupdatefeaturefromyourapp. Todistributeanewversionofyourapp,uploadthenewappbinaryversionintothesameiTunesConnectrecordyoucreatedfortheapp’spreviousversion.UpdatedversionskeepthesameAppleID,iTunesConnectID(SKU),andbundleIDastheoriginalversion,andareavailablefreetocustomerswhopurchasedapreviousversion.
Resources
Tocreatenewversionsofyourapp,pleasesee ReplacingYourAppwithaNewVersion intheiTunesConnectDeveloperGuide.
在我的里面有个“检查更新”的按钮。
可能是在苹果APP中不允许出现手工更新导致
于是,将该按钮去掉,然后重新生成安装包上传。
上传完毕,重新选择1.0.3上传的二进制文件后保存,重新提交审核后进入等待。
2016.5.5凌晨收到邮件,显示正在审核,如下图:
2016.5.510:
55收到邮件,显示可以发布了,如下图:
进入ITunusConnect后,查看状态如下图:
单击“发布此版本”后,看到如下界面:
会在该界面执行几分钟,可能是本地网络比较慢的原因:
等待过程中,收到邮件如下:
表明已发布成功.
界面中刷新了很多时间,没有显示,于是刷新页面后,如下图:
根据邮件内容,此时,在ITunusAppStore中可能查找不到该APP,得等待24小时左右,搜索是搜不到的,如下图:
3、IOS打包时切换到后台支持获取位置信息的功能需要配置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HBuilder iOS离线打包配置说明 iOS 离线 打包 配置 说明