Alamofire Xcode 8 Swift 3 donne 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 déploiement fixée à 9.0.

dans mon fichier Podfile Je cible la branche Swift 3 du bord de saignement:

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'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 pourra pas construisez la cible "Alamofire", et certaines fonctionnalités d'édition ne fonctionneront pas correctement tant que le code source Swift dans cette cible n'a pas été converti.

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

convert to Swift 3

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

select targets

il est par défaut à ces 3 cibles sélectionnées. OK bien, j'ai frapper à côté.

error 1 error 2

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

je veux utiliser Alamofire 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 la branche Swift 2.3 D'Alamofire donc je sais que c'est quelque chose que je fais mal.

31
demandé sur Aaron 2016-09-08 03:40:15

10 réponses

mise à jour vers la dernière Cocoapods (au moment de cette réponse: la version 1.1.0.beta.2) via la commande:

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

22
répondu Aaron 2016-10-25 20:46:08

j'ai été en mesure de 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

pod mise à jour Alamofire

il devrait être mis à jour à 4.0.0-bêta.2

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

âge:

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.
}

Espérons que cette aide.

7
répondu weskam 2016-09-08 06:24:25

Vous devez utiliser le master branche depuis le swift3 branche a été fusionnée. De plus, il est normal que le migrateur Xcode affiche autant d'erreurs. Ce qu'il fait s compiler le code en pensant qu'il s'agit d'une version ancienne de Swift, mais comme il est déjà dans Swift 3.0, les erreurs sont à prévoir. Enfin, Xcode vous demande de passer à la syntaxe Swift moderne probablement parce que vous n'avez pas utilisé la dernière version de Cocoapods pour installer Alamofire.

NB: événement 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 quand on utilise pod update. Vérifier quelle version vous utilisez pod --version.

7
répondu Jonas Zaugg 2016-09-22 21:34:37

mettre à jour le pod à 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

cette aide.

4
répondu Rajesh Panda 2016-09-21 18:09:14

la solution est de changer votre demande de ceci

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

de cette

pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'master'
4
répondu Nour 2016-12-25 22:37:10

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 plus élevée.

2
répondu Nakul Sudhakar 2016-10-20 09:02:04

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
2
répondu urvashi bhagat 2017-04-08 10:10:32

j'ai eu le MÊME PROBLÈME, MAIS j'ai désinstallé cocoapods, désinstallé alamofire, puis mis à jour mes cosses de cacao à 1.1.0.bêta.2, puis utilisé la branche swift3-rebased D'Alamofire dans mon fichier pod

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

ouvert ma Projet.le fichier xcworkspace et toutes les erreurs de compilation pour Alamofire ont disparu.

0
répondu Cory Billeaud 2016-09-09 03:18:03

Je ne suis pas sûr que cela aide quelqu'un mais juste au cas où.. J'ai essayé d'ajouter Alamofire à un échantillon application rapide sur Xcode 8.0 GM en utilisant L'application autonome CocoaPods.. J'ai continué à obtenir la conversion à swift 2.3 ou 3.0 fenêtre.. mais j'ai essayé de passer de la ligne de commande à pod update et ça a marché. N'ai aucune idée pourquoi.. Je suppose que les commandes sous-jacentes pour l'application autonome sont les mêmes.. donc, pas sûr que ce qui fait la différence. En tout cas après 30 minutes de temps perdu le mien fonctionne.

CocoaPods standalone Mac app screenshot

ceci est la capture d'écran en ligne de commande.. même fichier pod

enter image description here

0
répondu Zsolt 2016-09-14 08:27:05

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

0
répondu Sam 2017-01-08 20:52:26