Я только что обновился до xcode 4.0 и больше не могу развертываться на iPhone, я получаю ошибку Apple Mach-O Linker, хотя она все еще работает для симулятора.
Ld /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel normal armv7
cd /Users/yveswheeler/iParcel
setenv IPHONEOS_DEPLOYMENT_TARGET 3.2
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -L/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -F/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -filelist /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel.LinkFileList -dead_strip -all_load -ObjC -lxml2 -miphoneos-version-min=3.2 -framework UIKit -framework CoreGraphics -framework QuartzCore /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a -framework AddressBook -lz.1.2.3 -framework Foundation -framework CFNetwork -framework MobileCoreServices -framework SystemConfiguration -framework MessageUI -framework AudioToolbox -o /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a: No such file or directory
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 failed with exit code 1
objective-c
iphone
xcode
xcode4
CodeVomit
источник
источник
Ответы:
Вот постоянное решение. В общем случае перезапись проекта может стать причиной этой проблемы. Попробуйте этот метод.
-UPDATE - Ошибка лягушки - Ошибка компоновщика Mach-O
В некоторых случаях в окне журнала ошибок отображается ошибка .xctest, чтобы ее исправить.
-> Выберите свой проект
-> Рядом с этим (непосредственно перед вкладкой General) выберите свой файл projectTest из выпадающего списка
-> Есть один вариант (например, ProjNameTests)
-> В Host Application выберите свой проект из выпадающего списка, только если он показывает пользовательский
СДЕЛАНО!
Старый метод удален
источник
У меня была та же проблема, и проблема заключалась в том, что я случайно импортировал файл .m вместо .h в файле реализации - надеюсь, это поможет
источник
Просто столкнулся с той же проблемой.
Решение (для меня) = проверить свои рамки.
В моем случае я добавил классы, связанные с CoreData без "CoreData.framework". Добавление его решило жалобу MACH_O.
источник
libPods.a
файла для меня (отсюда дубликаты символов). Спасибо, Данте!открыть .xcworkspace файл не .xcodeproj. Я повторяю открытый файл .xcworkspace. Все ваши ошибки исчезнут.
источник
Re: проблема, как указано в заголовке:
На всякий случай, если кто-то еще пропустил очевидное ...
Я столкнулся с этой ошибкой после установки новой версии Xcode4 и перетаскивания существующих файлов в новый проект. Мне не удалось обнаружить, что флажок «Добавить к целям» не был отмечен в диалоговом окне «Выбор параметров для добавления файлов:». Исправление моего пропуска в Targets> Build Phases> Compile Sources решило проблему.
источник
Menu> Product> Clean - вот что заставило его работать. Я не уверен во всех остальных. Я добавил фото, чтобы показать.
источник
Странная ошибка. Для меня, я просто очистил и перезапустил Xcode, и проблема ушла.
источник
Исправлено: Настройки сборки> Включить битовый код> Нет
источник
Ни один из этих ответов не помог мне. Затем я попытался переустановить Cocoapods:
Задача решена!
источник
Проблема заключалась в том, что в XCode 4 зависимости не принимают настройки архитектуры основного проекта, как это было ранее в XCode 3. Мне пришлось пройти через все мои зависимости, устанавливая их для правильной архитектуры.
источник
У меня было то же самое и удалось решить.
В настройках xcode вкладка местоположения меняет значение под местоположением сборки на "
Place build products in locations specified by targets"
.источник
Я боролся с этим некоторое время, и в моем случае это был параметр «Сборка» в разделе «Пути поиска» под названием FRAMEWORK_SEARCH_PATHS. Помогло то, что я выбрал кнопку «Уровни», которая, казалось, сравнивала мой проект, цель и настройки «Разрешено». Я увидел, что мои настройки цели каким-то образом переопределили значение по умолчанию «$ (унаследованное)», и переопределенное значение было тем, что XCode «разрешил» для настройки. Когда я удалил переопределение, которое в данном случае указывало 3.2 sdk, ошибки компоновщика исчезли - как и некоторые недавно появившиеся предупреждения о любых классах, где я вызывал методы после 4.0.
Об этих предупреждениях - я никогда не видел их до того, как добавил структуру MessageUI для недавних изменений. Я подозреваю, но не знаю наверняка, что когда я добавил эту платформу, XCode попытался сделать что-то умное, добавив это переопределение к моей цели. Я не делал это явно в любой момент. Предупреждения были, например, о методе URLByAppendingPathComponent NSURL, который не появлялся до SDK 4.0. До добавления платформы MessageUI я никогда не получал это предупреждение. И так как я удалил переопределение, я больше не получаю их.
источник
У меня была эта проблема, и импорт
QuartzCore
исправил ее.источник
Изменение «Только для активных архитектур» на «Да» в CordovaLib.xcodeproj -> Настройки сборки помогло мне. ранее приложение работало на симуляторе, но не на устройстве.
источник
Возможно, вам придется обновить настройки сборки.
Проверьте целевую версию iOS и архитектуру процессора, поскольку у вас может не быть старых SDK с XCode 4.
Вы можете увидеть «Missing SDK» в настройках сборки. Измените это на то, что применимо.
источник
У меня была такая же проблема: просто случайно удалил файл .m, пока он был в проекте. Проблема исчезла, когда я восстановил файл .m.
источник
Убедитесь, что у вас не указан конкретный путь поиска фреймворка. если вы переходите к информации о цели и просто удаляете записи пути поиска фреймворка, следует использовать значения по умолчанию для указанной версии развертывания.
источник
Я просто пытаюсь создать
category class
файл и получил эту странную проблему .. и, наконец, ....Неправильный способ создать класс категории, который вызывает проблему:
New File
->Cocoa Touch
->Objective-C class
, то я изменил название файлов в категории класса , как имя .. (т.е.OriginalClass_CategoryName.h/m
вOriginalClass+CategoryName.h/m
, а также модифицировать содержимое в файле).Правильный путь здесь:
New File
->Cocoa Touch
->Objective-C category
, и он будет автоматически генерировать файлы (OriginalClass+CategoryName.h/m
).О, как я глупа!
источник
Если вы используете CoreData и используете XCode для генерации подклассов NSManagedObject для ваших сущностей, убедитесь, что вы генерируете только один для каждой сущности.
Моя проблема заключалась в том, что он генерировал несколько подклассов NSManagedObject для одной и той же сущности (и помещал их в разные папки).
Я просто удалил их все и заново создал подклассы NSManagedObject.
источник
Чтобы добавить в список странных вещей, которые исправили эту проблему ...
У меня были некоторые константные переменные CGFloat в глобальном заголовочном файле, например,
В тот момент, когда я удалил их, все было хорошо :)
источник
NSString static *key = @"someKey"
кconst NSString *key = @"someKey"
У меня была точно такая же проблема только потому, что у меня были две одинаковые константы в разных классах. Вы также можете иметь эту проблему, если вы импортируете .m файл, а не .h файл
источник
Не уверен, что это связано, но, видя, что вы используете три20 библиотек, вы можете проверить этот пост на их сайте: http://three20.info/article/2011-03-10-Xcode4-Support
источник
У меня была такая же проблема, и я ее решил. В моем случае проблема была связана с настройкой «архитектуры». В моем файле проекта на вкладке «Настройки сборки» для архитектуры было установлено значение armv6. Я поменял его на Standard (armv7), делаю чистку и сборку. Тогда это сработало!
источник
В моем случае проблема заключалась в том, что разные архитектуры указывались под разными целями. Я строил свою цель приложения с armv6, armv7 и cocos2d с помощью Standard (amrv7). Зайдите в настройки сборки и убедитесь, что ваша архитектура соответствует всем целям.
источник
Я решил эту проблему слишком странно!
Перейдите в Target > Фазы сборки > Связать двоичные файлы с библиотеками. :
Удалите все свои рамки и добавьте их снова!
Надеюсь, это работает для вас!
источник
Для языка Swift ...
Я получаю эту ошибку "ld: file too small (length = 0) ...."
В моем случае я просто очищаю проект, а затем перестраиваю его ..
Шаги: -
1) Перейти к проекту -> Чисто
2) Перейти к проекту -> Построить
Надеюсь это поможет..
источник
Это помогло мне:
Перейти к
1) Продукты> чистые
2) Windows> Проекты
3) Выберите ваш проект и нажмите « Удалить » производные данные
4) Продукты> Сборка
источник
Одна из возможностей: включить «Удаление мертвого кода» в настройках сборки Xcode 4.
Другая возможность: возможно, вы переключились на использование LLVM для некоторой среды, которая ранее использовала GCC. Возвращение к GCC (или LLVM GCC) может избавить от этих предупреждений.
источник
Я ошибочно определил новую константу с тем же именем, что и существующая константа в другом файле, и это вызвало эту ошибку для меня с помощью xCode 4.3.1. xCode не жаловался, но компилятору это не нравится.
источник
Мне удалось исправить эту ошибку, отредактировав «Пути поиска в библиотеке»
Во-первых, он возник, потому что я переместил пару папок, и в результате у моих настроек сборки были два разных пути поиска, потому что они автоматически добавляются в ваши настройки сборки, когда вы связываете библиотеку / инфраструктуру, но это не так. всегда удаляется
Поэтому, если вы переместите связанную библиотеку / каркас в другой каталог и заново создадите ссылку, вам придется вручную редактировать путь поиска.
Возможно, вы сможете избежать этого, удалив библиотеку / фреймворк перед перемещением, но я этого не проверял.
источник