在归档我的应用程序时出现此错误。使用的框架是我自己的。因此我进行了交叉检查。框架中的位码已启用。不确定为什么会出现此问题。这些是我的框架构建设置:
我跟随这个链接但是没有成功。尝试在框架项目(不是目标,因为链接中推荐这样做)设置中设置-fembed-bitcode。在归档我的应用程序时出现此错误。使用的框架是我自己的。因此我进行了交叉检查。框架中的位码已启用。不确定为什么会出现此问题。这些是我的框架构建设置:
我跟随这个链接但是没有成功。尝试在框架项目(不是目标,因为链接中推荐这样做)设置中设置-fembed-bitcode。比特码是一个应用程序的抽象编码,可以在给定一组指令的情况下以不同的方式重新编译它。您可以通过运行:
otool -l (我的.o或.a文件) | grep __LLVM
来确认您的二进制文件是否兼容比特码。
当您正常构建时,Xcode会为任何clang调用添加构建标志-fembed-bitcode-marker
。
要添加-fembed-bitcode
:选择项目“Build Settings”->“Other C flags”,将Debug设置为-fembed-bitcode-marker
,将Release设置为-fembed-bitcode
,这将使用比特码构建您的库。
BITCODE_GENERATION_MODE
如果您在用户定义的设置上设置了BITCODE_GENERATION_MODE=bitcode
,即使在构建阶段,文件也将使用标志-fembed-bitcode
进行编译。
如果设置BITCODE_GENERATION_MODE=marker
,则文件将使用标志-fembed-bitcode-marker
进行编译,独立于操作阶段。
因此,如果您想在每个操作(构建和归档)中启用比特码,则更好的方法是使用BITCODE_GENERATION_MODE
设置,您可以手动或通过脚本执行。
手动设置
在“Build Settings”中,点击顶部的+号添加一个名为BITCODE_GENERATION_MODE
的用户定义构建设置,并将Debug设置为marker
,Release设置为bitcode
。
将模式设置为“Release”,然后链接“library.a”文件,获取构建路径并从“Release”文件夹中获取库。
脚本
xcodebuild BITCODE_GENERATION_MODE=bitcode OTHER_CFLAGS="-fembed-bitcode" -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
如果你执行以下命令:
在运行以下命令之前,这些命令不会起作用:
因此,在更改构建设置后,需要运行flutter build。
将以下内容添加到您的项目中(无需目标),对于每个项目(例如Pods),在构建设置中添加一个“用户定义”:
BITCODE_GENERATION_MODE Debug = 标记 Release = 位码
项目设置 -> 选择框架目标 -> 构建设置
在其他C标志中添加-fembed-bitcode
点击+按钮 -> 添加用户定义的设置
键:BITCODE_GENERATION_MODE,值:bitcode
在构建设置中将“仅构建活动架构”设置为是。
构建设置 -> 用户定义 -> 添加设置 BITCODE_GENERATION_MODE,然后将值设置为: bitcode
对于下一个来访的开发者,如果按照 OP 中所述启用了所有内容,但仍无法使用它归档应用程序,请尝试以下方法: