uni-app如何能做出一个“干净”的离线打包 app?

发布于 1周前 作者 vueper 来自 Uni-App

uni-app如何能做出一个“干净”的离线打包 app?

建议改进离线打包指南

0. 提供一个最简单的 HBuilder-blank 项目

  • 可以没有任何实际功能,但要凸显出如何修改 app 名称、版本、icon、splash。

1a. 在原生开发环境中新建一个空项目

  • 把 HBuilder-blank 项目中的内容分别复制到适当的位置。

1b. 设置修改 app 名称、版本、icon、splash

  • 对于新手来说,这一步可能会感到迷茫。

2. 编译、运行、打包、导出

  • 这部分内容主要是原生开发环境的事情,简单提及即可。

3. 引入第三方功能模块

  • 需要做哪些事情(复制文件、在原生开发环境中的设置、修改 manifest.json 文件)。
  • 官方给出的 Feature-Android.xls 和 Feature-iOS.xls 已经很完整地列出了“有哪些”,但对于“怎么做”还缺少一点更直观的引导。

最后再感慨一下,HBuilder 是一个非常用心的产品,希望越做越好!


25 回复

附件中有安卓和iOS的纯净的SDK


太感谢啦!~

为什么导不进eclipse啊?

回复 木子喵:你的能导进eclipse吗?

回复 GaGada:可以呀,是你的eclipse之前有Hbuilder-Hello重名了所以导不进去吧?改一下名字就好了~

回复 木子喵:那你离线打包搞定了没?

回复 GaGada:用clean这个有问题,之前的基座没问题

你好。我在用了你的Clean。然后发现XCode出现报错提示。 “_OBJCCLASS$_ZipArchive”,referenced from: Objc-class-ref in liblibPDRCore.a(DCSAAppResManager.o) Objc-class-ref in liblibPDRCore.a(PDRCoreAppManager.o) Objc-class-ref in liblibPDRCore.a(PDRCoreApp.o) Symbol(s) not found for architectrue x86_64

请问这个是要加什么框架进去,还是要怎么操作啊?如何解决这个问题?

请问有没有相对干净的演示项目,不知道怎么去除HBuilder-Hello里面多余的东西,打包出来好大…

非常感谢!!

昨天正想回答你的这个问题的 今天还没来得及写完 官方就给出了案例 ~ 我也就不写啦;
关于Android的案例,官方给的是Runtime集成方式,类似于HBuilder的云打包,应该符合你的需求了;
如果你的app有一部分界面是原生写的,另外一部分是html写的,想把html写的集成到原生项目,这时就得用widget方式集成;可参考官方的http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/81 如果看不懂的话 再叫官方整个干净的widget案例吧 哈哈; 或者如果需要,我可以帮忙整理一个~

widget方式是什么方式,官方有例子不

@诸葛亮七进七出 我已经写了个案例哦 http://ask.dcloud.net.cn/article/526

顶!就打包这个事情我搞了两天,从hbuild-hello里面开始删,删完之后还有十几兆

你不顶起来,不知道这个问题2015年就有人提了,到现在官方文档里还是老的例子hbuilde-hello,不熟悉原生开发的人,离线打包真的很痛苦,不敢随便删项目里的配置文件,又不知道自己是否修改了所有该修改的地方!!!楼里面有些朋友回复的,我回头再仔细看一下。

好不容易把hbuilder-hello打包成功,但是如何替换成自己的,还是问题很多!

文章一针见血,我也遇到这个困惑了,大神那现在怎么才能创建一个纯净版的离线打包的“壳子呢”,求指教

你说的这个确实是事实,因为官方已经配置好了android studio工程基础版,基础版比较臃肿,对于小白们只能在这个基础上进行配置,实现android离线打包。但我经过自己研究,已经实现不依赖基础版,从0开始实现android离线打包。可以参考:http://www.xiaotiaogou.com/mui003.php

在使用uni-app进行离线打包以创建一个“干净”的app时,关键在于确保代码、资源文件以及打包配置都是精简且高效的。以下是一个基本的实现思路和代码案例,帮助你实现这一目标。

1. 代码精简与优化

确保你的代码是精简且无冗余的。使用ES6+语法,并充分利用uni-app框架提供的组件和API来减少自定义代码量。

// 示例:使用uni-app的API进行网络请求
uni.request({
    url: 'https://api.example.com/data',
    success: (res) => {
        console.log(res.data);
    },
    fail: (err) => {
        console.error(err);
    }
});

2. 资源文件管理

将图片、字体等资源文件进行优化,如压缩图片、合并CSS/JS文件等,并合理组织资源目录结构。

<!-- 示例:使用base64内嵌小图片 -->
<image src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." mode="widthFix"></image>

3. 配置manifest.json

manifest.json文件中,精确配置app的相关信息,如名称、版本、图标、启动图等,避免不必要的资源包含。

{
    "mp-weixin": { // 示例配置微信小程序
        "appid": "your-app-id",
        "setting": {
            "urlCheck": false
        }
    },
    "app-plus": {
        "name": "CleanApp",
        "version": {
            "name": "1.0.0",
            "code": "100"
        },
        "icons": [
            {
                "size": "57",
                "src": "static/icons/icon-57.png"
            },
            // 更多图标配置...
        ],
        "splashscreen": {
            "autoclose": true,
            "delay": 3000,
            "image": "static/splash/splash.png"
        }
    }
}

4. 使用HBuilderX进行打包

HBuilderX是DCloud官方提供的开发工具,支持一键离线打包。在打包前,确保已经进行了彻底的代码审查和测试。

  • 打开HBuilderX,选择你的uni-app项目。
  • 点击“发行”->“原生App-云端打包”或“原生App-本地打包”(根据需求选择)。
  • 根据向导配置相关信息,如选择打包平台(Android/iOS)、填写证书信息等。
  • 点击“打包”,等待打包完成并下载生成的安装包。

5. 后续优化

  • 使用代码混淆工具对JS代码进行混淆,增加反编译难度。
  • 定期审查并移除未使用的代码和资源文件。
  • 关注uni-app和HBuilderX的更新日志,及时应用新特性和性能优化。

通过以上步骤,你可以创建一个结构清晰、资源优化、配置精确的“干净”离线打包app。

回到顶部