Ответ 1
Обновление до последних Cocoapods (во время этого ответа: версия 1.1.0.beta.2
) с помощью команды:
gem install cocoapods --pre
казалось, решила проблему для моих обстоятельств.
Я использую Xcode 8.0 GM. Я создал однозадачное приложение по умолчанию с целевым назначением для развертывания, установленным в 9.0.
В моем подпикселе я нацеливаюсь на ветвь Swift 3 с кровоточащим фронтом:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
target 'MyProject' do
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'swift3'
end
Я запускаю pod install
и получаю... Installing Alamofire (4.0.0-beta.2)
... фантастический, никаких проблем. Я открываю MyProject.xcworkspace
.
Появится сообщение:
Я не могу попасть позже, потому что он говорит мне:
Xcode 8 не сможет создать целевой "Alamofire", и некоторые функции редактирования не будут работать должным образом, пока исходный код Swift в этой цели не будет преобразован.
Это нехорошо, я хочу его построить. Поэтому я нажал "Преобразовать". Это дает мне варианты:
Хорошо, что я хочу, Swift 3. Выглядит хорошо, я нажимаю "Далее".
По умолчанию для этих 3 выбранных целей. Хорошо, я попал в следующий раз.
Что в Боге Святое имя...
Я хочу использовать ветку красных лучей Alamofire swift3
в проекте Xcode 8, Swift 3, ориентированном на iOS 9.0. Где я ошибся и как я могу заставить это работать? FWIW Я получаю кучу ошибок, пытающихся использовать ветку Alamofire Swift 2.3, поэтому я знаю, что я делаю неправильно.
Обновление до последних Cocoapods (во время этого ответа: версия 1.1.0.beta.2
) с помощью команды:
gem install cocoapods --pre
казалось, решила проблему для моих обстоятельств.
Мне удалось заставить его работать:
обновление:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'PROJECT NAME HERE' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'Alamofire',
:git => 'https://github.com/Alamofire/Alamofire.git',
:branch => 'swift3'
end
pod update Alamofire
Он должен обновиться до 4.0.0-beta.2
При получении запроса есть несколько изменений:
старый:
Alamofire.request(URL_NAME_HERE, withMethod: .get).responseJSON { response in
//Code here.
}
новый
Alamofire.request(URL_NAME_HERE, method: .get).responseJSON { response in
//Code here.
}
Надеюсь, что это поможет.
Теперь вы должны использовать ветвь master
, так как там была объединена ветвь swift3
. Кроме того, это нормально для Xcode Migrator, чтобы показать, что многие ошибки. Что он делает, скомпилировав код, считая его старой версией Swift, но так как он уже в Swift 3.0, следует ожидать ошибок. Наконец, Xcode просит вас преобразовать в современный синтаксис Swift, вероятно, потому, что вы не использовали последнюю версию Cocoapods для установки Alamofire.
NB: событие, хотя Cocoapods говорит вам использовать gem install cocoapods --pre
, я предпочитаю использовать gem update cocoapods --pre
. Кроме того, более старая версия Cocoapods остается и используется при использовании pod update
. Проверьте, какую версию вы используете с помощью pod --version
.
Обновите pod до 1.1.0.rc, используя команду ниже.
sudo gem install cocoapods
используйте фрагмент дуги в конце.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
это помогает.
Решение состоит в том, чтобы изменить ваш запрос из этого
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'swift3'
к этому
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'master'
Я решил проблему с помощью
pod 'Alamofire', '~> 4.0'
в файле подкачки. Мне пришлось приспособиться к более высокой минимальной цели развертывания.
Я решил аналогичную проблему, используя:
platform :ios, '9.0'
use_frameworks!
target 'PROJECT NAME HERE' do
pod 'Alamofire'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
У меня была такая же проблема, но я удалил cocoapods, удалил alamofire, а затем обновил мои cocoa pods до 1.1.0.beta.2, а затем использовал ветвь Swift3 из Alamofire в моем файле pod
pod 'Alamofire',
:git => 'https://github.com/Alamofire/Alamofire.git',
:branch => 'swift3-rebased'
открыл файл Project.xcworkspace, и все ошибки компиляции для Alamofire исчезли.
Не уверен, что это поможет кому угодно, но на всякий случай. Я попытался добавить Alamofire к образцу быстрого приложения на Xcode 8.0 GM, используя автономное приложение CocoaPods. Я продолжал получать Convert в swift 2.3 или 3.0 окно.. но потом я попытался из командной строки обновить pod, и это сработало. Не знаю, почему.. Я предполагаю, что основные команды для автономного приложения одинаковы. Поэтому не уверен, что изменило ситуацию. В любом случае после 30 минут расточительного времени работает шахта.
Это скриншот командной строки.. тот же файл pod
Вам нужно использовать версию 4.0 pod 'Alamofire', '~> 4.0'
обратите внимание на необходимость использования CocoaPods 1.1.