2015-06-10 3 views
17

В настоящее время я работаю над приложением на основе Swift, которое использует сочетание Cocoapods Objective-C и Swift.
Моя Podfile выглядит примерно так:Google Войти в Cocoapod Установить в Swift?

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

platform :ios, '8.0' 
use_frameworks! 

pod 'SDWebImage', '~> 3.6' 
pod 'Alamofire', '~> 1.2' 
pod 'Google/SignIn' 

Мои стручки работали прекрасно, пока я не добавил Google для входа в аккаунт.
Когда я pod install, я получил следующее сообщение об ошибке:

[!] The 'Pods' target has transitive dependencies that include static 
binaries: (~/Pods/GoogleAppUtilities/Libraries/libOpenInChrome.a, 
~/Pods/GoogleAuthUtilities/Libraries/libGTMOAuth2_internal.a, 
~/Pods/GoogleAuthUtilities/Libraries/libGTMOAuth2_external.a, 
~/Pods/GoogleNetworkingUtilities/Libraries/libGTMSessionFetcher_full.a, 
~/Pods/GoogleNetworkingUtilities/Libraries/libGTMSessionFetcher_core.a, 
~/Pods/GoogleSymbolUtilities/Libraries/libGSDK_Overload.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_iPhone.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_core.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_UIFont+LineHeight.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_SystemVersion.a, 
~/GoogleUtilities/Libraries/libGTM_StringEncoding.a, 
~/GoogleUtilities/Libraries/libGTM_RoundedRectPath.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_Regex.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_NSStringXML.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_NSStringHTML.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_NSScannerJSON.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_NSDictionary+URLArguments.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_KVO.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_GTMURLBuilder.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_DebugUtils.a, 
~/Pods/GoogleUtilities/Libraries/libGTM_AddressBook.a, and 
~/Pods/GoogleUtilities/Libraries/libGTMStackTrace.a) 

Кроме того, как только я добавить Google зарегистрировались, все modulemaps и зонтичные заголовки для других моих стручков исчезают, разбивая все из них.

This issue от Cocoapods, похоже, ссылается на эту проблему как связанную с моим использованием! Use_frameworks, но только предлагает обходное решение (--use-libraries) на конец публикации pod, а не с точки зрения пользователя. Это что-то, что мне нужно дождаться, когда Google исправит свой podspec, или есть что-то, что я могу сделать с моей стороны, чтобы заставить модуль входа в систему работать?

В противном случае Google по-прежнему предоставляет возможность вручную установить этот SDK без Cocoapods?

+2

Google Вход без кокопод: http://stackoverflow.com/questions/30783709/google-signin-without-cocoapods – thelaws

+1

Спасибо! Это будет работать в то же время, но было бы неплохо получить его и запустить в Cocoapods. – willrichman

+0

@thelaws Любая альтернатива Google Cloud Message? –

ответ

2

Я получил это работает, добавив в мой мостиковом заголовок:

#import <GooglePlus/GooglePlus.h> 
#import <GoogleOpenSource/GoogleOpenSource.h> 

затем скор имел доступ к Google в знак :)

+0

Обязательно настройте проект на использование заголовка моста в разделе «Настройки сборки»> «Компилятор Swift» - «Генерация кода»> «Консоль верхнего уровня Objective-C», –

0

Я столкнулся с такой же ошибкой при запуске 'pod lib lint' в другом проекте. Я исправил его, включив директивы командной строки -use-библиотек и -allow-warnings. Возможно, это поможет вам в решении вашей проблемы.

pod lib lint --use-libraries --allow-warnings 
+0

Из того, что я могу сказать, это то, что Google должен делать на своем конце, когда они создают стручок.Есть ли способ, который я не знаю, чтобы добавить это на моем конце в подфайле или во время 'pod install'? – willrichman

0

Я получал такую ​​же ошибку недавно. Я просто удалил

use_frameworks! 

из подкачки и теперь отлично работает.

+0

К сожалению, я не могу этого сделать, не нарушая другие объекты Objective-C в моем проекте Swift. Похоже, это исправление находится в суде Google. – willrichman

1

попытка ниже стручок

pod 'GoogleSignIn', '~> 2.2' 
+0

'[!] Невозможно найти спецификацию' GoogleSignIn (~> 2.2) '' –

1

Я довольно поздно, отвечая на этот вопрос, но оказалось, что проблема pod install была проблемой с самими Cocoapod. Я обновил Cocoapods до последней версии (теперь 0.39.0), и мне удалось установить все Google-контейнеры. Затем я смог добавить строки к моему заголовку мостов, поскольку niebloomj предложил в this answer и получить доступ ко всем библиотекам в Swift.