XCode 3.2.3 работает на iOS3 - проводной фреймворк - PullRequest
0 голосов
/ 07 октября 2010

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

Я начал разрабатывать проект на XCode 3.1, затем решил обновить XCode 3.2.4 и ориентироваться на iPhone3. Затем я следил за темами, связанными с этим, и я изменил Базовый 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)

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

/ Разработчик / Платформы / iPhoneOS.platform / Разработчик / SDKs / iPhoneOS4.1.sdk / System / Library / Frameworks / MediaPlayer.framework

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

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

1 Ответ

1 голос
/ 07 октября 2010

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

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

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

...