pod installができなかったのを清く泥臭く解決した

# TL;DR

* CocoaPodsを使って依存ライブラリをインストールしようとしてできなかったお話。
* `gem update xcodeproj`するか`1.6.0.rc.x`を入れれば解決。
* 知ってる人からしたら全然わかってないなお前ってなると思います。

# 環境

エラー内容のStackを見ておくれ。

# CocoaPodsインストール

既に1.5.0が入ってることを知らないで`sudo gem install cocoapods`でインストール。

```
CocoaPods 1.6.0.rc.1 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.6.0.rc.1
```

おう、俺もlove youだけどrc版はまた今度な。  
この後これがトリガーになってハマることになろうとはこの時s-yoshidaは思いもしｎ（

# pod setup

何事も無く終了。  
ぼく「かんたーん＾＾」

# pod install

いっぱいエラー吐いた。ｵﾝｷﾞｬｰ。  

## エラー内容

以下、ほぼコピペなので見辛いかもしれません。

Analyzing dependencies

### Command

```
/usr/local/bin/pod install
```

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?


### Stack

```
   CocoaPods : 1.5.3
        Ruby : ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
    RubyGems : 2.5.2.3
        Host : Mac OS X 10.14.2 (18C54)
       Xcode : 10.1 (10B61)
         Git : git version 2.17.2 (Apple Git-113)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ 6d65beda1df0fcfcebb010dce7e4fc5bd0a3ccb5
```

### Plugins

```
cocoapods-deintegrate : 1.0.2
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.0.0
cocoapods-trunk       : 1.3.0
cocoapods-try         : 1.1.0
```

### Podfile

```ruby
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'

def shared_pods
  use_frameworks!

  # Network Framework
  pod 'Alamofire', '~> 4.8.1'
  pod 'AlamofireImage', '~> 3.5.0'
end

target 'hogehoge_ios' do
  shared_pods
end

target 'hogehoge_iosTests' do
  shared_pods
end

target 'hogehoge_iosUITests' do
  shared_pods
end

post_install do | installer |
  require 'fileutils'

  #Pods-acknowledgements.plist
  FileUtils.cp_r('Pods/Target Support Files/Pods-hogehoge_ios/Pods-hogehoge_ios-acknowledgements.plist', 'hogehoge_ios/SupportingFiles/Settings.bundle/Acknowledgements.plist', :remove_destination => true)
end
```

### Error

```
RuntimeError - [!] Xcodeproj doesn't know about the following attributes {"inputFileListPaths"=>[], "outputFileListPaths"=>[]} for the 'PBXShellScriptBuildPhase' isa.
If this attribute was generated by Xcode please file an issue: https://github.com/CocoaPods/Xcodeproj/issues/new
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:321:in `configure_with_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project.rb:262:in `new_from_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:350:in `object_with_uuid'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:300:in `block (2 levels) in configure_with_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:299:in `each'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:299:in `block in configure_with_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:296:in `each'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:296:in `configure_with_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project.rb:262:in `new_from_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:350:in `object_with_uuid'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:300:in `block (2 levels) in configure_with_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:299:in `each'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:299:in `block in configure_with_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:296:in `each'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project/object.rb:296:in `configure_with_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project.rb:262:in `new_from_plist'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project.rb:203:in `initialize_from_file'
/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.7/lib/xcodeproj/project.rb:103:in `open'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/analyzer.rb:918:in `block (2 levels) in inspect_targets_to_integrate'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/analyzer.rb:917:in `each'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/analyzer.rb:917:in `block in inspect_targets_to_integrate'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/analyzer.rb:912:in `inspect_targets_to_integrate'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/analyzer.rb:78:in `analyze'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:243:in `analyze'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:154:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:153:in `resolve_dependencies'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:116:in `install!'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command/install.rb:41:in `run'
/Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:22:in `load'
/usr/local/bin/pod:22:in `<main>'
```

[!] Oh no, an error occurred.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%5B%21%5D+Xcodeproj+doesn%27t+know+about+the+following+attributes+%7B%22inputFileListPaths%22%3D%3E%5B%5D%2C+%22outputFileListPaths%22%3D%3E%5B%5D%7D+for+the+%27PBXShellScriptBuildPhase%27+isa.%0AIf+this+attribute+was+generated+by+Xcode+please+file+an+issue%3A+https%3A%2F%2Fgithub.com%2FCocoaPods%2FXcodeproj%2Fissues%2Fnew&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

Don't forget to anonymize any private data!

```
Looking for related issues on cocoapods/cocoapods...
/Library/Ruby/Gems/2.3.0/gems/gh_inspector-1.1.3/lib/gh_inspector/sidekick.rb:95:in `parse_results': undefined method `map' for nil:NilClass (NoMethodError)
Did you mean?  tap
	from /Library/Ruby/Gems/2.3.0/gems/gh_inspector-1.1.3/lib/gh_inspector/sidekick.rb:34:in `search'
	from /Library/Ruby/Gems/2.3.0/gems/gh_inspector-1.1.3/lib/gh_inspector/inspector.rb:68:in `search_query'
	from /Library/Ruby/Gems/2.3.0/gems/gh_inspector-1.1.3/lib/gh_inspector/inspector.rb:62:in `search_exception'
	from /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/user_interface/error_report.rb:119:in `search_for_exceptions'
	from /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:67:in `report_error'
	from /Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:396:in `handle_exception'
	from /Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:337:in `rescue in run'
	from /Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:324:in `run'
	from /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:52:in `run'
	from /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/bin/pod:55:in `<top (required)>'
	from /usr/local/bin/pod:22:in `load'
	from /usr/local/bin/pod:22:in `<main>'
```

# エラーと向き合う

なっがｗなっげぇｗｗｗｗ草生えない（真顔  
俺は依存してるライブラリを入れたいだけなんじゃぁぁぁあああ(´・ω・｀)

```
RuntimeError - [!] Xcodeproj doesn't know about the following attributes {"inputFileListPaths"=>[], "outputFileListPaths"=>[]} for the 'PBXShellScriptBuildPhase' isa.
If this attribute was generated by Xcode please file an issue: https://github.com/CocoaPods/Xcodeproj/issues/new`
```
ここが怪しい（直感  

ってことでググる。「`pod` `install` `RuntimeError` `Xcodeproj` `doesn't` `know` `about` `the` `following` `attributes`」でググる。

# 公式のIssueを確認する

先頭に出てきた公式Issueを要チェックや！（雑なリスペクト

[Xcodeproj doesn't know about the following attributes {"inputFileListPaths"=>[], "outputFileListPaths"=>[]} for the 'PBXShellScriptBuildPhase' isa #7835](https://github.com/CocoaPods/CocoaPods/issues/7835)

`gem update xcodeproj`すると解決すると思うぜ！って
[@peruginni](https://github.com/CocoaPods/CocoaPods/issues/7835#issuecomment-427353266)さんが言ってる。が、直る理由がわからないので一旦ステイ。

# 原因を探す

Issueをちゃんと追うと、[dnkoutso](https://github.com/CocoaPods/CocoaPods/issues/7835#issuecomment-397523764)さんが「its simple, any Xcode 10 project that has a new script phase that has input file list or output file list shows this warning.」って仰ってる。要するにXcode10でプロジェクトを作るとinputFileListPathsとoutputFileListPathsが空だとそのまま空の配列が出力されてしまって、それが原因だよ（意訳）。とのこと。

原因はわかった。で、どうしたら良いんだ...諸事情により`gem update xcodeproj`の手段は使わないようにしたい。

# 解決策を探す

ここで`CocoaPods 1.6.0.rc.1 is available.`を思い出す。

バージョンを指定しつつ更にググる。

[CocoaPods with Xcode 10 RuntimeError Xcodeproj doesn't know about the following attributes](https://stackoverflow.com/questions/52199554/cocoapods-with-xcode-10-runtimeerror-xcodeproj-doesnt-know-about-the-following)

世の中同じことで悩む人はいるんだなぁ...という事で

```
This is a known bug introduced by Xcode 10 which fixed in CocoaPods 1.6.0. Right now (Jan 2019) it's in beta, so you can install it with

> sudo gem install cocoapods --pre
```

＼ いそのー！1.6使えば解決できるってさー！ ／

# 再トライ

インストール済みのCocoaPodsを全てアンイストールして（ここで1.5.0が別で入ってることに気が付く）、`sudo gem install cocoapods --pre`で1.6.0.rc.2をインストール。`pod setup` `pod install`共に問題無く終了。先人達は凄い。

# さいごのまとめ

やっぱ公式だよ。