Найден неожиданный код заголовка Mach-O: 1918975009 в xCode 6
Что вызывает ошибку
Found an unexpected Mach-O header code: 1918975009 in xCode 6
Я заархивировал свой проект, чтобы отправить его как сборку ad hoc
, и он строит/ссылки/архивы просто отлично, но когда я нахожусь в организаторе xCode
и выберите Export -> Ad Hoc
,
Я получаю сообщение об ошибке
Found an unexpected Mach-O header code: 191897500.
Ответы
Ответ 1
У меня была такая же ошибка. В моем случае это было вызвано универсальной структурой, которую я случайно скопировал в ресурсы приложения (что необязательно, поскольку фреймворки объединяются непосредственно в основной исполняемый файл на iOS AFAIK).
Итак, выберите свою цель, перейдите на вкладку "Сборка фаз" и просмотрите список "Ресурсы копирования ресурсов", чтобы узнать, копируете ли вы библиотеку или фреймворк, содержащий настольные архитектуры (i386 или x86_64).
Скорее всего, копирование такого файла неверно, но если по какой-то причине вам придется, по-видимому, он может содержать только совместимые с iOS архитектуры.
Ответ 2
В моем случае эта проблема ( "нашел неожиданный код заголовка mach-o 0x72613c21" ) появилась после того, как я установил Crashlytics, Fabric.
Каким-то образом стручки превратились в встроенный двоичный файл. Поэтому мне пришлось удалить его, pod install еще раз, и проблема исчезла.
![Удалить контейнеры из встроенных двоичных файлов]()
Ответ 3
Была похожая ошибка 1918975009 с новой системой сборки Swift в Xcode 9.3 (в разделе "Параметры рабочего пространства...") на сторонней платформе, которая была добавлена вручную (без использования Cocoapods). Может быть, связано с вышеупомянутой темой, так что в случае, если это кому-нибудь поможет... Это появилось только после обновления до Xcode 9.3 после того, как он был официально выпущен вчера. Xcode 9.2 и более ранние версии в новой системе сборки не выдавали предупреждение.
:-1: <path>/Frameworks/<frameworkName>.framework/<frameworkName>: Failed to parse executable: Unknown header: 1918975009
Возвращение к старой системе сборки не на основе Swift устраняет проблему. Не оптимальное решение, но если вы видите подобное предупреждение, то позволим вам двигаться дальше.
Ответ 4
Я испытывал ту же ошибку и не смог ее проследить до библиотеки/фреймворка в ресурсах копий или неправильной версии библиотеки.
Как обходной путь, я обнаружил, что могу сделать сборку экспорта из командной строки и, похоже, работает:
xcodebuild -exportArchive -exportFormat ipa \
-archivePath /path/to/app.xcarchive/ \
-exportPath /path/to/app.ipa \
-exportProvisioningProfile "Name of provisioning profile"
Здесь "Имя профиля предоставления" - это имя профиля предоставления, как оно отображается в Xcode (а не путь к профилю).
Ответ 5
Перейдите к СТРОИТЕЛЬНЫМ ФАЗАМ → КОПИРОВАНИЮ BUNDLE RESOURCES, вы найдете там некоторые рамки. Удалите из этого раздела и добавьте его в LINK BINARY WITH LIBRARIES.
Это сработает.
Ответ 6
иногда вы должны смотреть Build Phases
- Embed Pods Frameworks
. и найдите файл оболочки. например.
Фазы сборки
и откройте Pods-midea-common-adddevice_Example-frameworks.sh
Посмотрите, является ли этот файл проблемой.
Ответ 7
Я просто столкнулся с этой проблемой, и я смог ее решить...
В моем случае я создал новую цель, дублируя существующую. Я изменил имя с "MyApp-dev copy" на "MyApp-test", однако я забыл одно: когда вы создаете новую цель, также создается новый .plist файл. Я забыл переименовать этот файл, а затем привязать его к моей вновь созданной цели.
Как только я это сделал, проблема исчезла. Я изначально читал о целевых объектах: http://www.raywenderlich.com/68613/create-paid-lite-version-iphone-app, и повторение этой страницы помогло мне решить проблему.
Ответ 8
решена проблема в моем случае
Фазы сборки → Скопировать ресурсы Bundle для фреймворка или другого двоичного файла, который не будет там
я удаляю двоичные файлы TwitterKit и DigitKit.
Изменить: Когда я удалю этот двоичный файл из "Ресурсов копирования Bundle", проект можно построить, заархивировать, перейти к проверке, а также отправить в App Store. Но когда я запускаю проект, он терпит неудачу. Итак, если я удалю из ресурсов копирования Bundle и добавлю в раздел "Связывание двоичных файлов с библиотекой" (мы выбираем "Добавить другое", а затем нажмите комбинацию cmd + shift + g, чтобы перейти туда, где ваш пакет или бинарный файл).
Ответ 9
Чтобы добавить в проект тень или авария, когда перетащите или добавьте фреймворки в папку проекта или в Xcode, сохраните флажок "копировать элементы при необходимости". ![введите описание изображения здесь]()
Ответ 10
Убедитесь, что вы не встраиваете статическую платформу в раздел "Встроенные двоичные файлы" на вкладке "Общие" целевого объекта.
AFAIK Вы можете проверить, является ли структура статической, если бинарный значок внутри .framework белый, если значок черный, то это динамическая структура.