Question Alamofire Xcode 8 Swift 3 donne 786 erreurs de compilation


J'utilise le Xcode 8.0 GM. J'ai créé une application à affichage unique par défaut avec ma cible de déploiement définie sur 9.0.

Dans mon Podfile, je cible la branche de 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

je cours pod install et obtenir ... Installing Alamofire (4.0.0-beta.2) ... fantastique, pas de problèmes. j'ouvre MyProject.xcworkspace.

Cela apparaît:

convert Alamofire to latest syntax

Je ne peux pas frapper plus tard car il me dit:

Xcode 8 ne pourra pas générer la cible "Alamofire", et certaines fonctionnalités d'édition ne fonctionneront pas correctement tant que le code source de Swift dans cette cible n'a pas été converti.

Ce n'est pas bien, je veux le construire. Donc je tape "Convertir". Cela me donne des options:

convert to Swift 3

Eh bien c'est ce que je veux, Swift 3. On dirait bien, je tape "suivant".

select targets

Il utilise par défaut ces 3 cibles sélectionnées. Ok, je frappe ensuite.

error 1 error 2

Quoi dans le nom sacré de Dieu ...

Je veux utiliser les Alamofire swift3 branche perdante sur un projet Xcode 8, Swift 3 ciblant iOS 9.0. Où est-ce que je me suis trompé et comment puis-je le faire fonctionner? FWIW J'ai un tas d’erreurs en essayant d’utiliser la branche 2.3 d’Alamofire, alors je sais que c’est quelque chose que je fais mal.


31
2017-09-08 00:40


origine


Réponses:


Mise à jour vers les derniers Cocoapods (au moment de cette réponse: version 1.1.0.beta.2) via la commande:

gem install cocoapods --pre  semblait résoudre le problème pour ma situation.


22
2017-09-08 07:05



J'ai pu le faire fonctionner:

mettre à jour:

# 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

mise à jour de pod Alamofire

Il devrait mettre à jour à 4.0.0-beta.2

Il y a quelques changements lors de l'obtention d'une demande:

vieux:

Alamofire.request(URL_NAME_HERE, withMethod: .get).responseJSON { response in
     //Code here.
}

Nouveau:

Alamofire.request(URL_NAME_HERE, method: .get).responseJSON { response in
     //Code here.
}

J'espère que cela t'aides.


7
2017-09-08 05:08



Vous devriez utiliser le master branche maintenant depuis le swift3 branche a été fusionné là-bas. De plus, il est normal que Xcode Migrator affiche autant d'erreurs. Qu'est-ce que cela fait? Compiler le code en pensant qu'il s'agit d'une version héritée de Swift, mais comme c'est déjà dans Swift 3.0, il faut s'attendre à des erreurs. Enfin, Xcode vous demande de vous convertir à la syntaxe Swift moderne, probablement parce que vous n'avez pas utilisé la dernière version de Cocoapods pour installer Alamofire.

NB: événement que Cocoapods vous dit d'utiliser gem install cocoapods --pre, Je préfère utiliser gem update cocoapods --pre. Sinon, l'ancienne version de Cocoapods reste et est toujours utilisée lors de l'utilisation pod update. Vérifiez quelle version vous utilisez avec pod --version.


7
2017-09-10 05:52



Mettez à jour le pod vers 1.1.0.rc en utilisant la commande ci-dessous.

sudo gem install cocoapods

utilisez l'extrait de coup à la fin.

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

CA aide.


4
2017-09-21 18:09



La solution est de changer votre demande à partir de cela

pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'swift3'

pour ça

pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'master'

4
2017-12-25 22:37



J'ai résolu un problème similaire en utilisant

pod 'Alamofire', '~> 4.0'

dans le fichier pod. J'ai dû m'adapter à une cible de déploiement minimum plus élevée.


2
2017-10-20 09:02



J'ai résolu un problème similaire en utilisant:

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

2
2018-04-08 09:34