NoMethodError - undefined method `downcase' for nil:NilClass
LWX124 opened this issue · comments
In my project,it works well in v1.19.0, but when it upgrades to v1.21.0, there's an error:
NoMethodError - undefined method 'downcase' for nil:NilClass
backtrace:
Error
NoMethodError - undefined method `downcase' for nil:NilClass
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object/group.rb:445:in `block in sort'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object_list.rb:182:in `sort!'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object_list.rb:182:in `sort!'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object/group.rb:431:in `sort'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:183:in `sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:180:in `block (2 levels) in sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:180:in `each'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:180:in `block in sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:178:in `each'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:178:in `sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:180:in `block (2 levels) in sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:180:in `each'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:180:in `block in sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:178:in `each'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:178:in `sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:175:in `block in sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:173:in `each'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object.rb:173:in `sort_recursively'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project.rb:811:in `sort'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:81:in `block in save_projects'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:80:in `each'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:80:in `save_projects'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:63:in `write!'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:330:in `block in create_and_save_projects'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/user_interface.rb:64:in `section'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:309:in `create_and_save_projects'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:301:in `generate_pods_project'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:180:in `integrate'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:167:in `install!'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/command/install.rb:52:in `run'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/lib/cocoapods/command.rb:52:in `run'
/Users/weixi1/.rvm/gems/ruby-2.7.4/gems/cocoapods-1.11.2/bin/pod:55:in `<top (required)>'
/Users/weixi1/.rvm/gems/ruby-2.7.4/bin/pod:23:in `load'
/Users/weixi1/.rvm/gems/ruby-2.7.4/bin/pod:23:in `<main>'
/Users/weixi1/.rvm/gems/ruby-2.7.4/bin/ruby_executable_hooks:22:in `eval'
/Users/weixi1/.rvm/gems/ruby-2.7.4/bin/ruby_executable_hooks:22:in `<main>'
I checked my podspec, found that it had a subspec named 'metal', and also, there's a real directory named 'Metal', it throwed exception above when executing pod install
.
podspec content:
s.subspec 'metal' do |ss|
ss.source_files = [
"MyProject/Metal/Shaders/*.h",
]
end
directory tree:
.
├── MyProject
| ├── ...
│ ├── Metal
| ├── ...
└── MyProject.podspec
the error line : line 445 in group.rb
result = x.path.downcase <=> y.path.downcase
It seems like that x.path is nil
Finally, I changed my subspec name from 'metal' to 'metal1'(different from the directory name), it worked.
What's the problem with Xcodeproj?
Seems like a potential bug yes. Do you have a sample project or test case that shows the issue?
Any update on this? We are experiencing major issues on bitrise. We downgraded to version 1.19.0 (downgraded also cocoapods) to make this work. Also commenting the line at /Users/<user>/.rvm/gems/ruby-2.7.4/gems/xcodeproj-1.21.0/lib/xcodeproj/project/object/group.rb:445
does work, although i don't know if it will cause other unexpected behaviors or unwanted side effects.
Is there any news on this?
fixed by #865