it-swarm.com.de

Alamofire Xcode 8 Swift 3 führt zu 786 Kompilierungsfehlern

Ich verwende den Xcode 8.0 GM. Ich habe eine Standard-Einzelansicht-App erstellt, bei der mein Implementierungsziel auf 9.0 eingestellt war.

In meiner Pod-Datei ziehe ich den blutenden Edge Swift 3-Zweig an:

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

Ich laufe pod install und bekomme ... Installing Alamofire (4.0.0-beta.2) ... fantastisch, keine Probleme. Ich öffne MyProject.xcworkspace.

Das erscheint:

 convert Alamofire to latest syntax

Ich kann später nicht treffen, weil es mir sagt:

Xcode 8 kann das Ziel "Alamofire" nicht erstellen. Bestimmte Bearbeitungsfunktionen funktionieren erst dann richtig, wenn der Swift-Quellcode in diesem Ziel konvertiert wurde.

Das ist nicht gut, ich möchte es bauen. Also habe ich auf "Convert" geklickt. Es gibt mir Optionen:

 convert to Swift 3

Nun, das will ich, Swift 3. Sieht gut aus, ich drücke "weiter".

 select targets

Standardmäßig werden diese 3 ausgewählten Ziele verwendet. Ok gut, ich habe als nächstes getroffen.

 error 1  error 2

Was in Gottes heiligem Namen ...

Ich möchte Alamofires Swift3 Bleeding Edge-Zweig für ein Xcode 8, Swift 3-Projekt verwenden, das auf iOS 9.0 ausgerichtet ist. Wo habe ich einen Fehler gemacht und wie kann ich das funktionieren lassen? FWIW Ich bekomme eine Menge Fehler beim Versuch, den Swift 2.3-Zweig von Alamofire zu verwenden, also weiß ich, dass ich etwas falsch mache.

32
Aaron

Upgrade auf die neuesten Cocoapods (zum Zeitpunkt dieser Antwort: Version 1.1.0.beta.2) über den Befehl:

gem install cocoapods --pre schien das Problem für meinen Umstand zu lösen.

22
Aaron

Sie sollten den Zweig master jetzt verwenden, da der Zweig Swift3 dort zusammengeführt wurde. Darüber hinaus ist es normal, dass der Xcode Migrator so viele Fehler anzeigt. Was er tut, wenn er den Code kompiliert, der Meinung ist, dass es sich um eine ältere Swift-Version handelt, aber da er bereits in Swift 3.0 vorliegt, sind die Fehler zu erwarten. Schließlich bittet Sie Xcode, auf die moderne Swift-Syntax umzustellen, wahrscheinlich, weil Sie die neueste Version von Cocoapods nicht zur Installation von Alamofire verwendet haben.

NB: Ereignis, obwohl Cocoapods Ihnen empfiehlt, gem install cocoapods --pre zu verwenden, ich bevorzuge gem update cocoapods --pre. Ansonsten bleibt die ältere Version von Cocoapods erhalten und wird weiterhin verwendet, wenn pod update verwendet wird. Prüfen Sie, welche Version Sie mit pod --version verwenden.

7
Jonas Zaugg

Ich konnte es zum Laufen bringen: 

aktualisieren:

# 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

Es sollte ein Update auf 4.0.0-beta.2 sein

Es gibt einige Änderungen, wenn Sie eine Anfrage erhalten:

alt:

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

neu:

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

Hoffe das hilft.

7
weskam

Die Lösung besteht darin, Ihre Anfrage hieraus zu ändern 

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

zu diesem 

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

Aktualisieren Sie den Pod mit dem folgenden Befehl auf 1.1.0.rc.

Sudo gem install cocoapods

verwenden Sie das Blow-Snippet am Ende.

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

das hilft.

4
Rajesh Panda

Ich löste ein ähnliches Problem mit 

pod 'Alamofire', '~> 4.0'

in der pod-datei. Ich musste mich an ein höheres Mindestimplementierungsziel anpassen. 

2
Nakul Sudhakar

Ich löste ein ähnliches Problem mit:

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
urvashi bhagat

Ich hatte das gleiche Problem, aber ich deinstallierte Cocoapods, deinstallierte Alamofire, aktualisierte dann meine Kakaoschoten auf 1.1.0.beta.2 und verwendete dann den Swift3-basierten Zweig von Alamofire in meiner Pod-Datei

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

meine Project . xcworkspace - Datei geöffnet und alle Kompilierungsfehler für Alamofire waren verschwunden. 

0
Cory Billeaud

Ich bin nicht sicher, ob dies jemandem hilft, aber nur für den Fall ... Ich habe versucht, Alamofire zu einer Beispiel-Schnell-App auf Xcode 8.0 GM hinzuzufügen, wobei die CocoaPods-Einzelplatz-App verwendet wurde Fenster .. aber dann habe ich von der Kommandozeile aus versucht, das Pod zu aktualisieren und es hat funktioniert. Habe keine Ahnung, warum .. Ich gehe davon aus, dass die zugrundeliegenden Befehle für die Standalone-App gleich sind. Also nicht sicher, was den Unterschied ausmacht. In jedem Fall funktioniert meine Mine nach 30 Minuten verschwendeter Zeit. 

 CocoaPods standalone Mac app screenshot

Dies ist der Befehlszeilen-Screenshot. Dieselbe Pod-Datei 

 enter image description here

0
Zsolt

Sie müssen Version 4.0pod 'Alamofire', '~> 4.0' Verwenden. Beachten Sie, dass CocoaPods 1.1 benötigt wird.

0
Sam