簡體   English   中英

Ruby gem Xcodeproj在項目保存時引發異常

[英]Ruby gem Xcodeproj throws exception on project save

在嘗試Xcodeproj時,我發現了一個錯誤,可能是由於濫用API引起的。 您能指出我做錯了嗎?

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>'

有任何想法嗎?

這對我有用:

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

我相信只需調用remove_from_project就可以刪除它,並且可以正確清理所有引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM