CocoaPods / Rome

Makes it easy to build a list of frameworks.
MIT License
694 stars 64 forks source link

Fix overwrite issue with dependencies that have the same base dependencies #57

Closed bradphilips closed 6 years ago

bradphilips commented 7 years ago

When adding dependencies that have the same sub-dependencies i.e. AWSLambda and AWSS3 which both depend on AWSCore I was getting an exception such as the following:

Errno::EEXIST - File exists - /Users/bphilip1/Projects/ProgressiveApp/iOS/build/AWSCognito.framework /Users/bphilip1/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/fileutils.rb:522:in block in mv' /Users/bphilip1/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/fileutils.rb:1571:inblock in fu_each_src_dest' /Users/bphilip1/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/fileutils.rb:1585:in fu_each_src_dest0' /Users/bphilip1/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/fileutils.rb:1569:infu_each_src_dest' /Users/bphilip1/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/fileutils.rb:517:in mv' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-rome-0.8.0/lib/cocoapods-rome/post_install.rb:28:inblock in build_for_iosish_platform' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-rome-0.8.0/lib/cocoapods-rome/post_install.rb:16:in each' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-rome-0.8.0/lib/cocoapods-rome/post_install.rb:16:inbuild_for_iosish_platform' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-rome-0.8.0/lib/cocoapods-rome/post_install.rb:54:in block (2 levels) in <top (required)>' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-rome-0.8.0/lib/cocoapods-rome/post_install.rb:52:ineach' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-rome-0.8.0/lib/cocoapods-rome/post_install.rb:52:in block in <top (required)>' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/hooks_manager.rb:111:inblock (3 levels) in run' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/user_interface.rb:142:in message' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/hooks_manager.rb:103:inblock (2 levels) in run' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/hooks_manager.rb:101:in each' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/hooks_manager.rb:101:inblock in run' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/user_interface.rb:142:in message' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/hooks_manager.rb:100:inrun' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:493:in run_plugins_post_install_hooks' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:472:inperform_post_install_actions' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:121:in install!' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/command/install.rb:37:inrun' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/claide-1.0.1/lib/claide/command.rb:334:in run' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/lib/cocoapods/command.rb:50:inrun' /Users/bphilip1/.rvm/gems/ruby-2.3.1/gems/cocoapods-1.1.1/bin/pod:55:in <top (required)>' /Users/bphilip1/.rvm/gems/ruby-2.3.1/bin/pod:23:inload' /Users/bphilip1/.rvm/gems/ruby-2.3.1/bin/pod:23:in <main>' /Users/bphilip1/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:ineval' /Users/bphilip1/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `

This pull request fixes this problem by force overwriting the built dependency.

FileUtils.mv device_framework_lib, build_dir, :force => true
bradphilips commented 7 years ago

@neonichu this alright? Ps love this plugin -- it's literally cut my build times in half and completely non-intrusive. Everything I love about Carthage but the power and vast ecosystem of Cocoapods. 👍

tcamin commented 6 years ago

+1

orta commented 6 years ago

Alright, let's get this in 👍