Невозможно импортировать GoogleMaps в фреймворк в Xcode 7

У меня есть новый проект, в котором я использую XCode 7 beta 3 и Swift 2.0, используя GoogleMaps, импортированные через cocoapods. Это приложение WatchKit 2.0, поэтому у меня есть основная цель для iPhone (Destination), цель для Apple Watch (Destination WatchKitApp и Destination WatchKitExtension) и внутренняя структура (DestinationKit), которая делает тяжелую работу для взаимодействия с GoogleMaps среди другие вещи.

Я могу успешно импортировать GoogleMaps в основную цель (пункты назначения) и успешно отображать карту.

import UIKit
import DestinationsKit
import GoogleMaps

class DestinationDetailsViewController : UIViewController
{
    // our selected destination
    var destination: Destination!

    // our map view
    var mapView : GMSMapView!

    // ... code to display a map centering on the destination ...
}

Приведенный выше код импортирует мой внутренний фреймворк DestinationKit и успешно использует GoogleMaps.

Однако сейчас я пишу код, который вычисляет маршрут между двумя точками, и добавляю этот код во внутреннюю структуру (DestinationKit). Всякий раз, когда я пытаюсь импортировать GoogleMaps, я получаю "Нет такого модуля" GoogleMaps "".

import Foundation
import CoreLocation
import GoogleMaps  // Error 'No such module 'GoogleMaps''

public class UserTrip {   
}

Я сделал следующее без успеха:

  • "На этапах сборки" -> "Связать двоичные файлы с библиотеками", я добавил Pods.Framework (что я и сделал с успехом в основной цели)
  • Установите для параметра "Разрешить немодульные включения в модулях платформы" значение Да
  • Установите "Упаковка" -> "Определить модуль" на "Да" в настройках сборки.

Мой файл Pods выглядит следующим образом:

source 'https://github.com/CocoaPods/Specs.git'

use_frameworks!

pod 'GoogleMaps'

Я заверил, что Pods.Framework включен в обе цели. Поэтому я не могу понять, почему основная цель может найти GoogleMaps, а моя внутренняя структура - нет.

Заранее спасибо!

1 ответ

Конечно, как только я отправлю вопрос, я выясню причину.

Несмотря на то, что я вручную добавил Pods.framework в фазу сборки, мне нужно было обновить мой файл Pods, чтобы включить в качестве целевого фреймворк, а затем снова запустить "pod install". Итак, обновленный файл Pods:

source 'https://github.com/CocoaPods/Specs.git'

# We need to link with all targets. If target is added, this must be updated

use_frameworks!

pod 'GoogleMaps'

link_with 'Destinations', 'DestinationsKit'

target 'Destinations' do
end

target 'DestinationsKit' do
end

Не уверен, что необходимы "целевые" строки, но их полезно включить, чтобы у зависимостей, специфичных для цели, был свой дом.

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