lib/calabash-cucumber/launch/simulator_helper.rb in calabash-cucumber-0.9.158 vs lib/calabash-cucumber/launch/simulator_helper.rb in calabash-cucumber-0.9.159

- old
+ new

@@ -206,16 +206,26 @@ return ios_project_dir if ios_project_dir && File.directory?(ios_project_dir) # ios_project_dir does not exist # Detect case where there is no such sub directory # (i.e. iOS only Xamarin project) bin_dir = File.join(project_dir, 'bin') - if File.directory?(bin_dir) && - (File.directory?(File.join(bin_dir,'iPhoneSimulator')) || - File.directory?(File.join(bin_dir,'iPhone'))) + if xamarin_ios_bin_dir?(bin_dir) return project_dir ## Looks like iOS bin dir is here end + sub_dirs = Dir[File.join(project_dir,'*')].select {|dir| File.directory?(dir)} + sub_dirs.find do |sub_dir| + contains_csproj = Dir[File.join(sub_dir,'*.csproj')].first + contains_csproj && xamarin_ios_bin_dir?(File.join(sub_dir,'bin')) + end + + end + + def self.xamarin_ios_bin_dir?(bin_dir) + File.directory?(bin_dir) && + (File.directory?(File.join(bin_dir,'iPhoneSimulator')) || + File.directory?(File.join(bin_dir,'iPhone'))) end def self.bundle_path_from_xamarin_project(device_build_dir='iPhoneSimulator') ios_project_path = xamarin_ios_csproj_path conf_glob = File.join(ios_project_path,'bin',device_build_dir,'*')