Невозможно импортировать 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
Не уверен, что необходимы "целевые" строки, но их полезно включить, чтобы у зависимостей, специфичных для цели, был свой дом.