2017-05-03 8 views
2

Xcodeproj를 실험하면서 API 오용으로 인한 오류가 발견되었습니다. 내가 잘못하고있는 것을 지적 해 주시겠습니까?Ruby gem Xcodeproj가 프로젝트 저장시 예외를 throw합니다.

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를 호출하기에 충분한, 그리고 모든 참조가 제대로 정리하는 것을 믿습니다.