Ошибка Apple Mach-O Linker (Id) - PullRequest
       73

Ошибка Apple Mach-O Linker (Id)

12 голосов
/ 21 июля 2011

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

Это произошло после того, как я устал от реализации решения достижимости, которое нашел за здесь Я импортировал два файла достижимости (.m / .h), затем добавил этот код в файл .m и установил t в. h файлов достижимости

-(BOOL)reachable {
    Reachability*r =[Reachability reachabilityWithHostName:@"enbr.co.cc"];
    NetworkStatus internetStatus =[r currentReachabilityStatus];
    if(internetStatus ==NotReachable){
        return NO;
    }
    return YES;}

После этого я вызывал функцию из обоих моих методов просмотра viwcontrollers viewwillappear примерно так ...

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];


    //-- Check Reachability START ---->
    Reachability *reach = [[Reachability alloc] init];

    if ([reach reachable]) {
            NSLog(@"Reachable");
    }
    else {
        NSLog(@"Not Reachable");
    }
     //-- Check Reachability END ---->
}

Никаких ошибок не возникало, пока я не попытался собрать и запустить в симуляторе. Это ошибка, которую я получил: (

Ld /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator/wizcode.app/wizcode нормальный i386 cd "/ Пользователи / imac / Документы / Iphone Приложения / wizsanCode / wizsanCode.5 / Wizcode» setenv MACOSX_DEPLOYMENT_TARGET 10.6 Сетенв ПУТЬ «/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"

/ Разработчик / Платформы / iPhoneSimulator.platform / Разработчик / USR / бен / LLVM-GCC-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L / Пользователи / IMAC / Library / Developer / Xcode / DerivedData / Wizcode-ccyrqptvfsabmbahgxartbvxwurq / Build / Products / Debug-iphonesimulator -F / Users / IMAC / Library / Developer / Xcode / DerivedData / Wizcode-ccyrqptvfsabmbahgxartbvxwurq / Build / Products / Debug-iphonesimulator -filelist /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/wizcode.LinkFileList -mmacosx-version-min = 10,6 -Xlinker -objc_abi_version -Xlinker 2 -lz -Каркасное оборудование CoreGraphics -Каркасное оборудование MobileCoreServices -Каркасное оборудование Конфигурация системы - фреймворк CFNetwork - фреймворк UIKit - фреймворк Основание -о /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator/wizcode.app/wizcode

ld: дубликат символа _OBJC_IVAR _ $ _ Reachability.reachabilityRef in /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o а также /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o для архитектуры i386 collect2: ld вернул 1 команду завершения состояния /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 не удалось с кодом выхода 1 ld: дублированный символ _OBJC_IVAR _ $ _ Reachability.reachabilityRef in /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o а также /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o для архитектуры i386

Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 не удалось с кодом выхода 1

Ответы [ 8 ]

8 голосов
/ 21 июля 2011

Итак, проблема была решена.

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

Короче говоря, я заменил файлы, и все работает нормально, и я также узнал, что ASIHTTPTequest заботится о доступности для меня :), как это круто.

2 голосов
/ 21 июля 2011

Проверьте, правильно ли связан SystemConfiguration. В любом случае, убери свой код:

+ (BOOL)reachable {
    Reachability *r = [Reachability reachabilityWithHostName:@"enbr.co.cc"];
    NetworkStatus internetStatus = [r currentReachabilityStatus];
    return internetStatus != NotReachable;
}

А затем просто позвоните [Reachability reachable], где вам нужно. Это также устраняет утечку памяти.

1 голос
/ 21 февраля 2012

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

0 голосов
/ 10 октября 2017

Убедитесь, что вы используете YourApp.xcworkspace вместо файла .xcodeproj.Я столкнулся с той же проблемой, когда запустил файл .xcodeproj.Запуск .xcworkspace решил проблему, и ошибка исчезла.

0 голосов
/ 22 августа 2017

У меня был этот код в одном из моих UIViewController, и удаление его решило эту ошибку. Что за глупое и непонятное сообщение об ошибке

NS_ENUM(NSInteger, Mode) {
    Assessments = 0,
    Onboarding
};
0 голосов
/ 18 апреля 2015

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

0 голосов
/ 21 июня 2012

Удалите его и добавьте снова.Работает для меня.: D

0 голосов
/ 22 июля 2011

После изменения моей базовой модели данных я удалил все (автоматически сгенерированные) подклассы NSManagedObjectModel и создал их снова. После того, как все они были созданы, я перетащил их в папку группы в XCode ... и получил вращающийся пляжный мяч дольше обычного.

В следующий раз, когда я попытался запустить, произошел сбой с ошибкой «Mach-O-Linker» (Id). Прочитав другие ответы, я подумал, что это может быть связано с тем, что классы NSMObj находятся не там, где ожидается. Я удалил их, вышел, открыл, сгенерировал их и поместил в их обычную групповую папку ... и Виола! нет ошибки Mach-O.

Я вижу, что проблема решена, но я выкладываю это, чтобы проиндексировать под соответствующим вопросом. В моем случае удаление и восстановление (через меню редактора) подклассов управляемых объектов устранило проблему.

...