2017-02-09 7 views
0

私が現在働いている会社は、Swift 2.3で書かれたレガシー製品をサポートしています(私は同意しません)。現時点では、彼らは現在、レガシーバージョンをサポートする機能を展開し続けたいと考えています。したがって、私は現在、Swift 3.0で書かれたポッドに関するバインドに入っています。Swift 3.0で書かれたモジュールをSwift 2.3に移行しますか?

Xcode 7.3.1をインストールして、そのコードをうまく移行しようとすると、構文をSwift 2.3に戻そうとしました。残念ながら、それはSwift 3.0で書かれたモジュールなので、私の努力は無駄でした。

私はSwift 2.3のモジュールにコードを書くことに反対していませんが、残念ですが、私は長期的な面倒なプロセスを見ています。 Swiftの最新バージョンで作成されたモジュールをバージョン2.3に移行するには、どのような手順を取る必要がありますか?

+0

アクセスしようとしているポッドには、Swift 2の古いバージョンがありますか?たとえば、Podfileに古いバージョンのコードをコピーしたため、依存関係を設定していたプロジェクトでSwift 2.3用に設計された古いバージョンのAlamofireを誤って使用しました。私は古いモジュールが存在していれば、まだそれにアクセスできると信じています。 – Pierce

+0

@ピアスいいえ、それはありません。これはSwift 3.0で書かれています。私は利用可能な古いバージョンがあるポッドを探してみるが、このポッドはまったく持っていないようだ。私はリポジトリの投稿者に連絡することを確かめました。彼らはSwift 2.3に書き込むよう提案しましたが、私にとっては実行可能なものではないかもしれないと思います+私は本当に誰にもそれらを期待していません。私はこれが文字通り私が取り組んでいるプロジェクトで重要な要件を満たすことができる唯一のポッドのように私ができる最善の方法でこの障害を操縦しようとします。 – Alex7

答えて

2

まず、Xcode 8を使用してこれを行うことができます。それぞれのスキームを選択し、ビルド設定で 'legacy swift version'をyesに設定します。コンパイルして実行します。 Swiftは多くのエラーを表示し始めます。たとえば、このコード(SWIFT 3):

SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 10) 

手動SWIFTは言うすべてのエラーを修正する必要があるので、あなたがの明確な理解を必要とする迅速2の
SKAction.rotateByAngle: CGFloat(M_PI_2), duration: 10) 

です古い迅速な構文。

+0

Swift 3.0の構文を持つポッドに前述したことがあり、Swift 2.3でビルド設定の旧バージョンのブール値を変更して個々のエラーを修正しようとすることができますか?確かに価値があるが、価値があるという面倒なプロセスに縛られている。ありがとう! – Alex7

+1

はい、あなたはこれを行うことができますレガシーswiftをサポートする場合 – paper1111

+0

@ Alex7これは正解ですか?もしあなたがそれであればそれをチェックしてください... – paper1111

関連する問題