ОШИБКА во время создания архива: не удалось сгенерировать пакет битовых кодов, поскольку "Путь к библиотеке (имя файла.o)" был создан без полного битового кода?
Я создал библиотеку для своих часов Apple на основе Ray Wenderlich Tutorial
, Шаги, которые я провела вкратце.
Шаг 1: Я выбрал шаблон как XCode -> File -> New -> watchOS -> Framework & Library -> Watch Static Library
Шаг 2: Добавлены файлы, необходимые для создания библиотеки.
Шаг 3: Добавлены заголовочные файлы из библиотеки, встроенные в публичные файлы.
Шаг 4: Запустите приложение
Шаг 5: Я хочу создать универсальную библиотеку, поэтому я добавил цель как Xcode -> Файл -> Создать -> Цель -> Другое -> Агрегировать
Шаг 6: Добавлен скрипт запуска для симулятора и просмотра ОС как
# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
xcodebuild -target RBWatchModelManager ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator -arch x86_64 -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
UNIVERSAL_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-universal
mkdir -p "${UNIVERSAL_BUILD_DIR}"
# Step 2. Create universal binary file using lipo
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-watchos/lib${PROJECT_NAME}.a"
# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/include" "${UNIVERSAL_OUTPUTFOLDER}/"
и я попробовал еще один скрипт, но попробовал любой из этих двух доступных скриптов
# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
# Step 1. Build Device and Simulator versions
xcodebuild -target RBIWatchModelManager ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target RBIWatchModelManager -configuration ${CONFIGURATION} -sdk iphonesimulator -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target RBIWatchModelManager ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk watchos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
# make sure the output directory exists
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
# Step 2. Create universal binary file using lipo
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-watchos/lib${PROJECT_NAME}.a"
# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"
Используя любой из этих сценариев, я успешно создал библиотеку.
Шаг 7: Я добавил эту библиотеку (библиотека универсальных папок и файлы заголовков (включая папку)) в свой проект.
Шаг 8: выбранная библиотека на этапах сборки Link Binary with Libraries
шаг 9: добавлен путь поиска заголовка
Шаг 10: Запустите приложение. В симуляторе и устройстве его работает правильно.
Но при создании архива этого проекта я получаю одну ошибку, как показано на рисунке ниже.
Затем я искал об этой ошибке, я попробовал предложение:
Предложение, которое я попробовал:
Изменение битового кода. Из-за того, что я использую watchOS, в настройках сборки нет опции битового кода при создании библиотеки, поэтому для этого решения нет места.
добавленной
-fembed-bitcode
заCustom Compiler Flags
в настройке библиотеки при ее создании. Но бесполезно. Я получаю ту же ошибку.Я думал, что эта ошибка из-за определенного имени файла, показанного в журнале ошибок. Поэтому я попытался разделить эти файлы и создал новую библиотеку, но затем я получаю ту же ошибку для других файлов, которые используются для создания библиотеки. Так что бесполезно..
Я пытался включить и отключить
Enable Bitcode
Опция в настройках сборки моего оригинального проекта, где я добавил эту созданную библиотеку, бесполезно.
В конце концов... Есть ли другое решение для устранения этой ошибки. И одна вещь из яблока я нашел
Для приложений iOS битовый код используется по умолчанию, но не является обязательным. Для приложений watchOS и tvOS требуется битовый код. Если вы предоставляете битовый код, все приложения и платформы в комплекте приложений (все цели в проекте) должны включать битовый код. После распространения приложения с помощью iTunes Connect вы можете загрузить файл dSYMs для сборки, описанный в разделе "Просмотр и импорт сбоев" в окне "Устройства".
Помоги мне??