Старая конфигурация Cocoapods
Я использую Xcode 7 Beta 4. Первоначально я использовал Cocoapods версии 0.38.2, и когда я запустил pod install --verbose
в терминале, он сказал, что загружает зависимости для Bolts, FBSDKCoreKit, FBSDKLoginKit, FBSDKShareKit, FBSDKMessengerShareKit и Pods для iOS 8.1 сильный>. С этой настройкой мое приложение успешно скомпилировано. Ниже приведен файл Podfile и Objective-C, который я использовал для импорта SDK Facebook (чтобы Swift распознал его методы, на которые ссылаются, и классы Objective-C). Обратите внимание, что определенные версии, показанные в моем подфайле, также являются версиями, которые устанавливаются, даже если я не указал их явно во время написания этой статьи.
Подфайл
xcodeproj '/Users/<my_username>/MyApp/MyApp.xcodeproj'
pod "FBSDKCoreKit", "~> 4.7.0";
pod "FBSDKLoginKit", "~> 4.7.0";
pod "FBSDKShareKit", "~> 4.7.0";
pod "FBSDKMessengerShareKit", "~> 1.3.1";
MyAppObjCBridge.h
#ifndef MyAppObjCBridging_h
#define MyAppObjCBridging_h
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKMessengerShareKit/FBSDKMessengerShareKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
#endif
Проблемы, возникающие при обновлении до Cocoapods v0.39.0 (с v0.38.2)
В консоли появилось сообщение «Доступна версия CocoaPods 0.39.0. Для обновления используйте: gem install CocoaPods. Пока мы не достигнем версии 1.0, функции CocoaPods могут и будут меняться. Мы настоятельно рекомендуем вам всегда использовать последнюю версию.», поэтому я установил эту последнюю версию Cocoapods 0.39.0, выполнив sudo gem install cocoapods
в терминале.
Но когда я скомпилировал свое приложение, оно дало мне следующие ошибки:
/Users//MyApp/MyApp/MyAppObjCBridging.h:14:9: Файл 'FBSDKCoreKit/FBSDKCoreKit.h' не найден
В Xcode я «Продукт > Очистить» (CMD+SHIFT+K), но это не имело никакого значения. Поэтому я запустил sudo gem uninstall cocoapods
в Терминале (в котором 0.38.2 и 0.39.0 были указаны как установленные версии) и выбрал из списка версию 0.39.0, чтобы удалить последнюю версию и вернуться к 0.38.2. Затем я побежал pod install --verbose
. Когда я попытался скомпилировать свое приложение, оно успешно скомпилировалось и снова запустилось в симуляторе.
Вопрос 1
Почему он выдает ошибку, что не может найти «FBSDKCoreKit/FBSDKCoreKit.h», когда я использую Cocoapods версии 0.39.0 вместо более старой версии 0.38.2?
вопрос 2
Если при использовании Cocoapods версии 0.38.2 (версия, которая компилируется с моим приложением) я решил добавить platform :ios, '9.0'
в первую строку моего подфайла (над его существующим содержимым) и запустить pod install --verbose
в Терминале, сообщения Терминала говорят мне, что он устанавливает каждый pod target для iOS 9.0 (вместо iOS 8.1) (например, - Installing target
FBSDKCoreKitiOS 9.0
). Когда я затем запускаю свое приложение, оно успешно компилируется и открывается в симуляторе и отображает некоторые новые предупреждения, связанные с iOS9, большинство из которых я понимаю. Однако я не понимаю, почему это появляется. Почему появляется это предупреждение?:
ld: предупреждение: не найден каталог для параметра '-L/Users/Ls/code/swift/FreeWifiSearch/FreeWifiSearch/build/Debug-iphoneos'
Вопрос 3
При использовании Cocoapods версии 0.38.2 (версия, которая компилируется с моим приложением), если я решил добавить use_frameworks!
в первую строку моего подфайла и platform :ios, '9.0'
во вторую строку моего подфайла (над его существующим содержимым), а затем запустить pod install --verbose
в Терминале сообщения Терминала сообщают мне, что он устанавливает каждую цель модуля для iOS 9.0 (вместо iOS 8.1).
Когда я затем запускаю свое приложение, появляются следующие ошибки:
- Использование неразрешенного идентификатора «FBSDKLoginButton»
- Использование неразрешенного идентификатора «FBSDKLoginManager»
- Использование неразрешенного идентификатора «FBSDKLoginBehaviour»
Почему добавление use_frameworks!
в начало моего подфайла не позволяет мне использовать идентификаторы Facebook SDK? (отмечая, что когда у меня нет use_frameworks!
в верхней части моего подфайла, мое приложение успешно компилируется и запускается в симуляторе Xcode, и я могу успешно получить токен доступа Facebook SDK и войти в Facebook)