👻
undefined method os_version' for nil (NoMethodError) エラー解消手順
Fastlane Snapshot 使用時のエラー対処法
Fastlaneを使用してスクリーンショットを自動生成する際、次のようなエラーが発生しました。
undefined method os_version' for nil (NoMethodError)
/opt/homebrew/Cellar/fastlane/2.225.0/libexec/gems/fastlane-2.225.0/fastlane_core/lib/fastlane_core/device_manager.rb:135:in latest_simulator_version_for_device': [!] undefined method os_version' for nil (NoMethodError)
.os_version
^^^^^^^^^^^
原因
エラーの原因は、Fastlaneが対象のシミュレーターを見つけられないことに起因しています。この問題は、Snapfile
やXcodeの設定で、シミュレーターが正しく指定されていない場合、またはサポートされていないデバイスが指定されている場合に発生することが多いです。
おもな原因
- Fastlane がデフォルトで「Mac」をデバイスとして選択している。
- Xcode のベータ版を使用していたり、特定の設定が正しくないこと。
解決方法
このエラーを解決するために、以下の手順を試してください。
-
サポートされているデバイスの設定確認
-
Snapfile
(またはFastfile
) 内でのデバイス指定方法が正しいことを確認します。以下のように設定されている必要があります:devices(["iPhone 16"])
- 上で指定したデバイスが、Xcode の上部タブ内の
Window
->Devices and Simulators
で表示されるデバイスまたはシミュレーターの一覧に表示されていることを確認します。
- デバイス一覧は
xcrun simctl list devices available
コマンドでも確認可能です。
-
-
Macを削除
-
XcodeのUITestsのTargets内にある「Supported Destinations」から「Mac」を削除します。これにより、Fastlaneがシミュレーターを正しく認識できるようになります。
-
BEFORE:
-
AFTER:
-
その後、再度
fastlane snapshot
を実行して、エラーが解消されたかを確認します。
-
-
Fastlaneのアップデート
- Fastlaneの最新バージョンを確認し、アップデートすることも重要です。以下のコマンドを使用して、gemからアップデートすることができます:
gem update fastlane
- また、Homebrewを使用してFastlaneをアップデートする場合は、次のコマンドを実行します:
brew upgrade fastlane
- Fastlaneの最新バージョンを確認し、アップデートすることも重要です。以下のコマンドを使用して、gemからアップデートすることができます:
参考資料
このエラーについての詳細な議論や解決策が含まれているGitHubのリンクも参照してください:
まとめ
Fastlaneを使用したスクリーンショット生成中のエラーは、特にシミュレーターの指定に注意することで多くの場合解決できます。問題が解消しない場合は、環境設定やFastlaneのバージョンを再確認することをお勧めします。
Discussion