Xcode
iOS

Xcodeのprojectで最後に開発されていたversionを確認する方法

前振り

先任からprojectを引き継いだものの、どのXcodeのversionで開いたらいいか悩んだ経験ありませんか?
私はあります!!💢

projectによって、どのversionのXcodeで開発していたかを、引継書とかREADMEとかコミットメッセージ…最悪口頭で知ることもあるでしょう。
しかし、それすらない時、どうしたらいいでしょうか?

私の知る限りでは3パターンあります。

  • xcodeprojのLastUpgradeCheckを確認する
  • ipaからinfo.plistのDTXcodeを確認する
  • 総当たりでXcodeで開いてbuildする

パターン1. xcodeprojのLastUpgradeCheckを確認する

XcodeのVersion editor(スクリーンショット 2018-04-06 13.25.49.png)でプロジェクトの内部構成を見れます。
その中でLastUpgradeCheckを探すと、 LastUpgradeCheck = 0920 のように記述されています。

読み方としては、名称未設定.jpgのようになっています。

下1桁だけは、PatchVersionかと思いましたがXcode7.3.1の時はLastUpgradeCheck = 0730で記載されているためよくわかりません。

注意点

まともなprojectであれば、LastUpgradeCheckで最後に開発していたXcodeのversionを知ることができますが、1つ注意点があります。

LastUpgradeCheckが更新されるのは、warning「Update to recommended settings」を解消した時のみです。

↓を見てもらえればわかるかと思います。

  1. Xcode 7.3.1でprojectを作成した時、LastUpgradeCheck = 0730と表示されている
    スクリーンショット 2018-04-06 11.12.25(2).png

  2. 「1.」のprojectをXcode 9.2で開いた時、LastUpgradeCheck = 0730と表示されている
    スクリーンショット 2018-04-06 11.15.49(2).png

  3. 「1.」のprojectをXcode 9.2で開き、warning「Update to recommended settings」を解消した後、LastUpgradeCheck = 0920と表示されている
    スクリーンショット 2018-04-06 11.28.56(2).png

パターン2. ipaからInfo.plistDTXcodeを確認する

ipaがあれば、以下の手順でbuildされたXcodeを特定できます。

hoge.ipaから特定する手順
1. hoge.ipaの拡張子をhoge.zipに変える
2. hoge.zipを解凍する
3. Payloadフォルダの中にあるhoge.appを右クリックでメニューを開き、「パッケージの内容を表示」を選択する
4. Info.plistを開き、DTXcodeの値を確認する

Xcode 7.3.1でbuildしたipa内に含まれるInfo.plist
スクリーンショット_2018-04-06_17_32_22.jpg

Xcode 9.2.0でbuildしたipaに含まれるInfo.plist
スクリーンショット_2018-04-06_17_33_06.jpg

Info.plistで確認する場合は、PatchVersionまで記載されているのが良いですね。

パターン3. 総当たりでXcodeで開いてbuildする

文字通り、あらゆるversionのXcodeで開き、buildが通るどうかで判断します。