内容简介:最近使用未修正版这样就 OK 了 可以正常上传 这里有个问题需要注意 就是广告内容 建议先删除 官方的指导中 有说明 //#define ENABLEAD 先把这个禁用了 然后删除指定的类库 liblibAdSupport.a 删除后也是正常运行的
最近使用 hbuildx
打包 uniapp 总是失败,而且没有提示失败原因,浏览官方发现官方是有离线打包指导的,所以本文以文字版记载一次离线打包所遇到的问题。
未修正版
离线打包的概念
-
使用 hbuildx 生成本地APP 打包资源 如图
- 点击 iOS 本地打包指南(这里原来是 iOS 离线打包指南的,叫做本地打包更形象吧)
-
先看一下 iOS 本地打包指南 先说下这里的前提 官方这里是以
h5plus
APP
来讲的,也就是说 不是针对uniapp
的。 这里不赘述h5plus
与uniapp
的不同 具体可以见uniapp
的介绍 和h5plus
的介绍重点说关键点 这里不要管
-
好 开始按照官方的下载打包 还以为之前的删掉了。。。我就用之前下载的了 解压 最新版本 一定要下载最新版本
-
这个 文件夹是我们需要的 先来处理 打开直接使用 xcode 运行项目(双击运行HBuilder-Hello.xcodeproj)
框中的文件的文件需要更换 splash 下的文件 要保持文件名一致,如果不一致需要自行修改 info.plist 中的文件名
第一步 先来更图标、然后打开 storyboard 可以看到图标已经更换了 如果要更换其他启动页图标需要这样设置
第二步 点击运行先看一下 。。。。 正常
然后开始更换 h5plus webview 的内容(也就是我们用 uniapp 制作的应用内容)
第三步 使用hbuildx 的生成本地 APP 包功能生成本地 APP 内容
这就意味着着生成了, 注意这框出的部分为 appid 我自定义的 如无必要请使用官方的 AppID__UNI__xiaomishu
整个文件夹复制,然后放入 padora/apps 目录下 原来的文件可以删除 然后更改 control.xml 中的appid 属性为__UNI__xiaomishu
(这里的 AppID 就是文件夹的目录名 一定不要错了 也不能随意更改 copy 的时候是什么名就是什么名) 然后xcode运行项目测试
OK 正常了 我们打包
这样就 OK 了 可以正常上传 这里有个问题需要注意 就是广告内容 建议先删除 官方的指导中 有说明 //#define ENABLEAD 先把这个禁用了 然后删除指定的类库 liblibAdSupport.a 删除后也是正常运行的
问题来了 1、 APP 的名字怎么改。。 名字不对啊
改了bundle_display_name 不行呢? 。。
需要改的是Bundle name 。。。 怎么还不对?
还有几个 name 来改一下 。。。 我错了。。。 这里需要改的是CFBundleDisplayName
其他改动先不说了 毕竟剩下的就是删类库 改 info.plist 了
请务必做到每一次删除类库或者删除info.plist 属性时点击保存或者使用版本库提交一次 确保项目 能够回滚。 毕竟作为一个 iOS 原生开发的门外汉,每一步都能够恢复回去是一个非常重要的步骤。 当然 熟练后就好了 基本就摸清类库引入的门道了。
下面我需要说的是无意中发现的官方更新的手册 创建精简的项目。 先暂停下 。。。大家听会歌
- 好了先说网址 iOS 创建最精简打包项目
先说明 我用的是 xcode 10.1 有一个坑 没有 libstdc++.tbd 。。。。 需要用 libc++.tbd 代替 记住我们不需要 再去下载 libstdc++ 的类库
从libstdc++到libc++ 如果原有项目有libstdc++只需要移除后然后更换为 libc++ 即可。。。。
- 开始 创建一个项目 signle view 即可
大家看官方的指导即可创建完精简打包原生项目
下面需要注意的来了。。。。。
运行会报错。。。。。。。。 为什么 需要排查下 。。。点击红点
我这里报错 是因为我一开始拷贝文件的时候弄错了 没有覆盖原文件 而是 再次引用了。。
重来。。。。
重新来过 好了 点击运行正常打包 然后模拟器开始弹窗
- 缺失。。 nativeUI Storage模块 NativeObj 模块 navigator 模块 一个个的来
liblibNavigator.a
liblibNativeUI.a
这两个文件没有引入
AVFoundation.framework
AssetsLibrary.framework
AddressBook.framework
CoreLocation.framework
这几个类库没有引入的需要引入
liblibStorage.a storage.framework(这个文件在 hbuild 的离线包里面 不是 ios12.1的基础框架)
liblibNativeObj.a 之前顺手引入了。。
navigator 模块也已经顺手引入了。。。。
看 官方压缩包的那个Excel 继续运行
报错
ld: framework not found storage
是因为在当前项目中找不到这个 storage.framework copy到项目中在引入
OK 了 目前没有报错 打包项目的构建 基本完成
但是。。。。 还没有完。。。 需要你明确项目中用了什么。。。。比如这里。。。
扫码这里就来了。。 所以需要 明确项目中的内容。。。 同时有用到权限申请的需要增加权限描述
比如这个一维码就需要使用摄像头。。。
仍然从Excel 中找 这个 barcode 模块
需要引入 liblibBarcode.a
AVFoundation.framework
AddressBookUI.framework
AddressBook.framework
ImageIO.framework
CoreVideo.framework
CoreMedia.framework
libiconv.2.tbd
这里应该是有坑的。。。。 因为 12.1 中 的 photos.framework photosUI.framewor需要引用 先编译 然后看报错。。。 看不到了 发现好像摄像头没调用啊。。
blibCamera.a(TZImageManager.o) ___58-[TZImageManager getOriginalPhotoWithAsset:newCompletion:]_block_invoke in liblibCamera.a(TZImageManager.o) ___59-[TZImageManager getOriginalPhotoDataWithAsset:completion:]_block_invoke in liblibCamera.a(TZImageManager.o) "_OBJC_CLASS_$_PHImageRequestOptions", referenced from: objc-class-ref in liblibCamera.a(TZImageManager.o) "_PHImageResultIsInCloudKey", referenced from: ___95-[TZImageManager getPhotoWithAsset:photoWidth:completion:progressHandler:networkAccessAllowed:]_block_invoke in liblibCamera.a(TZImageManager.o) "_OBJC_CLASS_$_PHImageManager", referenced from: objc-class-ref in liblibCamera.a(TZAssetCell.o) objc-class-ref in liblibCamera.a(TZImageManager.o) objc-class-ref in liblibCamera.a(TZPhotoPreviewCell.o) ld: symbol(s) not found for architecture x86_64 ``` 这串报错就是没有引入 photos.framework 这里还有一个权限。。。。 摄像头权限 info.plist 增加属性 Privacy - Camera Usage Description 后面有一个导入通讯录 等下看看 缺少 contacts 模块
[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSContactsUsageDescription key with a string value explaining to the user how the app uses this data.
`
要增加通讯录 描述
基本就是到这里了。。 谢谢大家
之后都是歌曲了。。。。想听歌的可以停一下 看看我的爱好和你是否相同
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 以 Markdown 撰写文稿,以 LaTeX 排版
- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- Maven多模块项目打包前的一些注意事项(打包失败)
- tar打包如何不打包某一个文件夹(排除某些文件夹)
- iOS新手用swift写一个macos打包工具 一键打包到指定位置
- Android应用签名打包
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编程的修炼(中英双语)
[荷]Edsger W. Dijkstra / 裘宗燕 / 电子工业出版社 / 2013-7 / 79.00元
本书是图灵奖获得者Edsger W. Dijkstra在编程领域里的经典著作中的经典。作者基于其敏锐的洞察力和长期的实际编程经验,对基本顺序程序的描述和开发中的许多关键问题做了独到的总结和开发。书中讨论了顺序程序的本质特征、程序描述和对程序行为(正确性)的推理,并通过一系列从简单到复杂的程序的思考和开发范例,阐释了基于严格的逻辑推理开发正确可靠程序的过程。 本书写于20世纪70年代中后期,但......一起来看看 《编程的修炼(中英双语)》 这本书的介绍吧!