最近xcodeをバージョン9に更新しました。それ以前は、pod update
を実行するために使用していたXcode 8.xでは、コードをSwift 3に変換してエラーを解決するための更新コードが表示されます。しかし今、それは私にこのエラーを与えています:
Swiftを使用するターゲットでは、「Swift Language Version」(Swift_VERSION)ビルド設定をサポートされている値に設定する必要があります。この設定はビルド設定エディタで設定できます。
このエラーに対して私はBuild Settings > Swift Language Version
を試してみました、そしてそれはSwift 3.2でした。しかし、更新呼び出しがAlamofireのようなポッドのいくつかを再インストールし、Swift 3にコードを変換するためにXcode 8.xをインストールするように言うので最新のXcodeの追加バージョン?もしそうなら、どうやってXcode 8とXcode 9をインストールできますか?
あなたの質問への回答:
Xcode 8.xを Apple Download Portalからダウンロードできます または Xcode 8.3.3をダウンロード (または: Xcodeの古いバージョンのダウンロード先 )プレミアムデベロッパーアカウント(アップルID)。 Xcode 9とXcode 8.xの両方を単一の(Mac)システムにインストールして作業することができます。 (端末で作業するために、Command Line Tools
が両方のバージョンのXcodeをサポートしていることを確認してください(参照: 'Command Line Tool'のインストール方法 ))
ヒント:コードを移行するにはXcode 9互換のSwiftバージョン(Swift 3.2または4)
Xcode 9では、Swift 3.0
からSwift 3.2/4.0
への変換/移行のみが許可されています。あなたのプロジェクトのSwift言語の現在のバージョンが3.0以下の場合は、Xcode 8.xを使用してSwift 3互換バージョンにコードを移行する必要があります。
これは、移行中にXcode 9が3.0未満のSwift言語を識別した場合に表示される一般的なエラーメッセージです。
Swift 3.2はXcode 9とXcode 8の両方でサポートされています。
プロジェクト►(プロジェクトのターゲットを選択)►ビルド設定►(検索バーに 'Swift'と入力)Swift Compiler Language►Swift Language Version►Languageリストをクリックして開きます。
Xcode 8を使用してソースコードをSwift 2.0から3.2に変換してからXcode 9(Swift 3.2または4)に進みます。
コードをより簡単に移行するには、次の手順に従います。(XcodeツールでサポートされているSwiftの最新バージョンに変換するのに役立ちます)
Xcode:メニュー:編集▶隠し▶現在のスウィフト構文へ
このプロジェクトにCore Dataモデルファイルを追加した後、Xcode 10で新しいObjective-Cプロジェクトを作成した後にこれを得ました。
これを修正する方法は2つあります。
モデルには次の行を含む "contents"ファイルが含まれています。
<model type="com.Apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14460.32" systemVersion="17G5019" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
にはsourceLanguage="Swift"
エントリーがあります。 sourceLanguage="Objective-C"
に変更するとエラーは消えます。
「contents」ファイルを見つけるには、Xcodeの.xcdatamodeld
を右クリックして「Show in Finder」を実行します。実際の(Finder)ファイルを右クリックして「パッケージの内容を表示する」を実行してください。
また、モデルの言語を変更すると、XcodeはSwiftで管理オブジェクトサブクラスファイルを生成できなくなります。
これは、既存のプロジェクトにCore Dataを追加したときに起こります。
以下を確認してください。
<名前>/<名前> .xcdatamodeld/<名前> .xcdatamodel/contents
ファイル。
このファイルは(デフォルトで) "Swift"に設定されているかもしれないエントリ "sourceLanguage"を含んでいます。 "Objective-C"に変更してください。
ツールチェーンをダウンロードする必要があるかもしれません。このエラーは、Swiftコンパイラの正しいバージョンがない場合に発生します。
最新のSwift convertボタンをクリックして、App target build setting-> Swift言語バージョンを設定します。Swift 4.0、
これが役立つことを願っています。
プロジェクト全体を変換するのに1週間以上かかり、以下の解決策になりました。
まず、プロジェクトからのcocopods依存関係を解除してから、プロジェクトを最新のSwiftバージョンに変換し始めます。
ターミナルのプロジェクトディレクトリに移動して、次のように入力します。
pod deintegrate
これにより、プロジェクトからのココポッドの統合が解除され、プロジェクト内にCocoaPodの痕跡は残りません。しかし同時に、それはxcworkspaceとpodfilesを削除しません。彼らが存在していても大丈夫です。
(xcworkspaceではなく)xcodeprojを開く必要があります。メインプロジェクトでcocoapods依存メソッドを呼び出したため、多くのエラーが発生します。
そのため、これらのエラーを取り除くには2つの選択肢があります。
すべてのエラーが削除されたら、コードを最新のSwiftバージョンに変換できます。
あなたが奇妙なエラーに遭遇しているなら時々それから派生データをきれいにすることを試みてそしてもう一度やり直してください。