2009-12-16 3 views
1

Я использую Xcode 3.2.1 в проекте, где Base SDK является iPhone устройств 3,0 и iPhone OS Deployment Target является iPhone OS 2.0, другими словами, обратную совместимость приложений.Framework не найден MapKit

Проблема MapKit Framework. Он добавлен как Слабая связанная библиотека, но приложение просто не ссылается на цель «Устройство - 2.2.1». У меня закончились идеи ... Что еще я могу сделать, но пометить библиотеку как «слабый»? Раньше он работал, но не больше.

Вот часть командной строки, которая выглядит очень хорошо для меня: записка

-framework Foundation -framework UIKit -framework CoreGraphics 
-weak_framework CoreLocation -weak_framework MapKit 

Ошибка:

ld: framework not found MapKit 
collect2: ld returned 1 exit status 
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.0 failed with exit code 1 

ответ

1

Чтобы запустить приложение на 2.2.1, вам не нужно выбирать 2.2.1 в этом меню просто оставьте значение «Активный SDK» равным 3.0 или выше.

+0

Это отказ компоновщика. Невозможно запустить что-нибудь, что делает ссылку первым :) – JOM

+0

wait - у вас есть отдельная цель для 2.2.1? Вы не хотите компилировать двоичный файл, специфичный для ОС ... Связано ли это, если вы установите его на Device-3.0? Если это так, это то, что вы должны делать, и оно должно продолжаться на 2.2.1, потому что вы слабо связаны. –

+0

Да, только одна цель. Хотите запустить такое же приложение как есть в устройствах 2.x и 3.x. Ссылки и работает отлично для Device-3.0 Simulator. Мой iPhone все еще в коробке, используя iPod Touch для тестирования. Не удается найти второе место, чтобы перезаписать слабую ссылку по умолчанию для MapKit, но она должна быть где-то там ... – JOM

1

Попробуйте образец проекта от Apple, который делает аналогичную вещь с каркасом MessageUI. Вам может понадобиться установить Base SDK на 2.2.1 вместо 2.0.

+0

Чтение MailComposer, сделано, что Слабая ссылка. Не могу найти ничего, что могло бы переписать этот параметр :( – JOM

1

Просто чтобы прояснить проблемы и решения:

Проблема: Я хотел создать назад совместимое приложение, который будет работать на обоих iPhone OS 2.x и 3.x устройств. Он будет использовать специальные функции 3.x, когда они доступны, например. MapKit.

Решение: установить "Base SDK в iPhone устройств 3,0" и "iPhone OS Deployment Target, как iPhone OS 2.0". Подключите устройство iPhone OS 2.x (мой iPod Touch, где я отказываюсь обновлять до последней версии программного обеспечения для iPod) и выберите в верхнем левом углу цель как «Устройство - 3.0» - даже если ваше подключенное устройство НЕ Совместимость 3.0 вообще !!!

Довольно запутанный, сначала выглядит совершенно нелогичным, но так оно и работает!

Смежные вопросы