2017-05-03 3 views
2

Xcodeprojを実験していたとき、私はAPIの悪用に起因するエラーを発見しました。私が間違っていることを指摘していただけますか?Ruby gem Xcodeprojがプロジェクトの保存時に例外をスローする

require 'xcodeproj' 

project = Xcodeproj::Project.new("test.xcodeproj") 
new_target_name = 'test' 
project.new_target(:framework, new_target_name, :ios) 
project.save 

target_to_remove = project.targets.select {|t| t.name == new_target_name}.first 
project.targets.delete(target_to_remove) 
project.save 

target_to_remove.remove_from_project 

このスニペットで私に次のエラーメッセージが表示されます。

/usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.4.4/lib/xcodeproj/project/object/configuration_list.rb:101:in `ascii_plist_annotation': undefined method `isa' for nil:NilClass (NoMethodError) 
    from /usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.4.4/lib/xcodeproj/project.rb:286:in `block in to_ascii_plist' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.4.4/lib/xcodeproj/project.rb:285:in `each' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.4.4/lib/xcodeproj/project.rb:285:in `to_ascii_plist' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.4.4/lib/xcodeproj/project.rb:353:in `block in save' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.4.4/lib/xcodeproj/project.rb:353:in `open' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.4.4/lib/xcodeproj/project.rb:353:in `save' 
    from /Users/testuser/Desktop/XcodeprojTest/test.rb:10:in `<top (required)>' 
    from -e:1:in `load' 
    from -e:1:in `<main>' 

答えて

0

これが私の作品:

targets_to_remove = project.targets.select { |target| target.name == new_target_name } 
targets_to_remove.each { |target| target.remove_from_project } 

は、私はそれだけで、それを削除するためremove_from_projectを呼び出し、すべての参照が適切にクリーンアップするためにするのに十分だと考えています。

関連する問題