Не удается найти заголовки для GoogleAnalytics-iOS-SDK с Cocoapods 0.37, Swift, фреймворками
Используя cocoa pods 0.37.0 в проекте Swift, используйте use_frameworks! установленный в podfile, я не могу получить доступ к файлам заголовков для модуля GoogleAnalytics-iOS-SDK.
Как мне получить доступ к заголовкам заголовков Google Analytics в моем приложении?
Я пробовал;
import GoogleAnalytics_iOS_SDK
В файле Swift используется стиль cocoapods 0.36. Но нет никакой структуры, созданной больше, поэтому ничего хорошего.
#import <GoogleAnalytics_iOS_SDK/GAI.h>
В заголовке моста, но не работает (нет карты модуля?)
Я читал, что поведение для контейнеров, которые включают только заголовки в свои "sourse_files", изменено в cocoapods 0.37 (см. это фиксацию). По-видимому, это связано с проблемами, которые use_frameworks, вызванные этими пакетами, в 0,36 (см. Этот вопрос SO).
При этом изменении поведения Cocoapod статическая библиотека интегрирована правильно (это было не с 0,36), символы скомпилированы в приложение и доступны во время выполнения. Но у меня нет доступа к заголовкам.
Ответы
Ответ 1
Это ошибка в Cocoapods 0.37.0. Он зарегистрирован в своем трекере как № 3499.
Обход
- Добавьте
$(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK
в User Header Search Paths
(установленный в Рекурсивный) в целевом приложении Build Settings
.
- Ссылка на заголовок Google Analytics непосредственно в заголовочном заголовке с
#import "GAI.h"
Ответ 2
Другим трюком является добавление длинного относительного пути (ов) к заголовку моста.
Это позволяет избежать изменения параметров проекта, которые могут быть переопределены при следующем запуске `pod install ':
#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h"
Он также работает при запуске ваших модульных тестов, и другое решение, которое я пробовал, не было.
Ответ 3
Я не знаю, является ли это правильным ответом или нет, но способ, которым мы его работали, - это вручную импортировать libGoogleAnalyticsServices.a
, а не через cocoapods.
Найдите libGoogleAnalyticsServices.a
и перетащите его в проект, а затем добавьте его в Linked Frameworks and Libraries
(если его там нет), и вам хорошо идти. Не забудьте удалить его из Podfile
.
Редактирование:
Не забудьте добавить файлы заголовков в свой заголовок-заголовок
Ответ 4
У меня была аналогичная проблема с CocoaPods 0.39.0.
$(унаследовано) в настройке сборки 'OTHER_LDFLAGS' разрешил его.
fooobar.com/info/294433/...