DCloud_App_Array
DCloud_App_Array
  • 发布:2016-10-10 18:31
  • 更新:2024-06-13 19:48
  • 阅读:41659

iOS创建最精简离线打包工程

分类:5+ SDK

ios创建最精简离线打包工程
注意:如果离线打包的是uni-app项目 请点击进入查看如何配置

1 打开Xcode,创建新工程,选择“Single View Application”

2 添加创建工程的名称(注意:最好不要填中文或特殊字符)

3 复制HBuilder-Hello工程的delegate和Controller文件覆盖新创建工程的相应文件

4 拷贝以下文件到新创建工程目录下

iOSSDK/SDK/Bundles/PandoraApi.bundle
iOSSDK/SDK/control.xml
iOSSDK/SDK/Libs/liblibPDRCore.a
iOSSDK/SDK/Libs/libcoreSupport.a
iOSSDK/SDK/Libs/liblibUI.a

5 添加刚才拷贝的文件到工程内

6 拷贝IOS-SDK/SDK/inc目录到新创建工程目录下,并添加到工程内

7 点击Project->TARGETS->Build Settings搜索“Other Linker Flags”,双击搜索到的项双击,在弹出框内添加想“-ObjC”

8 点击Projcet->General->Linked Frameworks and Libraries 添加系统库到工程

系统库
JavaScriptCore.framework
WebKit.framework
CoreTelephony.framework
MobileCoreServices.framework
SystemConfiguration.framework
MediaPlayer.framework
AudioToolbox.framework
Security.framework
QuartzCore.framework
CFNetwork.framework
Foundation.framework
CoreFoundation.framework
CoreGraphics.framework
UIKit.framework
QuickLook.framework
libc++.tbd
libxml2.tbd
libz.tbd
libsqlite3.0.tbd
ImageIO.framework
CoreText.framework
Storekit.framework
UserNotifications 并设置为Optianal

9 点击Project->TARGETS->Build Settings搜索“ARC”,修改"Objective-C Automatic Reference Counting"项的值为"NO", 如果希望使用ARC则需要修改相应的内存管理代码。

10 修改头文件搜索路径

点击Project->TARGETS->Build Settings搜索"Header Search Paths",
双击搜索到的"Header Search Paths"项,将工程目录下的inc目录拖到打开的下拉框

11 修改静态库搜索路径

点击Project->TARGETS->Build Settings搜索"Library Search Paths",
如果"Library Search Paths"项下有值则不需要处理,
如果没有值则双击搜索到的"Library Search Paths"项,将工程目录下的libs目录(静态库所在目录)拖到打开的下拉框

12 修改BitCode

点击Project->TARGETS->Build Settings搜索BitCode
将Enable Bitcode项的值改成 ‘NO’

13 添加Web应用到工程

在工程目录下创建目录”Pandora->apps->[APPID]->www“目录,并将Web应用拷贝到www(小写字母)目录下
APPID为要加入到工程应用mainfest.json文件
添加Pandora目录到工程中

添加后会弹出选择类型框,选择”Create Folder References“

添加后工程内的Pandora目录为蓝色

14 修改control.xml文件

修改control.xml文件的appid节点值为mainfest.json文件的id节点下内容,appver节点内容修改为manifest.json文件的version->name节点下内容

如以上三图红圈标记位置都要一致

15 设置应用的图标

点击project->target->General->App Icons and Launch Images->App Icons Source项右侧小箭头

在新开页面根据提示将对应尺寸的应用图标拖入到虚线框中即可

16 设置应用的splash图片

拷贝HBuider-Hello工程的info.plist文件的UILaunchImages节点到新工程info.plist文件,同时拷贝HBuilder-Hello工程下的splash目录到新工程目录下并将其添加到新工程中
根据图片的尺寸逐个替换splash图片,注意文件名不能修改

17 设置应用显示的应用名

点击project->target->General->Identity->Display Name修改应用的显示名称

18 修改info.plist文件,添加App Transport Security Settings类型为Dictionary,在该项下添加Allow Arbitrary Loads项类型为Boolean,值为YES

IOS 10 需要在info.plist文件中添加隐私权限配置

运行时如果提示“打包时未添加XXX模块”,(非中文提示时需要配置国际化),请参考SDK/Feature-ios.xls文件,查找对应插件名需要引入的5+库文件和系统库文件,添加到工程即可

Android创建最精简离线打包工程

17 关注 分享
Trust zhaomenghuan wenju CFee badfl Runic 3***@qq.com 雨沫 x***@163.com w***@126.com 木子喵 l***@orange100.cn Neil_HL 4***@qq.com skysowe 8***@qq.com 踏江行

要回复文章请先登录注册

PeterYu

PeterYu

回复 骁骑 :
查了半天,原来是在feature.plist文件里面添加plugintest=>Dictionary=>(0 item)的时候出错了。将class => String => PGPluginTest添加成为一个独立的键;而不是plugintest的子键!

