2016-12-12 3 views
1

У меня возникли проблемы с добавлением Утилитов Google Maps IOS (для кластеризации маркеров) в мой быстрый проект xcode с контейнерами. Когда я бег pod install он терпит неудачу со следующей ошибкой:Утилиты Google Maps Утилиты IOS Pod

The 'Pods-App' target has transitive dependencies that include static binaries: (/Users/warrick/Projects/orix/App/Pods/GoogleMaps/Subspecs/Base/Frameworks/GoogleMapsBase.framework, /Users/warrick/Projects/orix/App/Pods/GoogleMaps/Subspecs/Maps/Frameworks/GoogleMapsCore.framework, and /Users/warrick/Projects/orix/App/Pods/GoogleMaps/Subspecs/Maps/Frameworks/GoogleMaps.framework)

Google карта работает нормально, но как только я добавляю утилиты она разбивает.

Что означает это сообщение об ошибке, и как я могу его решить?

Вот мой Podfile:

# Uncomment the next line to define a global platform for your project 
# platform :ios, '9.0' 
workspace '../app' 

target 'App' do 
    # Comment the next line if you're not using Swift and don't want to use dynamic frameworks 
    use_frameworks! 

    pod 'GoogleMaps' 
    pod 'Google-Maps-iOS-Utils' 

    # Firebase - used for notifications 
    pod 'Firebase/Core' 
    pod 'Firebase/Messaging' 

    target 'AppTests' do 
    inherit! :search_paths 
    # Pods for testing 
    end 

end 

ответ

9

Это вопрос, который не имеет из раствора коробки из-за Cocoapods ограничений. Ограничение возникает, когда приложение построено в Swift, вы включаете use_frameworks! в свой podfile и используете транзитивную зависимость, которая предоставляется в виде статической библиотеки (например, Google Maps).

Become Google не будет предоставлять динамическую структуру (пока она не поддерживает iOS 7), текущее обходное решение заключается в том, чтобы вручную интегрировать Google Maps IOS Utilities в ваш проект.

Этапы интеграции описаны здесь: https://github.com/googlemaps/google-maps-ios-utils/blob/master/Swift.md

  • Remove Google-Maps-iOS-Utils from the Podfile (if it is there). In your project create a group named 'Google-Maps-iOS-Utils' .
  • Download the repo into your local computer.
  • Add the folders inside the src directory into your project by right clicking on the 'Google-Maps-iOS-Utils' group and selecting "Add Files to ..." (Make sure you select the target as your app target to avoid undefined symbols issue).
  • Make sure "Use Header Map" is ON for your app target in XCode Settings (it is ON by default in XCode).
  • Add a bridging header file with #import "GMUMarkerClustering.h" (note the relative path).
  • Open the umbrella header GMUMarkerClustering.h (under the Google-Maps-iOS-Utils/Cluster group) and change all the import paths to relative. For example, change #import <Google-Maps-iOS-Utils/GMUCluster.h> to #import "GMUCluster.h" . (The 'Use Header Map' setting will resolve the relative path correctly).
  • Build your project.
  • That's it.
Смежные вопросы