ios云打包即可复现
一个最明显的特征是: 之前ios打包的体积比较大, 最近打包的体积变小了
不知道是不是相关依赖文件少了
- 发布:2026-03-27 16:18
- 更新:2026-03-27 16:28
- 阅读:40
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: wind10
HBuilderX类型: 正式
HBuilderX版本号: 5.05
手机系统: iOS
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: iphone X
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
可以正常获取 ios 的相关定位权限 (获取wifi信息的时候需要)
可以正常获取 ios 的相关定位权限 (获取wifi信息的时候需要)
实际结果:
无法获取相关定位权限, 导致业务流程中断
无法获取相关定位权限, 导致业务流程中断
bug描述:
最新打包的 要获取 wifi 的一些信息, 需要开启定位相关权限 (app相关权限设置已经全部允许)
获取定位信息的一直失败, 旧版本是好的 两者文件相关配置没有改动;
通过降低HBX的版本 以及升级版本, 打包后依旧如此
经过脚本工具对比: 发现一个文件缺失:
Frameworks/libswiftCoreLocation.dylib
iOS IPA 定位权限检查工具 - 62 vs 66 版本对比
============================================================
============================================================
分析 旧版本(62): ecowitt1_1_62ios.ipa
============================================================
文件总数: 781
Frameworks (3 个):
- DCUniBase.framework: 10989.4 KB
- DCloudUTSExtAPI.framework: 3946.8 KB
- DCloudUTSFoundation.framework: 2583.6 KB
定位相关文件 (3 个):
- Frameworks/libswiftCoreLocation.dylib (88.6 KB)
- Pandora/apps/__UNI__BA4DAEB/www/__uniappchooselocation.js (37.5 KB)
- Pandora/apps/__UNI__BA4DAEB/www/__uniappopenlocation.js (27.7 KB)
============================================================
分析 新版本(66): ecowitt1_1_66ios.ipa
============================================================
文件总数: 766
Frameworks (3 个):
- DCUniBase.framework: 10876.7 KB
- DCloudUTSExtAPI.framework: 2793.9 KB
- DCloudUTSFoundation.framework: 2556.3 KB
定位相关文件 (2 个):
- Pandora/apps/__UNI__BA4DAEB/www/__uniappchooselocation.js (37.5 KB)
- Pandora/apps/__UNI__BA4DAEB/www/__uniappopenlocation.js (27.7 KB)
============================================================
定位配置对比
============================================================
定位权限对比:
使用期间定位权限: 一致
始终定位权限(iOS 10及以下): 一致
始终定位权限(iOS 11+): 一致
定位权限(旧版):
旧版本: 未设置
新版本: 已设置
定位相关 Frameworks 对比:
未检测到定位相关 Frameworks
定位相关文件对比:
缺失的定位文件 (1 个):
- Frameworks/libswiftCoreLocation.dylib
AI的相关建议信息: 见图片附件
ios 的相关配置:
"ios": {
"privacyDescription": {
"NSPhotoLibraryUsageDescription": "Upload user profile picture when modifying personal information",
"NSLocationWhenInUseUsageDescription": "Configure Device need to get Wi-Fi information",
"NSLocationAlwaysUsageDescription": "Configure Device need to get Wi-Fi information",
"NSLocationAlwaysAndWhenInUseUsageDescription": "Configure Device need to get Wi-Fi information",
"NSLocalNetworkUsageDescription": "The app will access the data information of the weather receiver through the local area network.",
"NSBluetoothPeripheralUsageDescription": "Configure Device need to open Bluetooth",
"NSBluetoothAlwaysUsageDescription": "Configure Device need to open Bluetooth",
"NSPhotoLibraryAddUsageDescription": "Download pictures or videos from the camera page to the album",
"NSCameraUsageDescription": "Used when scanning code or uploading avatar"
},
"idfa": false,
"dSYMs": false,
"urlschemewhitelist": ["app-settings"],
"urltypes": "ecowitt"
},
/ SDK配置 /
"sdkConfigs": {
"geolocation": {
"system": {
"platform": ["ios", "android"]
}
},
"ad": {},
"push": {},
"payment": {}
},
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
作为DCloud官方人员,对该bug反馈评审如下:
评审结论
该bug反馈有效,内容质量较高,关键线索明确。
1. 内容完整性评价
优点:
- 提供了新旧版本的文件对比分析,特别是
libswiftCoreLocation.dylib缺失这一关键线索,这对定位问题非常有价值 - 环境信息完整(HBX 5.05、iOS平台、Vue2)
- 问题现象描述清晰(打包体积变小、权限获取失败)
需补充的信息:
- manifest.json配置:未提供
app-plus->distribute->ios节点下的定位权限配置(如NSLocationWhenInUseUsageDescription等privacyDescription配置) - 定位实现代码:未提供调用
uni.getLocation或plus.geolocation的具体代码示例及参数(如type类型:wgs84/gcj02) - 定位模块选择:未说明使用的是系统定位、高德定位、腾讯定位还是百度定位
2. Bug成立性分析
可能原因分析(基于知识库):
-
iOS版本兼容性问题:反馈中提到手机系统版本为"iOS 26",根据优先知识库-云打包无法适配IOS26,当前云打包环境为XCode 16.1 / iOS SDK 18.1,如果确实使用了iOS 26(或极高版本的Beta系统),可能存在SDK兼容性问题。
-
Swift运行时库缺失:
libswiftCoreLocation.dylib是Swift定位核心库,其缺失表明打包过程中可能未正确包含Swift依赖。根据iOS功能模块对照表,定位模块依赖CoreLocation.framework,如果使用的是基于Swift的第三方定位SDK(如特定版本的腾讯或高德SDK),需要确保正确引入Swift支持库。 -
打包环境变更:HBX 5.05版本可能存在打包模板调整,导致动态库未正确链接。
3. 排查建议
请按以下步骤补充信息并排查:
-
确认iOS版本:请确认手机系统版本是否为iOS 18.x(而非26),如果是iOS 26 Beta版本,请参考云打包环境说明,云端环境可能尚未适配。
-
检查manifest配置:请提供
manifest.json中app-plus->distribute->ios->privacyDescription的配置,确保包含:NSLocationWhenInUseUsageDescriptionNSLocationAlwaysAndWhenInUseUsageDescriptionNSLocationAlwaysUsageDescription
-
确认定位方式:请说明使用的定位类型(
uni.getLocation的type参数):- 若为
wgs84:使用系统定位,依赖CoreLocation.framework - 若为
gcj02:需配置三方SDK(高德/腾讯),请参考Geolocation定位配置
- 若为
-
检查WiFi权限:根据WiFi模块文档,iOS13及以上获取WiFi信息需先获取定位权限,且需在苹果开发者网站开启"Access WiFi information"能力。
-
临时解决方案:如急需解决,可尝试在HBuilderX中重新勾选"定位"模块(manifest -> App模块配置 -> 定位),或尝试使用持续定位插件作为替代方案。
建议补充信息后提交到官方issue系统,并附上libswiftCoreLocation.dylib缺失的详细对比报告,这将有助于开发团队定位是否是5.05版本的打包模板问题。