32 votes

Alamofire Xcode 8 Swift 3 génère 786 erreurs de compilation

J'utilise Xcode 8.0 GM. J'ai créé un défaut unique de l'application avec ma cible de déploiement mis à 9.0.

Dans mon Podfile je suis ciblant le bord de saignement Swift 3 branche:

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 exécutez pod install et obtenir ... Installing Alamofire (4.0.0-beta.2) ... fantastique, pas de problèmes. J'ai ouvert MyProject.xcworkspace.

Ce pop-up:

convert Alamofire to latest syntax

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

Xcode 8 ne sera pas en mesure de construire la cible "Alamofire", et certaines fonctions d'édition ne fonctionnera pas correctement jusqu'à ce que le Swift code source de cette cible a été converti.

Ce n'est pas bon, je tiens à le construire. J'ai donc frappé "Convertir". Il m'offre des options:

convert to Swift 3

C'est bien ce que je veux, Swift 3. Semble bon, je l'ai frappé "suivant".

select targets

La valeur par défaut pour ces 3 cibles sélectionnées. Ok fine, je frappe à côté.

error 1 error 2

Ce qui, dans le Saint nom de Dieu...

Je veux utiliser Alamofire de l' swift3 à la pointe de la branche sur un Xcode 8, Swift 3 projet de ciblage iOS 9.0. Où ai-je mal se passer et comment puis-je obtenir ce travail? FWIW, je reçois un tas d'erreurs en essayant d'utiliser Alamofire Swift 2.3 branche donc je sais que c'est quelque chose que je fais mal.

22voto

Aaron Points 3324

Mise à niveau 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.

7voto

weskam Points 79

J'ai pu le faire fonctionner:

mise à 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 du 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.

7voto

Jonas Zaugg Points 2365

Vous devez utiliser l' master branche depuis l' swift3 branche a été fusionnée là. En outre, il est normal que le Xcode Migrator pour montrer que de nombreuses erreurs. Ce qu'il fait s de la compilation du code pensant que c'est un héritage Swift version mais puisque c'est déjà dans Swift 3.0, les erreurs sont à prévoir. Enfin, Xcode est de vous demander de vous convertir à la moderne Swift syntaxe probablement parce que vous n'avez pas utilisé la dernière version de Cocoapods pour installer Alamofire.

NB: l'évènement Cocoapods vous dit d'utiliser gem install cocoapods --pre,, je préfère utiliser l' gem update cocoapods --pre. Autre chose, l'ancienne version de Cocoapods séjours et est encore utilisé lors de l'utilisation d' pod update. Vérifier quelle version vous utilisez avec pod --version.

4voto

Rajesh Panda Points 79

Mettez à jour le pod vers 1.1.0.rc à l'aide de 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.

4voto

Nour Points 1025

La solution est de changer votre demande 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'
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X