SwiftUIの基本を身につけたい方はこちら

【CocoaPods】pod initでエラー:Unknown object version.の解決方法

久々にpod initしたらエラーになっちゃいました。。その原因と解決方法をここに記載しておきます。

エラー内容

pod initをしたら、以下のようなエラーが表示された。

――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

### Command

```
/usr/local/bin/pod init
```

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?


### Stack

```
   CocoaPods : 1.10.1
        Ruby : ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
    RubyGems : 3.0.3
        Host : macOS 11.5.2 (20G95)
       Xcode : 13.0 (13A233)
         Git : git version 2.30.1 (Apple Git-130)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
Repositories : trunk - CDN - https://cdn.cocoapods.org/
```

### Plugins

```
cocoapods-deintegrate : 1.0.4
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.1.0
cocoapods-trunk       : 1.5.0
cocoapods-try         : 1.2.0
```

### Error

```
RuntimeError - [Xcodeproj] Unknown object version.
/Library/Ruby/Gems/2.6.0/gems/xcodeproj-1.19.0/lib/xcodeproj/project.rb:227:in `initialize_from_file'
/Library/Ruby/Gems/2.6.0/gems/xcodeproj-1.19.0/lib/xcodeproj/project.rb:112:in `open'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command/init.rb:41:in `validate!'
/Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:333:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'
```

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

[!] Oh no, an error occurred.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%5BXcodeproj%5D+Unknown+object+version.&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...
 - RuntimeError - [Xcodeproj] Unknown object version.
   https://github.com/CocoaPods/CocoaPods/issues/10984 [closed] [12 comments]
   2 weeks ago

 - Unknown object version
   https://github.com/CocoaPods/CocoaPods/issues/10973 [closed] [10 comments]
   5 weeks ago

 - RuntimeError - [Xcodeproj] Unknown object version.
   https://github.com/CocoaPods/CocoaPods/issues/7458 [closed] [21 comments]
   3 weeks ago

and 71 more at:
https://github.com/cocoapods/cocoapods/search?q=%5BXcodeproj%5D%20Unknown%20object%20version.&type=Issues&utf8=✓

原因

長ったらしいエラーだが、一つ一つ上から読んでみると、

Unknown object version.

不明なバージョンだと書いてある。。

さらに、親切?でちゃんと参考サイトも載ってるのでみてみると、

https://github.com/CocoaPods/CocoaPods/search?q=%5BXcodeproj%5D+Unknown+object+version.&type=Issues

This is a very old version of cocoapods you are using and xcodeproj gem.
引用元:github-(Unknown object version · Issue #10973 · CocoaPods/CocoaPods)

つまり、バージョンが古いということがわかった。

解決方法

ただ単にCocoaPodsのバージョンをアップデートする。

sudo gem update cocoapods

で、さらにアップデートした後は、setupもした方がいいらしい。

pod setup

これでエラーは解決できました。

ちなみに、会社のプロジェクトでも同じエラーが出てしまって、同じ手順で行ったが、うまくいかなかった。
理由は、そもそもcocoapodsをgemではなくbrewで入れていたため。以下のように、インストールし直した。

brew uninstall cocoapods
brew install cocoapods

まとめ

今回は、バージョンが古かっただけだが、同じような長ったらしいエラー文で、Unknown object version.の部分が違う場合(文字コードがUtf-8じゃない場合?)もあるので、その場合は以下の記事を参考にしてください。

参考 CocoaPodsのこんなエラーUNITRUST

評価