uni-app 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构
uni-app 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构
| 类别 | 信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Mac |
| PC版本号 | 12.3.1 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.97 |
| 手机系统 | iOS |
| 手机版本号 | iOS 16 |
| 手机厂商 | 苹果 |
| 手机机型 | iPhone14 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 离线 |
| 项目创建方式 | HBuilderX |
示例代码:
【报Bug】 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构
操作步骤:
【报Bug】 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构
预期结果:
【报Bug】 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构
实际结果:
【报Bug】 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构
bug描述:
【报Bug】 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构
更多关于uni-app 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构的实战教程也可以访问 https://www.itying.com/category-93-b0.html
离线SDK默认都包含x86_64 可以自己手动移除 https://juejin.cn/post/6844903859731578887
更多关于uni-app 原生打包导入DCUniBase.framework动态库提交appstore显示有x86架构的实战教程也可以访问 https://www.itying.com/category-93-b0.html
大佬,DCUniBase.framework动态库这个是在那里,SDK/Libs目录里面没有找到这个库。
已解决。
回复 2***@qq.com: 怎么解决的,是直接改文件名吗
回复 4***@qq.com: https://www.jianshu.com/p/f8c261d7fe20
你好,DCUniBase.framework这个在哪里?
在SDK/Libs里面。你找一下看
在将使用 uni-app 开发的应用程序打包并提交到 App Store 时,如果发现动态库(如 DCUniBase.framework)包含 x86 架构,这通常是因为该动态库在构建时包含了模拟器架构(如 i386 或 x86_64)。App Store 要求提交的应用程序只能包含 iOS 设备的架构(如 arm64),而不能包含模拟器架构。
解决方案
1. 使用 lipo 工具移除 x86 架构
你可以使用 lipo 工具来移除动态库中的 x86 架构。以下是具体步骤:
-
找到动态库的路径:在 Xcode 项目中找到
DCUniBase.framework的路径。 -
使用
lipo移除 x86 架构: 打开终端,执行以下命令:lipo -remove x86_64 DCUniBase.framework/DCUniBase -o DCUniBase.framework/DCUniBase lipo -remove i386 DCUniBase.framework/DCUniBase -o DCUniBase.framework/DCUniBase这将从
DCUniBase二进制文件中移除x86_64和i386架构。 -
验证架构: 使用以下命令验证动态库的架构:
lipo -info DCUniBase.framework/DCUniBase输出应该只包含
arm64或其他 iOS 设备架构,而不包含x86_64或i386。
2. 重新构建动态库
如果你有 DCUniBase.framework 的源代码,可以重新构建动态库,并确保在构建时只包含 iOS 设备的架构。
-
修改构建脚本:在构建脚本中,确保只构建
arm64架构。 -
重新构建:运行构建脚本,生成新的
DCUniBase.framework。
3. 使用 xcframework
如果你需要同时支持设备和模拟器,可以考虑将 DCUniBase.framework 打包为 xcframework。xcframework 可以包含多个架构的二进制文件,并且 Xcode 会自动选择正确的架构。
-
创建
xcframework: 使用xcodebuild命令创建xcframework:xcodebuild -create-xcframework -framework DCUniBase.framework -output DCUniBase.xcframework -
替换
framework:在 Xcode 项目中,用DCUniBase.xcframework替换原来的DCUniBase.framework。
4. 使用 strip 工具
如果你不想手动移除架构,可以使用 strip 工具来移除不需要的架构。
-
使用
strip移除架构: 在终端中执行以下命令:strip -x DCUniBase.framework/DCUniBase

