Alamofire Xcode 8 Swift 3 entraîne 786 erreurs de compilation

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

Dans mon Podfile, je cible la twig Swift 3 qui saigne:

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 l' pod install et obtient … Installing Alamofire (4.0.0-beta.2) … fantastique, aucuns problèmes. J'ouvre MyProject.xcworkspace .

Cela apparaît:

convertir Alamofire à la dernière syntaxe

Je ne peux pas bash plus tard parce qu'il me dit:

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

Ce n'est pas bon, je veux le build. Donc j'ai frappé "Convert". Cela me donne des options:

convertir en Swift 3

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

sélectionner des cibles

Il est par défaut à ces 3 cibles sélectionnées. Très bien, je frappe ensuite.

erreur 1 erreur 2

Que dans le Saint Nom de Dieu …

Je veux utiliser la twig swift3 de swift3 pour un projet Xcode 8, Swift 3 ciblant iOS 9.0. Où est-ce que je me suis trompé et comment puis-je faire fonctionner cela? FWIW Je reçois un tas d'erreurs en essayant d'utiliser la twig Swift 2.3 d'Alamofire, donc je sais que c'est quelque chose que je fais mal.

Mise à niveau vers les derniers Cocoapods (à l'heure de cette réponse: version 1.1.0.beta.2 ) via la command:

gem install cocoapods --pre semblait résoudre le problème pour mon cas.

J'ai réussi à 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 request:

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.

Vous devriez utiliser la twig master maintenant puisque la twig swift3 a été fusionnée là. De plus, il est normal que Xcode Migrator affiche beaucoup d'erreurs. Qu'est-ce qu'il fait en compilant le code en pensant qu'il s'agit d'une version héritée de Swift, mais comme il est déjà dans Swift 3.0, les erreurs sont à prévoir. Enfin, Xcode vous request 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: bien que Cocoapods vous dise d'utiliser gem install cocoapods --pre , je préfère utiliser gem update cocoapods --pre . Sinon, l'ancienne version de Cocoapods rest et est toujours utilisée lors de l'utilisation de la pod update . Vérifiez quelle version vous utilisez avec pod --version .

Mettez à jour le pod vers 1.1.0.rc en utilisant la command 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.

La solution est de changer votre request de cette

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

pour ça

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

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

 pod 'Alamofire', '~> 4.0' 

dans le file pod. J'ai dû m'adapter à une cible de deployment minimale plus élevée.

J'ai résolu le même problème 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 

J'ai eu le même problème, mais j'ai désinstallé des cocoapodes, désinstallé alamofire, puis mis à jour mes podos de cacao à 1.1.0.beta.2, puis utilisé la twig swift3-rebased d'Alamofire dans mon file pod

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

ouvert mon file Project .xcworkspace et toutes les erreurs de compilation pour Alamofire avaient disparu.

Je ne sais pas si cela aide quelqu'un mais juste au cas où .. J'ai essayé d'append Alamofire à un exemple d'application rapide sur Xcode 8.0 GM en utilisant l'application autonome CocoaPods .. J'ai continué à get la window Convertir en swift 2.3 ou 3.0 .. mais j'ai essayé de la command line à la mise à jour de pod et cela a fonctionné. Je n'ai aucune idée pourquoi .. Je suppose que les commands sous-jacentes pour l'application autonome sont les mêmes .. donc pas sûr de ce qui a fait la différence. En tout cas, après 30 minutes de time perdu, la mine fonctionne.

Capture d'écran de l'application Mac de CocoaPods

Ceci est la capture d'écran de la command line .. même file pod

entrez la description de l'image ici

Vous devez utiliser la version 4.0 pod 'Alamofire', '~> 4.0' notez que CocoaPods 1.1 est nécessaire.