Google Maps SDK для iOS пытается запустить на iOS 4.3

Я успешно интегрировал sdk с моим приложением. Мое приложение предназначено для запуска с Google Maps sdk for iOS6и с Apple UIMapKit за iOS 4.3 и 5.х. Так как я добавил google maps Framework, iOS 4.3 больше не будет работать. Я изменил GLKit.framework а также GoogleMaps.framework на "опционально", и я получаю dyld: Symbol not found: _NSFileProtectionCompleteUntilFirstUserAuthentication еще до того, как приложение запустится. нужна ваша помощь:-)

2 ответа

Мое приложение работает нормально на iOS 4.3, с GLKit.framework а также GoogleMaps.framework установите опционально, и если я удалю все вызовы Google API.

Может ссылка на NSFileProtectionCompleteUntilFirstUserAuthentication быть вызвано каким-то другим вашим кодом или другими фреймворками?

ОБНОВИТЬ:

На самом деле вышеупомянутое неправильно. Я забыл включить -ObjC флаг компоновщика в шаге 7 инструкции. Без -ObjC приложение может нормально работать на iOS 4.3. Без -ObjC флаг на iOS 6 вызов [GMSServices provideAPIKey] успешно, но призыв к [GMSMapView mapWithFrame:camera:] молча терпит неудачу (возвращает ноль), так что это не вариант.

С -ObjC флаг на месте, на iOS 4.3 я получаю ту же ошибку о _NSFileProtectionCompleteUntilFirstUserAuthentication,

Я пытался изменить -ObjC в -force_load $(PROJECT_DIR)/GoogleMaps.framework/GoogleMaps, только для принудительной загрузки API Карт Google, а не других библиотек, но он все еще не работает на iOS 4.3.

Я предполагаю, что -ObjC или же -force_load переопределяют настройку, чтобы сделать GoogleMaps.framework необязательный.

Также на iOS 5.0 я получаю похожую ошибку о _NSURLIsExcludedFromBackupKey, Я предполагаю, что это будет работать на iOS 5.1, хотя. @tomeron11, с какой версией 5.х вы тестировали?

ОБНОВЛЕНИЕ 2:

Это похоже на ужасный взлом, но добавление следующего к одному из файлов.m в проекте позволяет ему работать на iOS 5.0:

NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";

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

Для iOS 4.3 я попытался сделать эквивалент, добавив:

NSString* const NSFileProtectionCompleteUntilFirstUserAuthentication = 
    @"NSFileProtectionCompleteUntilFirstUserAuthentication";

Это останавливает ошибку о _NSFileProtectionCompleteUntilFirstUserAuthentication, но тогда я получаю следующую ошибку:

dyld: Symbol not found: _OBJC_CLASS_$_NSMutableOrderedSet

Я не уверен, есть ли способ обмануть компоновщик, чтобы он увидел фиктивную версию NSMutableOrderedSet на iOS 4.3.

ОБНОВЛЕНИЕ 3:

В документации SDK говорится, что минимальная поддерживаемая платформа - iOS 5.1.

Google закрыл отчет об ошибке как WontFix, так что, похоже, не получится заставить его работать на 5.0 или ниже.

ОБНОВЛЕНИЕ 4:

Google снова открыл ошибку как улучшение.

ОБНОВЛЕНИЕ 5:

Последняя версия 1.1.0 SDK больше не падает при запуске на iOS 5.0.

Тем не менее, Google не будет исправлять сбой на iOS 4.x.

Поскольку SDK официально поддерживает только iOS 5.1+, хотя он больше не падает при запуске на iOS 5.0, если вы попытаетесь создать GMSMapView затем он вылетает с сообщением об ошибке:

Google Maps SDK для iOS поддерживает только iOS 5.1+

Если вы используете хак, который использовал, чтобы он не вылетал при запуске на 5.0, то есть это:

NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";

Затем SDK будет работать на iOS 5.0. Кажется, что это работает, но, вероятно, это не очень хорошая идея, поскольку она официально не поддерживается Google.

I Foundation.framework и UIKit.framework(UIActivityViewController также потерпел крах в 1.5 GMSdk.....) установлены в режиме "option" (слабый a не виден в выпадающем списке). NSMutableOrdererSet и NSURLIsExcludedFromBackupKey, расположенные в этом компоненте платформы. Я не проверяю, как работает это решение на ios менее 5.0, но с 5.0 до 6.0 не происходит сбой, или, пожалуйста, не используйте Google Map SDK с 5 до 6 вместо этого MKMapView!

PS Извините мой плохой английский!

Другие вопросы по тегам