diff --git a/.github/workflows/Specs.yml b/.github/workflows/Specs.yml index ca4a526a..e20d04cf 100644 --- a/.github/workflows/Specs.yml +++ b/.github/workflows/Specs.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ['2.7', '3.0', '3.1', '3.2', '3.3'] + ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4'] os: [ubuntu-24.04] include: - os: macos-14 diff --git a/CHANGELOG.md b/CHANGELOG.md index 59d65db1..c5c7f5e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,19 @@ * None. +## 1.28.1 (2026-07-06) + +##### Enhancements + +* None. + +##### Bug Fixes + +* Fix `cannot load such file -- kconv`, `cannot load such file -- base64` crash when running on Ruby 3.4. + [Eric Amorde](https://github.com/amorde) + [#1046](https://github.com/CocoaPods/Xcodeproj/pull/1046) + + ## 1.28.0 (2026-07-06) ##### Enhancements diff --git a/Gemfile.lock b/Gemfile.lock index 6050ce9f..8a6aa321 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,12 +14,14 @@ GIT PATH remote: . specs: - xcodeproj (1.28.0) + xcodeproj (1.28.1) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) + base64 claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.4.0) + nkf rexml (>= 3.3.6, < 4.0) GEM @@ -31,6 +33,7 @@ GEM ast (2.4.3) atomos (0.1.3) bacon (1.2.0) + base64 (0.3.0) claide-plugins (0.9.2) cork nap @@ -75,6 +78,7 @@ GEM multipart-post (2.1.1) nanaimo (0.4.0) nap (1.1.0) + nkf (0.3.0) notify (0.5.2) octokit (4.21.0) faraday (>= 0.9) diff --git a/lib/xcodeproj/gem_version.rb b/lib/xcodeproj/gem_version.rb index 994fe8b0..0166a3f5 100644 --- a/lib/xcodeproj/gem_version.rb +++ b/lib/xcodeproj/gem_version.rb @@ -1,5 +1,5 @@ module Xcodeproj # The version of the xcodeproj gem. # - VERSION = '1.28.0'.freeze unless defined? Xcodeproj::VERSION + VERSION = '1.28.1'.freeze unless defined? Xcodeproj::VERSION end diff --git a/spec/project/object_spec.rb b/spec/project/object_spec.rb index 3b50746e..f38fed24 100644 --- a/spec/project/object_spec.rb +++ b/spec/project/object_spec.rb @@ -158,10 +158,18 @@ module ProjectSpecs end it 'warns if it encounters an unknown attribute in a plist' do - UI.expects(:warn).with "[!] Xcodeproj doesn't know about the following " \ + if Gem::Requirement.new('>= 3.4.0').satisfied_by?(Gem::Version.new(RUBY_VERSION)) + UI.expects(:warn).with "[!] Xcodeproj doesn't know about the following " \ + "attributes {\"unknown_attribute\" => \"might be a reference\"} for the 'PBXFileReference' isa." \ + "\nIf this attribute was generated by Xcode please file " \ + 'an issue: https://github.com/CocoaPods/Xcodeproj/issues/new' + else + UI.expects(:warn).with "[!] Xcodeproj doesn't know about the following " \ "attributes {\"unknown_attribute\"=>\"might be a reference\"} for the 'PBXFileReference' isa." \ "\nIf this attribute was generated by Xcode please file " \ 'an issue: https://github.com/CocoaPods/Xcodeproj/issues/new' + end + @objects_by_uuid_plist[@object.uuid]['unknown_attribute'] = 'might be a reference' @object.configure_with_plist(@objects_by_uuid_plist) end diff --git a/xcodeproj.gemspec b/xcodeproj.gemspec index a956c63b..71ddf49c 100644 --- a/xcodeproj.gemspec +++ b/xcodeproj.gemspec @@ -27,6 +27,8 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'colored2', '~> 3.1' s.add_runtime_dependency 'nanaimo', '~> 0.4.0' s.add_runtime_dependency 'rexml', '>= 3.3.6', '< 4.0' + s.add_runtime_dependency 'nkf' # required for older CFPropertyList versions on Ruby 3.4 + s.add_runtime_dependency 'base64' # required for older CFPropertyList versions on Ruby 3.4 ## Make sure you can build the gem on older versions of RubyGems too: s.rubygems_version = '1.6.2'