我最近怎么啦?工作太累了还是已经老眼昏花了?现在都已经是人工智能时代了。怎么还需要我这个人类在做这些需要一丝不苟的工作?作为老程序员的我是否应该需要怀疑人生了?

其实测试专业(包括调试)工作内容(功能测试,安全测试,性能测试,自动化测试等等编写测试案例查看测试报告)比较单调、高度重复性、需要一丝不苟、无创新性,完全可以使用机器人啊。

现在tensorFlow等现成框架一堆堆的,估计开发IDE的人来做这个事情不要10个人年吧?

像Selenium, Appscan等专业测试工具的开发者反而不容易实现人工智能。原因很简单;他们没有IDE开发者的优势:可以收集程序员的各种数据,进行数据清洗等等;所谓巧妇难为无米之炊。

希望有中国人可以开创先河,首先做出世界第一个测试机器人/调试机器人。只可惜IDE不是我的工作内容。。。
2017-12-28 14:36
PeterYu

PeterYu

回复 骁骑 :
已经做了啊。完全按照http://ask.dcloud.net.cn/article/67的做法,直接将PluginTest.m、PluginTest.h文件拖动到Xcode9的HBuilder-Hello工程里面并选择add folder reference而不是create folder作为加入选项的啊。

谢谢官方。
2017-12-28 11:05
骁骑

骁骑

回复 PeterYu :
plugintest是扩展插件示例要在Hello工程中使用,还需要两处配置
1 拷贝HBuilder-Integrate工程目录下的PluginTest.m、PluginTest.h文件到HBuilder-Hello工程
2 HBuilder-Hello工程下PandoraApi.bundle/feature.plsit文件里增加plugintest插件的声明,具体配置方法可以参考HBuilder-Integrate工程下PandoraApi.bundle/feature.plsit文件
2017-12-28 10:57
PeterYu

PeterYu

回复 PeterYu :
在Xcode9上面使用IOS SDK\HBuilder-Hello文件夹内的包来打包;结果还是提示:
HTML5+ Runtime
打包时未添加plugintest模块,请参考
http://ask.dcloud.net.cn/article/283

这个是不是iOS20171130版本的SDK的一个bug呢?以前用20171031版本都可以啊?

期待官方查一下。
2017-12-28 10:47
PeterYu

PeterYu

使用这篇文件流程打包加上插件(http://ask.dcloud.net.cn/article/67)的时候,会显示manifest.json中为添加plugintest模块,请参考http://ask.dcloud.net.cn/publish/article/283。我已经在manifest.json里面增加了"plugintest":{"description":"H5Plug Plugin Demo2"}了,莫非是系统没有加载manifest.json文件。可是我是在/apps/我的appid/www/index.html里面转跳我司自己的服务器的啊。只是app是正常运行并调用了index.html文件。如果加载manifest.json文件呢?
2017-12-27 17:24
榕基小包

榕基小包

使用这种方式集成后,Xcode打的ipa包放到HBuilder工作下的/unpackage/debug目录下。运行自定义基座运行,提示“无法识别的自定义基座包,可从菜单:运行-真机运行-设置自定义调试基座 进行制作”。请问是什么原因。@DCloud_SDK_骁骑
2017-12-23 14:42
f***@sina.com

f***@sina.com

回复 l***@orange100.cn :
我的也是你一样的报错,但是我的打开是白屏,然后就是请求页面无法打开
2017-12-20 13:18
l***@orange100.cn

l***@orange100.cn

这篇写的非常详细了, 按照步骤来已经成功离线编译了。环境是 xcode 9.1 (9B55),sdk用的是iOS-SDK@1.9.9.38472_20171031.zip 这个压缩包里的 HBuilder-Hello这个项目,后来用自己新建的一个本地项目也可以成功编译运行。

还有两个小问题没解决,一个是启动界面,按文档里做的,但是启动的时候没有启动图片。
另一个是启动的时候有个报错
2017-12-01 09:01:40.399868+0800 testOri[1608:18454] ######===>>>>New Device Model:[x86_64]
2017-12-01 09:01:40.433879+0800 testOri[1608:18454] -canOpenURL: failed for URL: "hbuilder://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
2017-12-01 09:01:41.202179+0800 testOri[1608:18454] [MC] Lazy loading NSBundle MobileCoreServices.framework
2017-12-01 09:01:41.203228+0800 testOri[1608:18454] [MC] Loaded MobileCoreServices.framework

也在info.plist配置了 LSApplicationQueriesSchemes,里面也添加了hbuilder但是还是有这个报错,只是不影响运行,但是怕将来有什么问题,有哪位解决了给指点一下呗
2017-12-01 09:10
lxl

lxl

妈呀,步骤太多了,能不能优化下,或者写个脚本自动生成项目
2017-10-03 00:55
Vol561

Vol561

按配置设置了splash启动页,把hbuild默认的启动页图拷贝了进去,但启动页还是显示白屏,为什么呢?
2017-09-15 18:33