こんにちは。たなかです。
今日も今日とてIonicでアプリ開発させてもらってます。
以下のエラーでハマったので今回も備忘録メモとして共有しますね。
もくじ
症状
$ ionic cordova platform add ios –verbose 実行時に以下のエラーに遭遇しました。
Failed to install 'phonegap-plugin-push': undefined
CordovaError: Promise rejected with non-error: 'CocoaPods was not found. Please install version 1.0.1 or greater from https://cocoapods.org/'
at cli.catch.err (/usr/local/lib/node_modules/cordova/bin/cordova:30:15)
at process._tickCallback (internal/process/next_tick.js:68:7)
[ERROR] An error occurred while running subprocess cordova.
cordova platform add ios --verbose --save exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
ionic:utils-process onBeforeExit handler: process.exit received +0ms
ionic:utils-process onBeforeExit handler: running 1 functions +0ms
ionic:utils-process onBeforeExit handler: exiting (exit code 1) +33ms
CocoaPodsが見つからないために、phonegap-plugin-pushのインストールに失敗した、みたいに見えますね。
仰る通り、CocoaPodsが不具合起こしてるっぽかったので素直に対処します。
解決方法
以下のコマンドを実行。sudoつけないとpermissionで怒られたりしました。
$sudo gem install cocoapods
完了したら以下のコマンドを実行。
$pod setup
※完了まで結構時間かかりました。私の環境だと15~20分くらいだったかと。
Setting up CocoaPods master repo
$ /usr/local/bin/git clone https://github.com/CocoaPods/Specs.git master --progress
Cloning into 'master'...
remote: Enumerating objects: 84, done.
remote: Counting objects: 100% (84/84), done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 3142005 (delta 20), reused 24 (delta 8), pack-reused 3141921
Receiving objects: 100% (3142005/3142005), 648.90 MiB | 652.00 KiB/s, done.
Resolving deltas: 100% (1872985/1872985), done.
Checking out files: 100% (328686/328686), done.
CocoaPods 1.7.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.7.0.rc.1
Setup completed
時間の割には短いログが出力され、Setup completedです。
もう一度platformをaddすると成功しました! やったぜ!
まとめ
今回のはエラー解消というよりは、シンプルに必要なものが足りてなかったというミスでしたね。
テクニカルなところよりも、こういう環境周りとかbuild関連で時間かかること多いんですよね。
短いですが、今回はここまで。