XCode 3.2.3, работающий на iOS3 - проводной фреймворк

Я посмотрел на Stack Overflow и не нашел решения странной проблемы.

Я начал разрабатывать проект на XCode 3.1, затем решил перейти на XCode 3.2.4 и нацелился на iPhone с iOS3. Затем я изучил темы, связанные с этим, и изменил базовый SDK на iOS 4.1, а целевую ОС - на 3.0. Все работало нормально, пока я не внес изменения в свой проект.

Действительно, я добавил в свой проект CoreMedia.framework.

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

<Notice>: dyld: Library not loaded: /System/Library/Frameworks/CoreMedia.framework/CoreMedia
Referenced from: /var/mobile/Applications/72F009B5-82A8-49DC-A5CD-708EE1A4553C/myapp.app/myapp
Reason: image not found

(У меня была такая же проблема с другими фреймворками, например, CoreVideo)

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

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/System/Library/Frameworks/MediaPlayer.framework

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

Кто-нибудь знает, как решить эту проблему? Любая помощь будет принята с благодарностью. :)


person mat5454    schedule 07.10.2010    source источник


Ответы (1)


Вы должны слабо связать свои библиотеки.

В xcode перейдите к target-> щелкните правой кнопкой мыши, чтобы получить информацию. на вкладке «Общие» в нижнем разделе вы увидите свои библиотеки, измените тип CoreMedia на слабый.

Конечно, библиотека не будет доступна на os3, поэтому вам нужно будет добавить проверки в свой код, чтобы вы не вызывали библиотеку на os3.

person Guy Ephraim    schedule 07.10.2010
comment
Спасибо, парень, за твой ответ. Но проблема в том, что мне нужен этот фреймворк на OS3. Как я могу сделать? - person mat5454; 07.10.2010
comment
этот фреймворк существует только на iOS4, для iOS3 был частный API для выполнения подобных задач, однако Apple прекратила его поддержку после выхода iOS4. - person Guy Ephraim; 07.10.2010
comment
Ты прав! Я глуп, что не подумал взглянуть на это. Спасибо большое за вашу помощь. - person mat5454; 07.10.2010