框架是在没有完整位码的情况下构建的 - 框架位码已启用

Framework was built without full bitcode - Framework bitcode already enabled

存档我的应​​用程序时出现此错误。使用的框架是我自己的。所以我交叉检查了。框架中的位码已启用。不知道为什么我会遇到这个问题。这些是我的框架中的构建设置:

我关注了 this link 但没有成功。尝试在框架的项目(不是目标,而是项目,因为在 link 中推荐)设置中设置 -fembed-bitcode

尝试设置 跳过安装 并且 Enable Bitcode to Yes in framework build settings.

Bitcode 是应用程序的抽象编码,可用于在给定一组指令的情况下以不同方式重新编译应用程序。您可以通过 运行 确认您的二进制文件是否与位码兼容:

otool -l (my .o or .a file) | grep __LLVM.

正常构建时,Xcode 将构建标志 -fembed-bitcode-marker 添加到任何 clang 调用。

要添加 -fembed-bitcode:select 项目构建设置 -> 其他 C 标志,将调试设置为 -fembed-bitcode-marker 并将发布设置为 -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 然后 link 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}" 清理构建

对于下一个过来并按照 OP 中的描述启用了所有功能但仍然无法使用它存档应用程序的灵魂,这对我有用:

  1. 按照 OP 中的说明设置所有内容。
  2. 存档产品
  3. 将其导出到您自己的文件系统
  4. 找到导出的mySadLittleFramework.xcarchive
  5. 右键单击文件,选择显示包内容
  6. 产品 -> 库 -> 框架将包含 mySadLittleFramework.framework 文件
  7. Drag/copy 某处的那个文件。
  8. 将该文件作为框架添加到您的应用项目中。
  9. 存档应用。

添加到您的项目(无目标),并为每个项目添加到您的项目(例如:Pods)一个 "User-Defined" 在构建设置中:

BITCODE_GENERATION_MODE 调试=标记 发布=位码

Build Settings -> User-Defined -> Add Setting BITCODE_GENERATION_MODE,然后设置值:bitcode

如果您执行以下命令

  • 启用位码'设置为'YES'添加
  • Flags' 添加 'BITCODE_GENERATION_MODE' 并设置值 'bitcode' 跳过安装到 yes

他们要到

才会工作
  • 颤抖干净
  • 颤振构建ios

以便在更改构建设置后,您需要 运行 flutter build

  • 项目设置 -> Select 框架目标 -> 构建设置

    其他C标志中添加-fembed-bitcode

  • 单击 + 按钮 -> 添加 User-Defined 设置

    键:BITCODE_GENERATION_MODE,值:位码

  • 在构建设置中将“仅构建活动架构”设置为“是”。

在我的例子中,我有一个统一项目,我想将它导出到 ios 库以与另一个项目集成。所以我需要存档它 -> Xcode show "library was built without full bitcode"

我对这种情况的解决方案是:

  • Target -> Framework need archive -> Build setting -> Enable bitcode = NO

enter image description here

希望对您有所帮助