Обновление до iPhone SDK 3.0 вызывает проблемы UIKit - PullRequest
6 голосов
/ 19 июня 2009

У меня есть существующий проект, над которым я работаю, и недавно я решил обновить свой iPhone SDK и обновил его до последней версии 3.0 SDK.

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

При запуске моей программы в симуляторе, я теперь получаю

dyld: библиотека не загружена: /System/Library/Frameworks/UIKit.framework/UIKit Ссылка от: /Developer/iGameLib/iGameLib/build/Debug-iphonesimulator/iGameLib.app/iGameLib Причина: изображение не найдено

Теперь я обнаружил, что UIKit переместился на

/ Разработчик / Платформы / iPhoneSimulator.platform / Разработчик / SDKs / iPhoneSimulator3.0sdk / System / Library / Frameworks / UIKit

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

Я также пытался очистить приложения и настройки симулятора, но все равно не повезло.

Ссылка .app очищается, когда я запускаю «чистый» пункт меню, я подтвердил это, так что что-то в настройках моего проекта все еще указывает на использование старого расположения UIKit.

Куда мне смотреть?

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

Ответы [ 7 ]

10 голосов
/ 12 марта 2010

Я получаю ту же ошибку

dyld: библиотека не загружена: /System/Library/Frameworks/UIKit.framework/UIKit

Решением для моего дела было просто выйти из Xcode и повторить попытку.

4 голосов
/ 20 июня 2009

ОК, ТАК У меня есть ОТВЕТ !!!

Проще говоря, Xcode неправильно меняет все переменные в реальном файле .xcodeproj. Итак, вот шаги, которые я предпринял.

Выйдите из Xcode, вы должны выполнить эту работу в терминале. Поднимите терминал и идите туда, где находится ваш проект. Найдите свой .xcodeproj и зайдите в него, как если бы это был каталог. Он выглядит как настоящий файл в Finder, но это один из тех каталогов пакетов.

Теперь я не смог заставить textedit позволить мне редактировать его, но вы можете перейти в nano, как я и сделал

sudo nano project.pbxproj, который находится в моем файле .xcodeproj / папка / package / что угодно.

В этом файле вам нужно найти, где установлен SDKROOT. Скорее всего, есть несколько мест, на которые он ссылается, но вы ищете SDKROOT = iphoneos2.2.1 или что-то подобное. Измените ВСЕ ЭТИ (их несколько) на SDKROOT = iphoneos3.0

Теперь вы на полпути. выполните Ctrl x и сохраните файл. Далее вы выполните ls и выясните, что такое файл .pbxuser. Мой - myname.pbxuser. выполните ту же команду

sudo nano myname.pbxuser

В этом файле содержится ОГРОМНОЕ количество ссылок на каталог iphone sdk 2.1. Сделайте поиск / замену iPhoneSimulatorOLDVERSION.sdk, в моем случае это был iPhoneSimulator2.1.sdk и измените 2,1 на 3,0. Будьте очень осторожны с этим, я не хотел бы знать, что происходит, когда вы испортили этот файл.

Сохраните его и откройте xcode. ОЧИСТИТЕ проект, соберите и запустите. Presto!

2 голосов
/ 19 июня 2009
  1. Проверьте настройки цели
    Убедитесь, что вы на самом деле ссылаетесь на все эти фреймворки в Target (установите флажок «связать двоичный файл с библиотеками»)

  2. Убедитесь, что вы выбрали SDK 3.0 в качестве базового SDK

  3. Создайте пустой проект и добавьте свои фреймворки, как и раньше; если у вас все еще есть проблемы, возможно, пакетный SDK установлен

Кстати, вам не нужно повторно добавлять каркасы SDK, так как пути относительно текущего SDK

Просто пытаюсь помочь ... не уверен, что смогу отлаживать отсюда:)

1 голос
/ 11 января 2010

Я просто удалил UIKit.framework из папки 'Frameworks', щелкнул правой кнопкой мыши и снова добавил его. Чистая сборка, и никаких проблем ..

1 голос
/ 19 июня 2009

У меня были некоторые похожие проблемы с XCode, которые, кажется, не имеют видимой причины. Дело в том, что Xcode все еще имеет ошибки здесь и там, и иногда вы БУДЕТЕ наткнуться на стену.

Мой опыт: В некоторой степени похож на вашу ситуацию, в каком-то конкретном случае проект Xcode, над которым я работал, просто прекратил строить по какой-то таинственной причине, и никакая чистка, поиск в Google или SO-ing не предоставили мне любые ответы. Поэтому я просто создал проект FRESH, NEW и добавил исходный код из моего поврежденного проекта в новый проект. Имейте в виду, что в новом проекте использовались ЖЕ исходники, библиотеки, ресурсы, настройки - и все же он построен без проблем. Перевод занял около 20-25 минут, но, учитывая, что я потратил несколько ЧАСОВ, пытаясь устранить ошибку, которая не выявила себя в поврежденном проекте, время того стоило.

Итак, я бы предложил сделать то, что я сделал: возможно, попробуйте создать новый проект и перенести ваш старый источник и ресурсы поверх.

Удачи

0 голосов
/ 28 января 2010

Та же проблема при запуске моего приложения без отладки. По моему опыту, созданный бинарный файл не является виновником.

Я создал приложение из мастера xcode, который запускает OK в симуляторе (назовем его testApp, мое приложение называется myApp), я попытался выяснить, в чем разница с моим приложением.

otool -L myApp дает правильные (относительные пути) к платформам, так же, как testApp

ps -E Переменные окружения DYLD_ROOT_PATH, DYLD_FALLBACK_FRAMEWORK_PATH, DYLD_FRAMEWORK_PATH, DYLD_LIBRARY_PATH, необходимые ld для определения местоположения платформы все в порядке для myApp по сравнению со значениями этих переменных при запуске testApp

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

Решение, которое сработало (по крайней мере, для меня), безусловно, имеет некоторые большие побочные эффекты, но вот оно: выйти из xcode просмотреть содержимое пакета myApp.xcodeproj разблокировать .model1v3 и .pbxuser для модификации (блокировка в информационной панели (cmd-I на файле)) удалить эти два файла запустите xcode и попробуйте запустить приложение оттуда

0 голосов
/ 11 декабря 2009

У меня была та же проблема с использованием Xcode 3.2.1, но она была решена проще. Я понял, что недавно отключил переменные окружения моей цели, особенно те, которые связаны с отладкой памяти (NSDebugEnabled, NSZombieEnabled, NSAutoreleaseFreedObjectCheckEnabled, MallocStackLogging, MallocStackLoggingNoCompact). Приложение запускалось один раз в симуляторе после удаления переменных среды, но никогда после этого.

Выход из Xcode, Симулятора, перезапуск Xcode и полная очистка цели (включая ее зависимости от курса) вернули меня в хорошее состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...