LoginSignup
24
10

More than 5 years have passed since last update.

プロジェクトのSwiftバージョン確認方法 & 自動Xcodeセレクタ

Last updated at Posted at 2018-12-25

はじめに

このプロジェクトはswiftのversionなんだっけ・・

ということが多々あると思います。

そんなときの確認方法と対応したXcodeでの起動方法

+オマケで対応したVerのXcodeで起動してくれるShellScriptを考えてみたいと思います。(まだalpha版です)

概要

プロジェクトファイル内に記載があるので以下のコマンドで。

$ grep -r SWIFT_VERSION ./*.xcodeproj

サンプル

試しにいつ作ったか忘れたアプリのルートディレクトリでgrepしてみます。

$ grep -r SWIFT_VERSION ./ZanPanSoldier.xcodeproj
./ZanPanSoldier.xcodeproj/project.pbxproj:              SWIFT_VERSION = 4.0;
./ZanPanSoldier.xcodeproj/project.pbxproj:              SWIFT_VERSION = 4.0;
./ZanPanSoldier.xcodeproj/project.pbxproj:              SWIFT_VERSION = 4.0;
./ZanPanSoldier.xcodeproj/project.pbxproj:              SWIFT_VERSION = 4.0;

意外に新しいですね (@2018/12/21)

ちがうやつ

たまに見かける記事で以下のコマンドがあります。

$ swift -version
Apple Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1)
Target: x86_64-apple-darwin17.7.0

これは現在設定されているコマンドラインツールのverが表示されるだけです。

ちなみにハイフンは1個でも2個でもokです。

実際に実行されるときのPATHは、具体的には以下のような感じです。

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -version

各Xcodeの対応swift version表示

上記を踏まえていろいろなXcodeで実行してみます。

Xcode 10.1 (10B61)

$ /Applications/Xcode10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -version

Apple Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1)
Target: x86_64-apple-darwin17.7.0

Xcode 9.4.1 (9F2000)

$ /Applications/Xcode9.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -version

Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
Target: x86_64-apple-darwin17.7.0

Xcode 9.3 (9E145)

$ /Applications/Xcode9.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -version

Apple Swift version 4.1 (swiftlang-902.0.48 clang-902.0.37.1)
Target: x86_64-apple-darwin17.7.0

Xcode 9.2 (9C40b)

$ /Applications/Xcode9.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -version

Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2)
Target: x86_64-apple-macosx10.9

Xcode 8.2.1 (8C1002)

$ /Applications/Xcode9.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -version

Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
Target: x86_64-apple-macosx10.9

おまけ

というわけで、Ver情報を取得して以下でXcodeに投げるShellScriptを考えてみます。

基本的にはXcodeのファイル名はバージョンに合わせて
以下でXcodeを起動しています。

open -a /Applications/Xcode10.1.app *.xcworkspace

CocoaPodsを導入している場合はxcworkspaceを、導入していない場合やCarthageのときはxcodeprojを起動したいかなと。
それがselect_project_file()の箇所です。

AutoXcodeSelector
https://github.com/kanari3/AutoXcodeSelector

使い方

  • auto_xcode_selector.shをどこかに置く
    • ex:ホーム (~/)
  • プロジェクトのルートディレクトリで実行
~/work/ZanPanSoldier (develop *+)
$ ~/auto_xcode_selector.sh

Auto Xcode Selector🍣

Swift Version 4.0

これで対応してそうなXcodeでプロジェクトが起動します。

bash.rc等にエイリアスをはれば楽に呼べます。

TODO

  • 自分のインストールしているXcodeに合わせて書き換えられる人向けなので万人向けにしたい
  • ver表記を比較できないので扱いを考える(0.1はok、0.0.1は)
  • XcodeとSwiftの上下揃った対応表を探す
  • エラー処理

こんなのがあったら便利かな?と思い、発想を軽く形にしてみました。

もし良ければforkしてみてください🍣

おわりに

ディップAdventCalendar2018からたどってくださった方どうも有難うございます。

随時エンジニア募集中です!iOSDCにも参加しています!

24
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
10