Ошибка подписи биткода в Xcode

Я обновил Xcode до последней версии, и теперь, когда я пытаюсь скомпилировать проект, я получаю сообщение об ошибке «Неверная подпись битового кода», однако битовый код для моего проекта отключен. Как я могу это исправить? Что я должен изменить, чтобы правильно подписать мой биткод?

Мой подфайл:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

target 'MyProjectName' do

pod 'Realm'
pod 'CorePlot'
pod 'GoogleMaps'

end

Я уже проверил, с ним все в порядке.


person Alexandr Kolesnik    schedule 03.04.2017    source источник
comment
Чистые производные данные.   -  person shallowThought    schedule 03.04.2017
comment
Я сделал это первым, не работает   -  person Alexandr Kolesnik    schedule 03.04.2017
comment
Нам нужно больше информации. Я подозреваю, что одна из используемых зависимостей вызывает проблему.   -  person shallowThought    schedule 03.04.2017
comment
При поиске помощи по отладке вам нужно предоставить Podfile.lock, а не Podfile. И желательно точную версию Xcode.   -  person Cœur    schedule 11.04.2017


Ответы (16)


Я не уверен, что у вас такая же ситуация со мной. У меня возникла эта проблема только тогда, когда я пытался протестировать устройство iPhone. Оказывается, конфигурация отладки с Build Active Architecture Only имеет значение NO. После того, как я установил ДА, я могу протестировать свой iPhone. введите описание изображения здесь

person Vincent    schedule 09.04.2017
comment
Благодарю вас! Я бился головой о стену с XCode 8.3 и 8.3.1, все жаловались на неверную подпись битового кода, пока я не изменил это. - person Josh; 09.04.2017
comment
Спасибо, я пытался решить это целую вечность - у меня был отключен бит-код, и эта ошибка все еще появлялась, пока я не установил для Build Active Architecture значение YES. - person wheeliebin; 05.05.2017
comment
Мой спаситель! Герой без кепки! - person Teofilo Israel Vizcaino Rodrig; 18.01.2018
comment
Почему вы не получаете ту же ошибку при архивировании приложения для публикации? Build Active Architecture Only по-прежнему НЕТ для режима выпуска. - person Sébastien; 16.01.2019

Я столкнулся с этой ошибкой, но это произошло только при сборке для iPad с iOS 10.3 (несмотря на то, что я работал на iPhone с iOS 10.3 и iPad с iOS 11.0, а также на всех симуляторах iOS 10.3 и 11.0). Через мучительный процесс исключения (и создания нового проекта с нуля) я обнаружил, что ни мои Cocoapods не виноваты, ни мои настройки подписи кода, ни мое AppExtension, ни мои тесты, ни моя «сборка только для активной архитектуры» параметр или любой параметр сборки, связанный с термином «биткод».

В моей настройке у меня был проект C++ Xcode, вложенный в мой основной проект Swift/iOS Xcode. Поскольку он никогда не предназначался специально для использования в iOS, «Цель развертывания iOS» никогда не устанавливалась (она была оставлена ​​по умолчанию). При явной установке на 10.3 он работал без нареканий.

Настройки проекта вложенного приложения C++ (укажите для цели развертывания iOS самую низкую версию iOS, которую вы поддерживаете):

Настройки проекта вложенного приложения C++

Целевые настройки вложенного приложения C++ (для справки):

Целевые настройки вложенного приложения C++

person Jamie Birch    schedule 21.10.2017
comment
Круто, перепробовал все, наконец заработало. Большое спасибо. - person Jas_meet; 08.11.2017
comment
@Jas_meet Рад, что смог спасти кого-то еще от этой беды! Одна из самых сложных ошибок, которые мне когда-либо приходилось отслеживать (особенно учитывая медленное время сборки). - person Jamie Birch; 08.11.2017
comment
У меня была такая же проблема... проект работал на iPhone с iOS 10.2, но не с 10.3.3. Благодарю вас! - person stephenspann; 24.01.2018
comment
Большое спасибо, это спасло меня. Я даже не знал, что приложение, над которым я работаю, имеет вложенный проект - это приложение Cordova. - person elRobbo; 17.10.2018

Если вы используете pod, проверьте версию всех библиотек, некоторые библиотеки могут не поддерживаться в новой версии, вам необходимо обновить файлы pod для этой библиотеки.

person Rajeev Singh    schedule 03.04.2017

