MapKit не работает на устройстве, но работает в симуляторе

Я добавил фреймворки (MapKit и CoreLocation), выбрав папку Frameworks, щелкнув правой кнопкой мыши и выбрав «Добавить»> «Существующие фреймворки».

Приложение строится в симуляторе (3.1.3), но не работает на устройстве (3.1.3) с ошибкой:

ld: предупреждение: в / Development / Sites / iPhone Projects / SwitchViews / MapKit.framework / MapKit, файл не имеет требуемой архитектуры. Неопределенные символы:
«_OBJC_CLASS _ $ _ MKPinAnnotationView», ссылка на которую имеется: __objc_classrefs__DATA @ 0 в NextView.o ld : символ (ы) не найден collect2: ld вернул 1 статус выхода


person daihovey    schedule 18.08.2010    source источник


Ответы (2)


Похоже, мне просто нужно было перезапустить Xcode, чтобы все правильно связать.

person daihovey    schedule 22.08.2010

Похоже, вы случайно установили флажок «копировать в проект» при добавлении фреймворка.

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

person Claus Broch    schedule 18.08.2010
comment
Где этот вариант Клауса? Я этого не вижу. Я знаю эту функцию, когда вы добавляете, скажем, изображение, но это другой способ. - person daihovey; 18.08.2010
comment
Хммм ... Вы, наверное, правы - это относится только к добавляемым не-фреймворкам. Однако ld: warning ... указывает, что он пытается установить связь с локальной структурой, а не с одной из SDK. - person Claus Broch; 18.08.2010
comment
путь - System / Library / Frameworks / MapKit.framework. Полный путь - /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/System/Library/Frameworks/MapKit.framework тип пути - относительный к Текущий SDK что-то не так? - person daihovey; 18.08.2010
comment
Это похоже на правильный путь. Но это не тот путь, который используется (и сообщается) компоновщиком, как вы изначально писали в вопросе. - person Claus Broch; 18.08.2010