Фреймворк был построен без полного битового кода - Фреймворк с битовым кодом уже включен

Получение этой ошибки при архивации моего приложения. Используемые фреймворки - мои. Так что я перепроверил. Биткод в фреймворке включен. Не уверен, почему я получаю эту проблему. Это настройки сборки в моем фреймворке:

Я пошел по этой ссылке, но не работал. Попытка установить -fembed-bitcode в проекте фреймворка (не цели, а проекта, так как это рекомендуется в ссылке).

8 ответов

Решение

Попробуйте установить " Пропустить установку" на " YES" и " Вставить битовый код в YES" в настройках сборки фреймворка.

Бит-код - это абстрактная кодировка приложения, которая может использоваться для его повторной компиляции различными способами с учетом набора инструкций. Вы можете проверить, совместим ли ваш двоичный код с битовым кодом, запустив:

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

Когда вы строите нормально, Xcode добавляет флаг сборки -fembed-bitcode-marker на любой лязг вызова.

Добавить -fembed-bitcode: выберите проект Build Settings -> Other C flags, установите Debug на -fembed-bitcode-marker и отпустить -fembed-bitcode это создаст вашу библиотеку с битовым кодом.

BITCODE_GENERATION_MODE

Если вы установите BITCODE_GENERATION_MODE=bitcode в ваших пользовательских настройках, даже на этапе сборки файлы будут скомпилированы с использованием флага -fembed-bitcode,

И, если вы установите BITCODE_GENERATION_MODE=markerфайлы будут скомпилированы с использованием флага -fembed-bitcode-marker, независимо от фазы действия.

Итак, если вы хотите включить битовый код для каждого действия (сборка и архивирование), лучший способ сделать это - использовать BITCODE_GENERATION_MODE установка вы можете сделать это вручную или по сценарию.

Руководство

В настройках сборки нажмите на знак + вверху, чтобы добавить пользовательский параметр сборки с именем BITCODE_GENERATION_MODEи установите Debug на markerВыпустить в bitcode,

Отредактируйте схему как Release Затем свяжите файл library.a и получите путь сборки, получите форму библиотеки Release folder

скрипт

xcodebuild BITCODE_GENERATION_MODE= битовый код OTHER_CFLAGS="-fembed-bitcode" -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -конфигурация ${CONFIGURATION} -sdk iphoneos BUILD_DIR="$} BUILD_DB = BUD BUILD_DB = BUD BUIL $

Если вы выполните команды ниже

  • Включить битовый код 'установлен на' ДА 'Добавление
  • Флаги 'Добавление'BITCODE_GENERATION_MODE'со значением' bitcode 'устанавливают для пропуска установки значение "да"

они не будут работать, пока

  • порхать чисто
  • флаттер сборка ios

так что после изменения настроек сборки вам нужно запустить flutter build

В моем случае у меня есть проект Unity, и я хочу экспортировать его в библиотеку ios для интеграции с другим проектом. Поэтому мне нужно заархивировать его -> Xcode показывает, что «библиотека была построена без полного битового кода»

Мое решение для этого случая:

  • Target -> Framework нужен архив -> Настройка сборки -> Включить биткод = НЕТ

введите описание изображения здесь

Надеюсь, это полезно

  • Настройки проекта -> Выбрать цель платформы -> Настройки сборки

    Добавить -fembed-bitcodeв других флагах C

  • нажмите кнопку + -> Добавить пользовательскую настройку

    Ключ: BITCODE_GENERATION_MODE, значение: битовый код

  • Только для сборки активных архитектур установите значение Да в настройках сборки.

Настройки сборки -> Пользовательские -> Добавить параметр BITCODE_GENERATION_MODE, затем установить значение: битовый код

Добавьте в свой проект (без цели) и для каждого проекта в свой проект (например, Pods) один "Пользовательский" в настройках сборки:

BITCODE_GENERATION_MODE Debug = маркер Release = битовый код

Для следующей души, которая приходит и у которой все включено, как описано в OP, но все еще не удалось заархивировать приложение, используя его, вот что сработало для меня:

  1. Настройте все, как указано в OP.
  2. Архивировать продукт
  3. Экспортируйте его в свою файловую систему
  4. Найдите экспортированный файл mySadLittleFramework.xcarchive.
  5. Щелкните файл правой кнопкой мыши и выберите Показать содержимое пакета.
  6. Продукт -> Библиотека -> Frameworks будет содержать файл mySadLittleFramework.framework
  7. Перетащите / скопируйте куда-нибудь этот файл.
  8. Добавьте этот файл в проект своего приложения в качестве фреймворка.
  9. Заархивируйте приложение.
Другие вопросы по тегам