snapshot/lib/snapshot/dependency_checker.rb in fastlane-2.74.1 vs snapshot/lib/snapshot/dependency_checker.rb in fastlane-2.75.0.beta.20180109010003

- old
+ new

@@ -4,50 +4,65 @@ module Snapshot class DependencyChecker def self.check_dependencies return if FastlaneCore::Helper.test? + return unless FastlaneCore::Helper.mac? self.check_xcode_select self.check_simctl end def self.check_xcode_select - unless `xcode-select -v`.include? "xcode-select version" - FastlaneCore::UI.error '#############################################################' - FastlaneCore::UI.error "# You have to install Xcode command line tools to use snapshot" - FastlaneCore::UI.error "# Install the latest version of Xcode from the AppStore" - FastlaneCore::UI.error "# Run xcode-select --install to install the developer tools" - FastlaneCore::UI.error '#############################################################' + xcode_available = nil + begin + xcode_available = `xcode-select -v`.include?("xcode-select version") + rescue + xcode_available = true + end + + unless xcode_available + FastlaneCore::UI.error('#############################################################') + FastlaneCore::UI.error("# You have to install Xcode command line tools to use snapshot") + FastlaneCore::UI.error("# Install the latest version of Xcode from the AppStore") + FastlaneCore::UI.error("# Run xcode-select --install to install the developer tools") + FastlaneCore::UI.error('#############################################################') FastlaneCore::UI.user_error!("Run 'xcode-select --install' and start snapshot again") end if Snapshot::LatestOsVersion.ios_version.to_f < 9 # to_f is bad, but should be good enough - FastlaneCore::UI.error '#############################################################' - FastlaneCore::UI.error "# Your xcode-select Xcode version is below 7.0" - FastlaneCore::UI.error "# To use snapshot 1.0 and above you need at least iOS 9" - FastlaneCore::UI.error "# Set the path to the Xcode version that supports UI Tests" - FastlaneCore::UI.error "# or downgrade to versions older than snapshot 1.0" - FastlaneCore::UI.error '#############################################################' + FastlaneCore::UI.error('#############################################################') + FastlaneCore::UI.error("# Your xcode-select Xcode version is below 7.0") + FastlaneCore::UI.error("# To use snapshot 1.0 and above you need at least iOS 9") + FastlaneCore::UI.error("# Set the path to the Xcode version that supports UI Tests") + FastlaneCore::UI.error("# or downgrade to versions older than snapshot 1.0") + FastlaneCore::UI.error('#############################################################') FastlaneCore::UI.user_error!("Run 'sudo xcode-select -s /Applications/Xcode-beta.app'") end end def self.check_simulators FastlaneCore::UI.verbose("Found #{FastlaneCore::Simulator.all.count} simulators.") if FastlaneCore::Simulator.all.count == 0 - FastlaneCore::UI.error '#############################################################' - FastlaneCore::UI.error "# You have to add new simulators using Xcode" - FastlaneCore::UI.error "# You can let snapshot create new simulators: 'fastlane snapshot reset_simulators'" - FastlaneCore::UI.error "# Manually: Xcode => Window => Devices" - FastlaneCore::UI.error "# Please run `instruments -s` to verify your xcode path" - FastlaneCore::UI.error '#############################################################' + FastlaneCore::UI.error('#############################################################') + FastlaneCore::UI.error("# You have to add new simulators using Xcode") + FastlaneCore::UI.error("# You can let snapshot create new simulators: 'fastlane snapshot reset_simulators'") + FastlaneCore::UI.error("# Manually: Xcode => Window => Devices") + FastlaneCore::UI.error("# Please run `instruments -s` to verify your xcode path") + FastlaneCore::UI.error('#############################################################') FastlaneCore::UI.user_error!("Create the new simulators and run this script again") end end def self.check_simctl - unless `xcrun simctl`.include? "openurl" + simctl_available = nil + begin + simctl_available = `xcrun simctl`.include?("openurl") + rescue + simctl_available = true + end + + unless simctl_available FastlaneCore::UI.user_error!("Could not find `xcrun simctl`. Make sure you have the latest version of Xcode and macOS installed.") end end end end