2016-11-01 13 views
7

プロジェクトのSwift 3に既に変換されているため、マイグレーションを実行する方法はありますか?Xcode 8または8.11つのファイルをXcode 8のSwift 3に変換しますか?

技術的負債/遺産の建設プロセスの理由から、私たちは現在、プロジェクトのXcode 7Xcode 8バージョンを維持しなければなりません。これは、Xcode 7から新しい開発をXcode 8にマージする必要があるときに頭痛を引き起こしています。このプロジェクトは、Xcode 8支店(手作業による修正を含む)ですでにSwift 3に完全に変換されているため、フルプロジェクトの自動変換ツールを使用することはできません。したがって、新しいSwiftファイルがXcode 7に追加された場合は、Swift 2.2からSwift 3への手渡しを行う必要があり、かなりの時間がかかります。

Googleに申し訳ありませんが、これは私には分かりません。

答えて

2

私は複数のターゲットを持つプロジェクトを持っていますが、それぞれのターゲットはSwiftでOpenGLを使用するより高度なバージョンです。これは複数のチュートリアルを含む1つのプロジェクトです。スウィフト3が利用可能になったとき、私はコンバータを使用し、にで動作することに気づいた。そのことを念頭に置いてお勧めします:

  1. プロジェクトでダムターゲットを作成します。
  2. このターゲットに更新するファイルを追加します。
  3. 会話エディタを実行する
  4. 既に変換されたターゲットに関連付けるか、それらのファイルを関連付けます。

私はそれがちょっとしたハックだと思っていますが、うまくいけば、どうしてですか?希望が役立ちます。あなたが任意のコードがUnsafe[Mutable]Pointerを扱っていて、あなたがalloc()malloc(),を活用場合

はサイドノートとして、コンバータは、新しいUnsafeMutablePointer methods-- allocate()initialize()alloc()/malloc()に代わるものではありません。 C APIのいずれかを使用している場合は、これらを使用している可能性があります。

+0

ダウン投票した人には、私は理由を聞かせてもらえますか?これは実行可能な答えです。 – Buggy

+0

合意は、理想的ではありませんが、今は最良のアプローチのようです。 – Jimmy

2

思想(未テスト)がproject.pbxprojからライン

LastSwiftMigration = 0800; 

および/または

SWIFT_VERSION = 3.0; 

を削除するとXcodeはあなたが再び移行ツールを使用することができますかどうかを確認することです。これらの行は、移行者を実行した後に追加されたものです。

それがうまくいくならば、明らかに、移行したくないすべてのファイルの選択を解除する必要があります。

これは私がとにかく考えることのできるすべてです。

関連する問題