2017年2月6日月曜日

CocoaPodsでAbort trap: 6が発生した場合の対処方法。

オフィス狛 技術部です。

iOSアプリのアーカイブ(リリース準備)作業をしている時に、
ある開発端末で「pod update」を行なったら、「Abort trap: 6」が発生し、
Rubyが強制終了しました。
$ pod update
Analyzing dependencies
Downloading dependencies
Installing xxxxxx (1.1.11)
Installing yyyyyy (2.2.22)
Generating Pods project
Abort trap: 6

エラーの詳細(レポート)を見ると、
Application Specific Information:
abort() called
terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error getting value for key 'initializationClass' of extension 'Xcode.DVTKitDFRSupport.Initializer' in plug-in 'com.apple.dt.IDE.DVTKitDFRSupport''
ProductBuildVersion: 8B62
と、色々出ていますが、
こういう時は、大抵「CocoaPods」のバージョンが古い事が原因だったりします。
(実際、エラーが発生した端末では、しばらく開発作業していませんでした。)

何はともあれ、CocoaPodsのバージョンアップをしてみます。
$ sudo gem update cocoapods
Updating installed gems
Updating cocoapods
Fetching: ruby-macho-0.2.6.gem (100%)
Successfully installed ruby-macho-0.2.6
Fetching: fourflusher-2.0.1.gem (100%)
Successfully installed fourflusher-2.0.1
Fetching: nanaimo-0.2.3.gem (100%)
Successfully installed nanaimo-0.2.3
Fetching: claide-1.0.1.gem (100%)
Successfully installed claide-1.0.1
Fetching: CFPropertyList-2.3.5.gem (100%)
Successfully installed CFPropertyList-2.3.5
Fetching: xcodeproj-1.4.2.gem (100%)
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/xcodeproj
・・・エラーになってしまいました。
これは、macのOSがEl Capitan以降の場合、rootlessというセキュリティ機能があり、
一部のディレクトリ(/usr、/sbin、/System)に対しては、
root権限でも編集出来なくなっているからです。

仕方無いので、CocoaPodsを再インストールしたいと思います。
まずはアンイストールから。
$ sudo gem uninstall cocoapods
Remove executables:
 pod, sandbox-pod

in addition to the gem? [Yn]  Y
Removing pod
Removing sandbox-pod
Successfully uninstalled cocoapods-1.1.0.beta.1

続いて再インストールします。
インストールするディレクトリを指定しているところがポイントです。
$ sudo gem install -n /usr/local/bin cocoapods
Successfully installed xcodeproj-1.4.2
Fetching: molinillo-0.5.5.gem (100%)
Successfully installed molinillo-0.5.5
Fetching: cocoapods-trunk-1.1.2.gem (100%)
Successfully installed cocoapods-trunk-1.1.2
Fetching: cocoapods-downloader-1.1.3.gem (100%)
Successfully installed cocoapods-downloader-1.1.3
Fetching: cocoapods-deintegrate-1.0.1.gem (100%)
Successfully installed cocoapods-deintegrate-1.0.1
Fetching: cocoapods-core-1.2.0.gem (100%)
Successfully installed cocoapods-core-1.2.0
Fetching: cocoapods-1.2.0.gem (100%)
Successfully installed cocoapods-1.2.0
Parsing documentation for xcodeproj-1.4.2
Installing ri documentation for xcodeproj-1.4.2
Parsing documentation for molinillo-0.5.5
Installing ri documentation for molinillo-0.5.5
Parsing documentation for cocoapods-trunk-1.1.2
Installing ri documentation for cocoapods-trunk-1.1.2
Parsing documentation for cocoapods-downloader-1.1.3
Installing ri documentation for cocoapods-downloader-1.1.3
Parsing documentation for cocoapods-deintegrate-1.0.1
Installing ri documentation for cocoapods-deintegrate-1.0.1
Parsing documentation for cocoapods-core-1.2.0
Installing ri documentation for cocoapods-core-1.2.0
Parsing documentation for cocoapods-1.2.0
Installing ri documentation for cocoapods-1.2.0
7 gems installed
無事に再インストール完了しました。
では、改めて「pod update」します。
$ pod update
Update all pods
Re-creating CocoaPods due to major version update.
Updating local specs repositories
Analyzing dependencies
Downloading dependencies
Installing xxxxxx (1.1.11)
Installing yyyyyy (2.2.22)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 9 dependencies from the Podfile and 11 total pods installed.
無事に成功しました。

急いでいる時程、こういう類のエラーが出ると焦ってしまいますが、
急がば回れで対応すると、案外あっさり解決するものです。


, ,

0 件のコメント:

コメントを投稿