Skip to content

Commit b9b3dbd

Browse files
committed
Dupe Bryan's change
1 parent fede6ce commit b9b3dbd

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

libraries/xcode.rb

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,17 @@ class Xcode
66
attr_reader :version, :intended_path, :download_url
77

88
def initialize(semantic_version, intended_path, download_url = '')
9-
@semantic_version = semantic_version
9+
@semantic_version = normalize_version(semantic_version)
1010
@intended_path = intended_path
1111
@download_url = download_url
1212
@version = -> { determine_version }
1313
end
1414

15+
def normalize_version(version)
16+
# Convert underscores to dots for Gem::Dependency compatibility
17+
version.to_s.gsub('_', '.')
18+
end
19+
1520
def determine_version
1621
if @download_url.empty?
1722
latest_xcode_revision(Xcode::Version.new(@semantic_version))
@@ -67,7 +72,15 @@ def minimum_required_os
6772
return '>= 10.15.4' if Gem::Dependency.new('Xcode', '>= 12.0', '<= 12.4').match?('Xcode', @semantic_version)
6873
return '>= 11.0' if Gem::Dependency.new('Xcode', '>= 12.5', '<= 12.5.1').match?('Xcode', @semantic_version)
6974
return '>= 11.3' if Gem::Dependency.new('Xcode', '>= 13.0', '<= 13.2.1').match?('Xcode', @semantic_version)
70-
return '>= 12.0' if Gem::Dependency.new('Xcode', '>= 13.3').match?('Xcode', @semantic_version)
75+
return '>= 12.0' if Gem::Dependency.new('Xcode', '>= 13.3', '<= 13.4.1').match?('Xcode', @semantic_version)
76+
return '>= 12.5' if Gem::Dependency.new('Xcode', '>= 14.0', '<= 14.2').match?('Xcode', @semantic_version)
77+
return '>= 13.0' if Gem::Dependency.new('Xcode', '>= 14.3', '<= 14.3.1').match?('Xcode', @semantic_version)
78+
return '>= 13.5' if Gem::Dependency.new('Xcode', '>= 15.0', '<= 15.2').match?('Xcode', @semantic_version)
79+
return '>= 14.0' if Gem::Dependency.new('Xcode', '>= 15.3', '<= 15.4').match?('Xcode', @semantic_version)
80+
return '>= 14.5' if Gem::Dependency.new('Xcode', '>= 16.0', '<= 16.2').match?('Xcode', @semantic_version)
81+
return '>= 15.2' if Gem::Dependency.new('Xcode', '== 16.3').match?('Xcode', @semantic_version)
82+
return '>= 15.3' if Gem::Dependency.new('Xcode', '== 16.4').match?('Xcode', @semantic_version)
83+
return '>= 15.5' if Gem::Dependency.new('Xcode', '~> 26.beta').match?('Xcode', @semantic_version)
7184
end
7285

7386
class Simulator

0 commit comments

Comments
 (0)