登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
业界
›
旧版本Flutter使用xcode16打包上架时报错
旧版本Flutter使用xcode16打包上架时报错
[ 复制链接 ]
兼罔
2025-9-10 09:45:29
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
如图,最近在Xcode16中打包flutter项目出现了如下的问题。
其实最正统的方法就是升级flutter到最新的版本,它是不添加bitcode。但是由于一些原因,我们是不能升级版本的,于是只能进行修复。
解决方案请看最下面,中间是我解决流程。
初始没细看,一看bitcode就想到是不是在iOS项目中没有设置bitcode或者pod的三方库没有清理bitcode。于是我就在进行了以下检查。
(1)在Xcode中禁用Bitcode:
打开你的Xcode项目。
选择你的项目在Project Navigator中。
选择你的目标应用。
选择“Build Settings”标签。
搜索“Enable Bitcode”并将其设置为“No”。
清理并重建你的项目(使用快捷键Shift + Command + K进行清理,然后使用Command + B进行重建)。
(2)更新或替换第三方库:
如果问题是由第三方库引起的,联系库的供应商获取更新版本,或者寻找不包含Bitcode的替代库。
使用CocoaPods的post_install钩子:
如果你使用CocoaPods管理依赖,可以在Podfile中添加一个post_install钩子来自动剥离所有frameworks中的Bitcode。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# Flutter iOS build settings
flutter_additional_ios_build_settings(target)
# 强制关闭 Bitcode,防止被覆盖
config.build_settings['ENABLE_BITCODE'] = 'NO'
# 统一 Swift 版本 (如果需要)
config.build_settings['SWIFT_VERSION'] = '5.3'
# 设置最低 iOS 版本
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
end
复制代码
经过上述两个方法的检查,我发现我之前都设置了这些,我就很奇怪这是为什么。后面发现人家已经提示的很清楚了是App.app/Frameworks/Flutter.framework/Flutter‘ contains incomplete bitcode。他说的是flutter.framework包含bitcode。这时候我们就需要手动剥离这里面的bitcode。
无效方法一、 使用 --no-bitcode 构建标志
flutter build ipa --no-bitcode --export-options-plist=ios/ExportOptions.plist
复制代码
但是这个方法是需要一定版本的。第一个build ipa 低版本是build iOS,但是--no-bitcode也是低版本不支持。
无效方法二、手动修改 Xcode 架构脚本
用 Xcode 打开项目:在 Xcode 导航器中选中 Runner target,点击顶部的 "Build Phases" 标签页。展开 "Thin Binary" 或 "Strip Frameworks"。在其中一个脚本之前或者之后添加以下内容。
# 移除 Flutter.framework 中的 Bitcode 段
"${PODS_ROOT}/../flutter/bin/flutter" --suppress-analytics
echo "Stripping Bitcode from Flutter.framework"
strip -r -t -o "${BUILT_PRODUCTS_DIR}/App.framework/App" "${BUILT_PRODUCTS_DIR}/App.framework/App" 2>/dev/null || true
strip -r -t -o "${BUILT_PRODUCTS_DIR}/Flutter.framework/Flutter" "${BUILT_PRODUCTS_DIR}/Flutter.framework/Flutter" 2>/dev/null || true
复制代码
编译成功后,重新上传还是失败。
无效方法三、手动验证和强制剥离
1.构建后手动检查:
# 构建后,找到 Flutter.framework
find build/ios -name "Flutter.framework" -type d
# 检查是否包含 Bitcode
otool -l /path/to/Flutter.framework/Flutter | grep __LLVM
复制代码
2.移除
# 进入 Flutter.framework 目录
cd /Users/weichenyang/Downloads/KuaizhunCode/flutter/ops-app/ios/Flutter/Flutter.framework
# 移除二进制文件中的 bitcode
xcrun bitcode_strip -r Flutter -o /Users/weichenyang/Downloads/Export/Flutter
// 详细流程
# 1. 创建输出目录
mkdir -p /Users/user/Downloads/Export/Flutter.framework
# 2. 复制整个框架结构
cp -R /Users/user/Downloads/flutter/app/ios/Flutter/Flutter.framework/* /Users/user/Downloads/Export/Flutter.framework/
# 3. 进入输出目录处理二进制文件
cd /Users/user/Downloads/Export/Flutter.framework
# 4. 移除 bitcode(这会创建新的二进制文件)
xcrun bitcode_strip -r Flutter -o Flutter_stripped
# 5. 替换原二进制文件
mv Flutter_stripped Flutter
# 6. 确保执行权限
chmod +x Flutter
复制代码
3.检查
# 检查移除后的文件
otool -l /Users/weichenyang/Downloads/Export/Flutter.framework/Flutter | grep __LLVM
# 或者使用更详细的检查
xcrun bitcode_strip -t /Users/weichenyang/Downloads/Export/Flutter.framework/Flutter
复制代码
4.替换
把当前的famework替换项目中的 但是这样的话需要重新编译打包,这时候就会自动生成bitcode,无效
手动有效方法:
1.打开Xcode的Organizer,找到打包时生成的Archive文件,右键show in finder选择找到相应的.archieve文件,然后再选择显示包内容,进入到.archive文件的内容文件夹,依次进入Products->Applications->Runner(打包生成的.app文件),再右键Runner,选择显示包内容,然后找到Frameworks->Flutter.framework
2.打开终端,cd到Flutter.framework文件夹,然后依次输入以下命令检测framework是否包含bitcode
otool -l Flutter | grep __LLVM | wc -l
复制代码
3.输入以下命令,将framework的bitcode移除
xcrun bitcode_strip -r Flutter -o Flutter
复制代码
4.现在你可以返回到,刚才的Organizer页面,愉快的打包上架Appstore了.
终极懒人方法
:脚本运行参考:文章
#!/bin/bash
# 检查是否提供了路径参数
if [ -z "$1" ]; then
echo "Usage: $0 <path_to_xcarchive>"
exit 1
fi
XCARCHIVE_PATH="$1"
APP_PATH="$XCARCHIVE_PATH/Products/Applications/Runner.app/Frameworks/Flutter.framework/Flutter"
# 检查 Flutter.framework 是否存在
if [ ! -f "$APP_PATH" ]; then
echo "Error: Flutter.framework not found at $APP_PATH"
exit 1
fi
# 检查 Flutter.framework 是否包含 bitcode
BITCODE_CHECK=$(otool -l "$APP_PATH" | grep -q '__LLVM' && echo 1 || echo 0)
if [ "$BITCODE_CHECK" -eq 0 ]; then
echo "Info: Flutter.framework does not contain bitcode."
else
echo "Info: Flutter.framework contains bitcode. Removing it..."
# 创建一个临时目录来保存修改后的 Flutter.framework(实际上我们只需要修改 Flutter 可执行文件)
TEMP_DIR=$(mktemp -d)
TEMP_FLUTTER_PATH="$TEMP_DIR/Flutter"
# 复制 Flutter 可执行文件到临时目录
cp "$APP_PATH" "$TEMP_FLUTTER_PATH"
# 删除临时目录中的 Flutter 的 bitcode
xcrun bitcode_strip -r "$TEMP_FLUTTER_PATH" -o "$TEMP_FLUTTER_PATH"
# 将修改后的 Flutter 可执行文件复制回原位置
cp "$TEMP_FLUTTER_PATH" "$APP_PATH"
# 清理临时目录
rm -rf "$TEMP_DIR"
echo "Info: Bitcode has been removed from Flutter.framework."
fi
echo "Script execution completed."
复制代码
使用说明:
将上述脚本保存为一个文件,例如 remove_bitcode_from_xcarchive.sh。
给脚本添加执行权限:chmod +x remove_bitcode_from_xcarchive.sh。
运行脚本,并传入 .xcarchive 文件的路径:./remove_bitcode_from_xcarchive.sh /Users/wen/Library/Developer/Xcode/Archives/2025-01-07/Runner 2025-1-7, 10.50.xcarchive。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
版本
Flutter
使用
xcode16
打包
相关帖子
给Xcode使用完整版本的swiftformat
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
k8s~secret资源的使用
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
使用 OpenSpec + 提示词工程 + Harness 思维,构建一站式多 Agent 研发流程
使用fetchEventSource构建高效AI智能助手:文件搜索场景的完整实现与深度解析
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
给Xcode使用完整版本的swiftformat
0
925
晚能
2026-03-27
业界
使用Alpine配置WSL ssh门户
0
1011
郁梓馨
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
176
瞧厨
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
349
任俊慧
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
523
士沌
2026-03-30
安全
k8s~secret资源的使用
0
856
齐娅晶
2026-03-31
业界
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
0
108
损注
2026-03-31
业界
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
0
159
金娅鸣
2026-03-31
业界
使用 OpenSpec + 提示词工程 + Harness 思维,构建一站式多 Agent 研发流程
0
497
啦迩
2026-03-31
业界
使用fetchEventSource构建高效AI智能助手:文件搜索场景的完整实现与深度解析
0
119
胁冉右
2026-04-01
回复
(33)
许娴广
2025-11-25 02:37:36
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
前排留名,哈哈哈
赶塑坠
2025-11-27 12:41:44
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
诈知
2026-1-13 19:48:55
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
山真柄
2026-1-14 15:01:03
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个好,看起来很实用
衣旱
2026-1-14 19:44:04
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
分享、互助 让互联网精神温暖你我
萨瑞饨
2026-1-18 07:16:50
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
账暴
2026-1-18 12:21:06
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
苗嘉惠
2026-1-21 19:58:50
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
迎脾
2026-1-24 12:24:29
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
厌外
2026-1-24 20:25:04
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,辛苦了
颛孙中
2026-1-25 09:14:39
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
喜欢鼓捣这些软件,现在用得少,谢谢分享!
庾签
2026-1-26 10:48:19
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
热心回复!
南宫玉英
2026-1-29 01:56:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
咪四
2026-1-30 02:55:59
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
娄静曼
2026-1-30 05:42:13
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
苗嘉惠
2026-2-3 11:31:10
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
前排留名,哈哈哈
滕佩杉
2026-2-5 06:20:54
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
明思义
2026-2-6 22:25:38
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
这个好,看起来很实用
诉称
2026-2-7 04:42:51
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
兼罔
2026-2-7 04:42:51
关注
0
粉丝关注
23
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9539
6
宋子
9880
7
韶又彤
9911
8
注思
9034
9
荪俗
9023
10
诀锺
9036
查看更多
今日好文热榜
617
直击政企AI落地“深水区”,华为混合云推出
195
20252912 2024-2025-2 《网络攻防实践》实
593
20252912 2024-2025-2 《网络攻防实践》实
260
20252912 2024-2025-2 《网络攻防实践》实
887
FastAPI里玩转Redis和数据库的正确姿势,别
422
FastAPI里玩转Redis和数据库的正确姿势,别
251
FastAPI里玩转Redis和数据库的正确姿势,别
205
FastAPI里玩转Redis和数据库的正确姿势,别
3
电子小白之MOS管
3
电子小白之MOS管
3
防御 AI 幻觉:基于parcel/watcher的文件双
3
电子小白之MOS管
3
防御 AI 幻觉:基于parcel/watcher的文件双
226
FastAPI里玩转Redis和数据库的正确姿势,别
3
试试连Claude Code团队都在使用的终端软件G
3
电子小白之MOS管
3
电子小白之MOS管
427
在 React 项目中优雅实现新用户引导:HagiC
3
把设备能力接进 OpenClaw:Node 应用的架构
618
AI元人文:养护自感——在批判、解构与建构