百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

使用Hbuilder构建跨平台的移动App

nanshan 2024-12-02 23:31 8 浏览 0 评论

使用Hbuilder构建跨平台的移动app

安装Hbuilder软件,这里不多介绍了。软件下载地址

下载好之后我们还要准备好自己要打包的项目。

一、安装Hbuilder

二、打开Hbuilder

选中红色区域内新建项目

会弹出如下界面

填好名称和路径然后点击创建。创建好之后项目的目录结构如下

三、编辑好项目代码

整理好需要打包的项目代码。主要是为了测试打包。简单的测试代码

四、进行manifest.json配置

基础配置

图标配置

点击自动生成所有图标并替换后就会生成下面所有的图标。也可以自己制作对应的图片

启动图配置

下面的图片尺寸大小需要自己设计好。延时按照要求设置对应的数值就可以。

SDK配置

这个地方根据自己的需求去配置相应的值。

模块权限配置

配置软件获取的系统权限

源码视图

主要查看上面的配置的json文件。如下:

{
    "@platforms" : [ "android", "iPhone", "iPad" ],
    "id" : "H590E31E9", /*应用的标识*/
    "name" : "my_demo", /*应用名称,程序桌面图标名称*/
    "version" : {
        "name" : "1.0", /*应用版本名称*/
        "code" : 1
    },
    "description" : "第一个测试的app", /*应用描述信息*/
    "icons" : {
        "72" : "icon.png"
    },
    "launch_path" : "index.html", /*应用的入口页面,默认为根目录下的index.html;支持网络地址,必须以http://或https://开头*/
    "developer" : {
        "name" : "", /*开发者名称*/
        "email" : "", /*开发者邮箱地址*/
        "url" : "" /*开发者个人主页地址*/
    },
    "permissions" : {
        "Accelerometer" : {
            "description" : "访问加速度感应器"
        },
        "Audio" : {
            "description" : "访问麦克风"
        },
        "Messaging" : {
            "description" : "短彩邮件插件"
        },
        "Cache" : {
            "description" : "管理应用缓存"
        },
        "Camera" : {
            "description" : "访问摄像头"
        },
        "Console" : {
            "description" : "跟踪调试输出日志"
        },
        "Contacts" : {
            "description" : "访问系统联系人信息"
        },
        "Device" : {
            "description" : "访问设备信息"
        },
        "Downloader" : {
            "description" : "文件下载管理"
        },
        "Events" : {
            "description" : "应用扩展事件"
        },
        "File" : {
            "description" : "访问本地文件系统"
        },
        "Gallery" : {
            "description" : "访问系统相册"
        },
        "Geolocation" : {
            "description" : "访问位置信息"
        },
        "Invocation" : {
            "description" : "使用Native.js能力"
        },
        "Orientation" : {
            "description" : "访问方向感应器"
        },
        "Proximity" : {
            "description" : "访问距离感应器"
        },
        "Storage" : {
            "description" : "管理应用本地数据"
        },
        "Uploader" : {
            "description" : "管理文件上传任务"
        },
        "Runtime" : {
            "description" : "访问运行期环境"
        },
        "XMLHttpRequest" : {
            "description" : "跨域网络访问"
        },
        "Zip" : {
            "description" : "文件压缩与解压缩"
        },
        "Barcode" : {
            "description" : "管理二维码扫描插件"
        },
        "Maps" : {
            "description" : "管理地图插件"
        },
        "Speech" : {
            "description" : "管理语音识别插件"
        },
        "Webview" : {
            "description" : "窗口管理"
        },
        "NativeUI" : {
            "description" : "原生UI控件"
        },
        "Navigator" : {
            "description" : "浏览器信息"
        },
        "NativeObj" : {
            "description" : "原生对象"
        }
    },
    "plus" : {
        "splashscreen" : {
            "autoclose" : true, /*是否自动关闭程序启动界面,true表示应用加载应用入口页面后自动关闭;false则需调plus.navigator.closeSplashscreen()关闭*/
            "waiting" : true, /*是否在程序启动界面显示等待雪花,true表示显示,false表示不显示。*/
            "delay" : 3000
        },
        "popGesture" : "close", /*设置应用默认侧滑返回关闭Webview窗口,"none"为无侧滑返回功能,"hide"为侧滑隐藏Webview窗口。参考http://ask.dcloud.net.cn/article/102*/
        "runmode" : "normal", /*应用的首次启动运行模式,可取liberate或normal,liberate模式在第一次启动时将解压应用资源(Android平台File API才可正常访问_www目录)*/
        "signature" : "Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==", /*可选,保留给应用签名,暂不使用*/
        "distribute" : {
            "apple" : {
                "appid" : "", /*iOS应用标识,苹果开发网站申请的appid,如io.dcloud.HelloH5*/
                "mobileprovision" : "", /*iOS应用打包配置文件*/
                "password" : "", /*iOS应用打包个人证书导入密码*/
                "p12" : "", /*iOS应用打包个人证书,打包配置文件关联的个人证书*/
                "devices" : "universal", /*iOS应用支持的设备类型,可取值iphone/ipad/universal*/
                "frameworks" : [] /*调用Native.js调用原生Objective-c API需要引用的FrameWork,如需调用GameCenter,则添加"GameKit.framework"*/
            },
            "google" : {
                "packagename" : "", /*Android应用包名,如io.dcloud.HelloH5*/
                "keystore" : "", /*Android应用打包使用的密钥库文件*/
                "password" : "", /*Android应用打包使用密钥库中证书的密码*/
                "aliasname" : "", /*Android应用打包使用密钥库中证书的别名*/
                "permissions" : [
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                ]
            },
            /*使用Native.js调用原生安卓API需要使用到的系统权限*/
            "orientation" : [ "portrait-primary" ], /*应用支持的方向,portrait-primary:竖屏正方向;portrait-secondary:竖屏反方向;landscape-primary:横屏正方向;landscape-secondary:横屏反方向*/
            "icons" : {
                "ios" : {
                    "prerendered" : true, /*应用图标是否已经高亮处理,在iOS6及以下设备上有效*/
                    "auto" : "", /*应用图标,分辨率:512x512,用于自动生成各种尺寸程序图标*/
                    "iphone" : {
                        "normal" : "", /*iPhone3/3GS程序图标,分辨率:57x57*/
                        "retina" : "", /*iPhone4程序图标,分辨率:114x114*/
                        "retina7" : "", /*iPhone4S/5/6程序图标,分辨率:120x120*/
                        "retina8" : "", /*iPhone6 Plus程序图标,分辨率:180x180*/
                        "spotlight-normal" : "", /*iPhone3/3GS Spotlight搜索程序图标,分辨率:29x29*/
                        "spotlight-retina" : "", /*iPhone4 Spotlight搜索程序图标,分辨率:58x58*/
                        "spotlight-retina7" : "", /*iPhone4S/5/6 Spotlight搜索程序图标,分辨率:80x80*/
                        "settings-normal" : "", /*iPhone4设置页面程序图标,分辨率:29x29*/
                        "settings-retina" : "", /*iPhone4S/5/6设置页面程序图标,分辨率:58x58*/
                        "settings-retina8" : "", /*iPhone6Plus设置页面程序图标,分辨率:87x87*/
                        "app@2x" : "unpackage/res/icons/120x120.png",
                        "app@3x" : "unpackage/res/icons/180x180.png",
                        "notification@2x" : "unpackage/res/icons/40x40.png",
                        "notification@3x" : "unpackage/res/icons/60x60.png",
                        "settings@2x" : "unpackage/res/icons/58x58.png",
                        "settings@3x" : "unpackage/res/icons/87x87.png",
                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
                    },
                    "ipad" : {
                        "normal" : "", /*iPad普通屏幕程序图标,分辨率:72x72*/
                        "retina" : "", /*iPad高分屏程序图标,分辨率:144x144*/
                        "normal7" : "", /*iPad iOS7程序图标,分辨率:76x76*/
                        "retina7" : "", /*iPad iOS7高分屏程序图标,分辨率:152x152*/
                        "spotlight-normal" : "", /*iPad Spotlight搜索程序图标,分辨率:50x50*/
                        "spotlight-retina" : "", /*iPad高分屏Spotlight搜索程序图标,分辨率:100x100*/
                        "spotlight-normal7" : "", /*iPad iOS7 Spotlight搜索程序图标,分辨率:40x40*/
                        "spotlight-retina7" : "", /*iPad iOS7高分屏Spotlight搜索程序图标,分辨率:80x80*/
                        "settings-normal" : "", /*iPad设置页面程序图标,分辨率:29x29*/
                        "settings-retina" : "", /*iPad高分屏设置页面程序图标,分辨率:58x58*/
                        "app" : "unpackage/res/icons/76x76.png",
                        "app@2x" : "unpackage/res/icons/152x152.png",
                        "notification" : "unpackage/res/icons/20x20.png",
                        "notification@2x" : "unpackage/res/icons/40x40.png",
                        "proapp@2x" : "unpackage/res/icons/167x167.png",
                        "settings" : "unpackage/res/icons/29x29.png",
                        "settings@2x" : "unpackage/res/icons/58x58.png",
                        "spotlight" : "unpackage/res/icons/40x40.png",
                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
                    },
                    "appstore" : "img/logo.png"
                },
                "android" : {
                    "mdpi" : "unpackage/res/icons/48x48.png", /*普通屏程序图标,分辨率:48x48*/
                    "ldpi" : "unpackage/res/icons/48x48.png", /*大屏程序图标,分辨率:48x48*/
                    "hdpi" : "unpackage/res/icons/72x72.png", /*高分屏程序图标,分辨率:72x72*/
                    "xhdpi" : "unpackage/res/icons/96x96.png", /*720P高分屏程序图标,分辨率:96x96*/
                    "xxhdpi" : "unpackage/res/icons/144x144.png", /*1080P 高分屏程序图标,分辨率:144x144*/
                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
                }
            },
            "splashscreen" : {
                "ios" : {
                    "iphone" : {
                        "default" : "", /*iPhone3启动图片选,分辨率:320x480*/
                        "retina35" : "", /*3.5英寸设备(iPhone4)启动图片,分辨率:640x960*/
                        "retina40" : "", /*4.0 英寸设备(iPhone5/iPhone5s)启动图片,分辨率:640x1136*/
                        "retina47" : "", /*4.7 英寸设备(iPhone6)启动图片,分辨率:750x1334*/
                        "retina55" : "", /*5.5 英寸设备(iPhone6 Plus)启动图片,分辨率:1242x2208*/
                        "retina55l" : "" /*5.5 英寸设备(iPhone6 Plus)横屏启动图片,分辨率:2208x1242*/
                    },
                    "ipad" : {
                        "portrait" : "", /*iPad竖屏启动图片,分辨率:768x1004*/
                        "portrait-retina" : "", /*iPad高分屏竖屏图片,分辨率:1536x2008*/
                        "landscape" : "", /*iPad横屏启动图片,分辨率:1024x748*/
                        "landscape-retina" : "", /*iPad高分屏横屏启动图片,分辨率:2048x1496*/
                        "portrait7" : "", /*iPad iOS7竖屏启动图片,分辨率:768x1024*/
                        "portrait-retina7" : "", /*iPad iOS7高分屏竖屏图片,分辨率:1536x2048*/
                        "landscape7" : "", /*iPad iOS7横屏启动图片,分辨率:1024x768*/
                        "landscape-retina7" : "" /*iPad iOS7高分屏横屏启动图片,分辨率:2048x1536*/
                    }
                },
                "android" : {
                    "mdpi" : "", /*普通屏启动图片,分辨率:240x282*/
                    "ldpi" : "", /*大屏启动图片,分辨率:320x442*/
                    "hdpi" : "", /*高分屏启动图片,分辨率:480x762*/
                    "xhdpi" : "", /*720P高分屏启动图片,分辨率:720x1242*/
                    "xxhdpi" : "" /*1080P高分屏启动图片,分辨率:1080x1882*/
                }
            },
            "plugins" : {
                "speech" : {
                    "ifly" : {}
                }
            }
        }
    }
}

五、打包

选择上面菜单栏的发行,原生App在线云端打包

选择完之后就来到这个位置。

上面如果选择了自己的证书 下面的(证书别名、私钥密码、证书文件)都需要填写自己的。

因为我这里没有证书我就选择了 使用DCloud公用证书。下面的的信息就不需要填写。这里都填写好之后就可以点击下面的打包按钮。进行app打包了。

打包成功后会显示

成功之后就可以在控制台看到如下app在队列中的信息。

等待完成之后就可以下载你的apx文件了。

下载完成之后

这样打包工作就完成了。

Ios的打包前面的操作都是一样的就后面的配置有一些区别按照要求进行配置就好。



相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: