2016-07-27 7 views
5

私はswift 2.3と書かれた光量のコードを使ったプロジェクトを持っています。また、swift 2.3で書かれたappの拡張子も2ココアポド:SwiftyJSONMMWormholeです。 Xcode 8.3ベータ版をダウンロードした後、移行ツールが実行され、SwiftyJSONに含まれる1つのメインスウィフトファイルにほぼ100のコンパイラエラーが残っています。ココアポッドを使用するswift 2.3プロジェクトでXcode8を使用する

基本的には、これらの詳細を考慮してXcode8で作業する方法があるかどうかを知りたいと思います。私は自分自身のコードをswift3に更新するのはうれしいですが、私はcocoapodsを制御しません(MMWormHoleはObjective-Cにありますので、Xcodeはそれをコンパイラエラーを起こさないSwiftのバージョンに変換すると仮定しています)。すばやく2.3をグローバルに使用するようにXcodeに指示できますか?

答えて

0

ワークスペースを起動したときの経験から、SDKはSwift 3にコードを変換するか、「後で」するかを尋ねる必要があります。あとで選ぶだけで、あなたのコードを迅速に移行することはありません3。私は同じことをやったことを警告しなければなりません。あなたが最新かつ最高のXcode 8を使いたいからといって、後ろ向きに作業することはほとんど不可能でした。最終的には、あなたがアプリストアにプッシュする準備ができているときやiTunesConnectがバージョン10より低いファイルを受け入れないときなどの問題にぶつかるでしょう。また、別の開発者があなたのコードを継承すると、 Xcodeの以前のバージョンを使用しています。

+0

好都合に最近の時間.. –

2

多くのオープンソースのSwiftプロジェクトには、Swift 3またはSwift 2.3のブランチがあります(一般的なアプローチの詳細については、this postを参照してください)。私はSwiftyJSONをチェックし、Swift 3のブランチを持っているように見えるので、あなたのアプリをSwift 3に変換して試してみることができます。それは正確に機能していないかもしれないが、それはそこにする可能性があるので、それは、各Xcodeの8ベータ版のために更新するために、プロジェクト次第です

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

:それを使用するためには、にごPodfileでSwiftyJSONエントリを変更100未満の誤差であること。

注::すべてを更新してコンパイラエラーを修正すると、「レガシィスイフト言語バージョンを使用する」エラーが表示されることがあります。これは、post_installステップをPodfile(this GitHub issueを参照)に追加するか、CocoaPods 1.1.0.beta1以上(gem install cocoapods --pre)に更新することで修正できます。

6

YESに設定してコードをXcode 8に設定する必要があります。次に、Podfileにこれを追加して、すべてのポッドターゲットを同じように確認します。

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |configuration| 
     configuration.build_settings['SWIFT_VERSION'] = "2.3" 
    end 
    end 
end 

私は願っています。

+3

これは多くの人のように終わります – Cyrus

+0

これは本当に便利でした。ありがとう! – speedynomads

0

pod installを実行し、あなたのPodfileの末尾に以下を追加します。私はイライラ移行ボタンをタップし、あなたがコミットしていない与えられた、にDE-の移行が難しい場合は不可能ではないことが判明

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     config.build_settings['SWIFT_VERSION'] = '2.3' 
    end 
    end 
end 
関連する問題