web-dev-qa-db-ja.com

Alamofire Xcode 8 Swift 3は786のコンパイルエラーになります

Xcode 8.0 GMを使用しています。展開ターゲットを9.0に設定して、デフォルトのシングルビューアプリを作成しました。

Podfileでは、出血しているEdge 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
_

_pod install_を実行してget ... Installing Alamofire (4.0.0-beta.2) ...素晴らしい、問題なし。 _MyProject.xcworkspace_を開きます。

これはポップアップします:

convert Alamofire to latest syntax

それは私に言うので、私は後でヒットすることはできません:

Xcode 8はターゲット「Alamofire」をビルドできず、特定の編集機能は、このターゲットのSwiftソースコードが変換されるまで適切に機能しません。

それは良くない、私はそれを構築したい。そこで、「変換」を押します。それは私にオプションを提供します:

convert to Swift 3

まあそれは私が望むものです、Swift 3。

select targets

デフォルトでは、これら3つの選択されたターゲットになります。 Ok罰金、次にヒット。

error 1error 2

神の神聖な名前は...

Xcode 8でAlamofireの_Swift3_出血Edgeブランチを使用したいのですが、iOS 9.0をターゲットとするSwift 3プロジェクトです。 AlamofireのSwift 2.3ブランチを使用しようとすると、エラーが発生します。

32
Aaron

最新のCocoapodsへのアップグレード(この回答の時点:バージョン1.1.0.beta.2)コマンド経由:

gem install cocoapods --preは私の状況の問題を解決しているようです。

22
Aaron

Swift3ブランチがそこにマージされたため、masterブランチを使用する必要があります。さらに、Xcode Migratorが多くのエラーを表示するのは正常です。それがレガシーSwift=バージョンだと思ってコードをコンパイルしていますが、すでにSwift 3.0であるため、エラーが予想されます。最後に、Xcodeはおそらく、最新バージョンのCocoapodsを使用してAlamofireをインストールしたことがないため、モダンSwift構文に変換するように求めています。

注意:Cocoapodsはgem install cocoapods --preを使用するように指示していますが、gem update cocoapods --preを使用することをお勧めします。そうでない場合、pod updateを使用する場合、Cocoapodsの古いバージョンはそのまま使用されます。 pod --versionで使用しているバージョンを確認してください。

7
Jonas Zaugg

私はそれを機能させることができました:

更新:

# 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

ポッド更新Alamofire

4.0.0-beta.2に更新する必要があります

リクエストを取得するとき、いくつかの変更があります。

古い:

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

新着:

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

お役に立てれば。

7
weskam

解決策は、これからリクエストを変更することです

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

これに

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

以下のコマンドを使用してポッドを1.1.0.rcに更新します。

Sudo gem install cocoapods

最後にブロースニペットを使用します。

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

これが役立ちます。

4
Rajesh Panda

を使用して同様の問題を解決しました

pod 'Alamofire', '~> 4.0'

ポッドファイル内。より高い最小展開ターゲットに調整する必要がありました。

2
Nakul Sudhakar

私は次を使用して同様の問題を解決しました:

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

私は同じ問題を抱えていましたが、ココアポッドをアンインストールし、alamofireをアンインストールしてから、ココアポッドを1.1.0.beta.2に更新し、ポッドファイルでAlamofireのSwift3-rebasedブランチを使用しました

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

Project。xcworkspaceファイルを開き、Alamofireのコンパイルエラーがすべてなくなりました。

0
Cory Billeaud

これが誰かに役立つかどうかはわかりませんが、念のため.. CocoaPodsスタンドアロンアプリを使用して、Xcode 8.0 GMのサンプルクイックアプリにAlamofireを追加しようとしました。Swift 2.3または3.0ウィンドウ。理由はわかりません。スタンドアロンアプリケーションの基本的なコマンドは同じだと思います。いずれにせよ、30分の無駄な時間の後に鉱山は機能します。

CocoaPods standalone Mac app screenshot

これはコマンドラインのスクリーンショットです。同じポッドファイル

enter image description here

0
Zsolt

バージョン4.0pod 'Alamofire', '~> 4.0'を使用する必要があります。CocoaPods1.1が必要であることに注意してください。

0
Sam