Xcode10 にしたら Multiple commands produce ... Info.plist で消耗した

個人プロジェクトを Xcode10 対応してたらこんなエラーが出た。

:-1: Multiple commands produce '/Users/hoge/Library/Developer/Xcode/DerivedData/KotaichiDex-eiyecmvfctikcwcspitwpzskudue/Build/Products/Debug-iphonesimulator/PokemonRealm/PokemonRealm.framework/Info.plist':
1) Target 'PokemonRealm' (project 'Pods') has copy command from '/Users/hoge/Xcode/KotaichiDex/Pods/PokemonRealm/PokemonRealm/Info.plist' to '/Users/hoge/Library/Developer/Xcode/DerivedData/KotaichiDex-eiyecmvfctikcwcspitwpzskudue/Build/Products/Debug-iphonesimulator/PokemonRealm/PokemonRealm.framework/Info.plist'
2) Target 'PokemonRealm' (project 'Pods') has process command with output '/Users/hoge/Library/Developer/Xcode/DerivedData/KotaichiDex-eiyecmvfctikcwcspitwpzskudue/Build/Products/Debug-iphonesimulator/PokemonRealm/PokemonRealm.framework/Info.plist'

PokemonRealm というのは private pods として利用しているライブラリ。こいつの Info.plist がどうこう怒られている。

PokemonRealm の .podspec はこう書いていた。

Pod::Spec.new do |s|
  ...
  s.source_files       = "PokemonRealm/*"
  ...
end

こうしていると、 PokemonRealm/Info.plist もライブラリ管理されてしまって、それが重複してしまうのでダメらしい。

なので、 Swift ファイルだけ対象にするようにした。

Pod::Spec.new do |s|
  ...
  s.source_files       = "PokemonRealm/*.swift"
  ...
end

そしたら無事エラーが消えて Xcode10 でビルドできた。

参考

github.com