В моем случае я пытался выполнить сборку для устройства с версией iOS ниже целевой для развертывания.

person awph    schedule 07.09.2017

Такая проблема возникла, когда я связал новый проект статической библиотеки со своим рабочим пространством. Чтобы решить эту проблему, я попытался установить для параметров Build Active Architecture Only и Bitcode библиотеки значение NO, но безуспешно. Затем я узнал, что цель развертывания библиотеки была установлена ​​​​на 11.0, поскольку Xcode установил последнее значение для всех новых проектов. После исправления настройки на 5.0 проблема была решена.

person Konstantin Dorogan    schedule 23.10.2017

В моем случае проблема возникла из-за того, что я использовал стороннюю статическую библиотеку с разными файлами для каждой архитектуры.

Я исправил проблему, удалив двоичные файлы недопустимых архитектур. Вместо этого я добавил мультиархитектурный двоичный файл FAT для сторонней статической библиотеки.

Надежда помогает

person accfews    schedule 12.09.2017

В моем случае решением было удаление библиотеки С++.

person Oded Harth    schedule 13.04.2017
comment
Возможно, было бы достаточно установить цель развертывания iOS, а не полностью удалить библиотеку C++: - person Jamie Birch; 21.10.2017

Я обнаружил, что моя проблема связана с использованием «Модулей».

Просто отключил модули (пришлось обновить некоторые файлы заголовков), но это решило мою проблему.

Включить модули в настройках

person LowAmmo    schedule 26.05.2017
comment
Не знаю вашего случая, но отключать модули не очень хорошая идея - person accfews; 12.09.2017

В моем случае виджет, включенный в проект, вызывал ошибку битового кода.

Я изменил свой файл pod с этого:

target "App" do
    pod 'A'
    pod 'B'
end

target "App Widget" do
    pod 'A'
end

к этому:

target "App" do
    pod 'A'
    pod 'B'

    target "App Widget" do
        pod 'A'
    end
end
person Micah Benn    schedule 11.08.2017

Чтобы решить эту проблему, в большинстве ответов рекомендуется обходной путь, с помощью которого вы очищаете рабочее пространство/проект Xcode, закрываете Xcode, удаляете папку Derived Data (по умолчанию она хранится в корневом каталоге вашего проекта), а затем, наконец, снова открываете свой проект.

Однако описанные выше шаги могут не сработать для вас. Это намек на то, что структура вашего проекта ошибочна.

Когда промежуточное представление вашего проекта в битовом коде было выпущено с iOS 9.0, это было сделано при условии, что весь ваш проект, включая зависимости, либо полностью согласен использовать битовый код, либо нет. По моему опыту, очень важно проверить все ваши Pods и включенные Libraries/Frameworks и убедиться, что все они используют одни и те же настройки; либо Да, либо Нет. По умолчанию этот выбор равен Да.

Если одна зависимость не соответствует предполагаемому параметру битового кода, может возникнуть эта ошибка.

При проверке зависимостей и всеобъемлющего проекта важно помнить, что существует параметр Use Bitcode для как параметров проекта, так и параметра «Цель», поэтому обязательно проверьте обе точки зрения параметров сборки.

person Mapsy    schedule 24.10.2018

Я добавлял статическую библиотеку. Я создал толстый двоичный файл той же библиотеки, включая все архитектуры, и включил его в свой проект. Это решило мою проблему

person sonali    schedule 15.11.2017

В моем случае я использую Cordova Project. При его создании с помощью Xcode возникла та же проблема, которая была решена путем удаления и добавления платформы IOS.

cordova platform remove ios

cordova platform add ios
person RAJESH KUMAR ARUMUGAM    schedule 17.01.2018

Если вы используете стручки какао, выполните «обновление стручков».

person Kartik 123    schedule 03.04.2018

Targets -> Build Settings -> Build Active Architecture Only

Отладка -> ДА Выпуск -> НЕТ на ДА

Я сталкиваюсь с той же проблемой только при архивации приложения.

Кто может сказать мне причину? Вы можете научить всех разработчиков. Это потрясающе.

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

person jiexishede    schedule 21.11.2018

Это решение работает для меня. Сначала попробуйте удалить все модули с помощью команды терминала pod deintegrate, а затем переустановите модуль с помощью команды терминала pod install.

person Ashish    schedule 09.02.2019

Это также может произойти при сборке для симулятора, если включена структура, созданная только для ARM (и я предполагаю, что и наоборот).

person ion    schedule 13.02.2019