🐞

Podfileの概要とエラー対処まとめ 【Flutter / Dart / CocoaPods】

2021/10/02に公開

はじめまして、ますみです!

株式会社Galirage(ガリレージ)という「生成AIに特化して、システム開発・アドバイザリー支援・研修支援をしているIT企業」で、代表をしております^^

自己紹介.png

Flutterでflutter runflutter build iospod installなどのコマンドを実行した際、podsがうまく入らないことがあります。

私はここで少しだけ苦戦したため、他の困っている方々に向けてログを残します🦅

CocoaPodsとは?

CocoaPodsとは、iOSのスマホアプリやmacOSのデスクトップアプリなどを作る際の「ライブラリ管理をしてくれるツール」です。余談ですが、macOSに初期搭載されているrubyのパッケージ(gem)の一つです。また、podはCocoaPodsのコマンドを実行する際のコマンドになります(一つ一つのライブラリのことも指します)。

https://qiita.com/satoken0417/items/479bcdf91cff2634ffb1

PodfileとPodfile.lockとは?

CocoaPodsにおけるPodfileとPodfile.lockの意味をまず確認しましょう。
Podfileは「ライブラリのバージョン指定などをするファイル」です。
Podfile.lockは「ロック(固定)されたバージョンの情報が格納されているファイル」です。.lockファイルは、pod initpod install時に自動生成されます。

https://note.com/iga34engineer/n/n12a5404543e1

エラー内容と対処法

具体的なエラー内容は、以下の二つです。

1. Please specify a platformと優しく怒られる 😇

error_01
Error output from CocoaPods:
↳
    [!] Automatically assigning platform `iOS` with version `9.0` on target `Runner` because no platform was
    specified. Please specify a platform for this target in your Podfile. See
    `https://guides.cocoapods.org/syntax/podfile.html#platform`.
  • こちらのバグは、ios/Podfileの2行目の// platform :ios, '9.0'がコメントになっていることが原因のバグです。
  • そのため、コメントを外すと、エラーは消えるため、以下のようにios/Podfileを編集しましょう。
ios/Podfile
# Uncomment this line to define a global platform for your project
-  // platform :ios, '9.0'
+  platform :ios, '9.0'
  • もしもios/Podfile.lockがある場合は、以下のコマンドも実行しましょう。
% cd ios
% rm Podfile.lock
% sudo gem install cocoapods
Passwords: {ログイン用のパスワードを入力}
% pod repo update
% pod update
% pod install

2. CocoaPods could not find compatible versions for pod "cloud_firestore"と少し厳しめに怒られる 😲

error_02
% flutter build ios
Running "flutter pub get" in flutter_project...                       858ms
Building dev.masumi.flutterProject for device (ios-release)...
Automatically signing iOS for device deployment using specified development team in Xcode project: F39HGSSES
Running pod install...                                           1,513ms
CocoaPods' output:
↳
      Preparing

    Analyzing dependencies

    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    Fetching external sources
    -> Fetching podspec for `Flutter` from `Flutter`
    -> Fetching podspec for `cloud_firestore` from `.symlinks/plugins/cloud_firestore/ios`
    cloud_firestore: Using Firebase SDK version '8.7.0' defined in 'firebase_core'
    -> Fetching podspec for `cloud_functions` from `.symlinks/plugins/cloud_functions/ios`
    cloud_functions: Using Firebase SDK version '8.7.0' defined in 'firebase_core'
    -> Fetching podspec for `firebase_auth` from `.symlinks/plugins/firebase_auth/ios`
    firebase_auth: Using Firebase SDK version '8.7.0' defined in 'firebase_core'
    -> Fetching podspec for `firebase_core` from `.symlinks/plugins/firebase_core/ios`
    firebase_core: Using Firebase SDK version '8.7.0' defined in 'firebase_core'
    -> Fetching podspec for `url_launcher` from `.symlinks/plugins/url_launcher/ios`

    Resolving dependencies of `Podfile`
      CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in
      repo update
    [!] CocoaPods could not find compatible versions for pod "cloud_firestore":
      In Podfile:
        cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)

    Specs satisfying the `cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)` dependency were found, but
    they required a higher minimum deployment target.
  • このエラーは、cloud_firestoreios: 9.0に対応していないということがエラーでした。
  • Podfileのiosのバージョンを上げるとpod installのプロセスを通過できます。
ios/Podfile
# Uncomment this line to define a global platform for your project
-  platform :ios, '9.0'
+  platform :ios, '12.0'

最後に

最後まで読んでくださり、ありがとうございました!
この記事を通して、少しでもあなたの学びに役立てば幸いです!

おまけ①:Raggle

RAGの精度改善に挑戦しませんか?

Raggleにて、「法務RAGシステムの性能改善ハッカソン」を開催中です!(10月20日に募集締切)

Raggleは、RAGの性能改善技術を競い合い、AIエンジニアのスキルアップを支援するプラットフォームです🥇

優勝者(GOLD🥇)の賞金は、なんと30万円!!!

SILVERは10万円、BRONZEでも5万円の賞金を用意しています!

また、参加賞として、大会終了後に「RAG精度改善ハンドブック」を贈呈予定なため、初学者の方もぜひ挑戦してみてください 🔰

みなさん、奮ってご参加ください🔥

※ 生成AIエンジニアの権利を守るため、投稿されたソースコードの著作権は、投稿者に帰属する規約としているため、その点もご安心ください◎

▼ エントリーはこちら ▼
https://raggle.jp/competition/29676d73-5675-4278-b1a6-d4a9fdd0a0ba

おまけ②:書籍出版のお知らせ

ついに『AIとコミュニケーションする技術(インプレス出版)』という書籍の事前予約が始まりました🎉

これからの未来において「変わらない知識」を見極めて、生成AIの業界において、読まれ続ける「バイブル」となる本をまとめ上げました。

かなり自信のある一冊なため、もしもよろしければ、ご一読いただけますと幸いです^^

▼ Amazonの事前予約はこちらから ▼
https://amzn.to/3ME8mLF

おまけ③:生成AIアカデミー

より専門的な「生成AIエンジニア人材」を目指しませんか?

そんな方々に向けて、「生成AIアカデミー(旧:生成AIエンジニア塾)」というプログラムを始めました🎉

最終的なゴールとして、『エンタープライズ向けの生成AIシステムを構築するためのスキルを習得し、大手案件で活躍できる人材』を目標とします。

また、一人一人にしっかりと向き合って、メンタリングをできるようにするため、現在メンバーの人数制限をしております。本気度やスキルレベルの高い人から、順番にご案内しております。

▼ 登録はこちらから ▼
https://bit.ly/generative_ai_engineer_school_by_zenn

おまけ④:AI Newsletter for Biz

最新のAIニュースの情報を収集しませんか?

AI Newsltter for Bizは、ビジネスパーソン向けに「AIニュース」を定期配信する完全無料のニュースレターです📩

一人でも多くの方にとって、「AI人材としてのスキルアップ」につながれば幸いです^^

また、現在、登録者限定で「明日から使える 無料AIサービス3選」のPDFを配布中です 🎁
※ ご登録完了のメールに、PDFリンクを添付いたします。

▼ 登録はこちらから ▼
https://bit.ly/ai_newsletter_for_biz_zenn

おまけ⑤:生成AIの仕事をしたい仲間を募集中 🤝

弊社Galirageでは常に、40-50件ほどの生成AI案件が走っております。

そして、ほとんどが「生成AIの案件(RAGシステム開発 / 精度改善の研究開発など)」の仕事になります!

かなり人手が不足しており、以下のポジションの仲間を募集しています💪

  • RAGエンジニア(RAG / LangChain / Python)
  • バックエンドエンジニア(Python / FastAPI)
  • フロントエンジニア(Next.js / TypeScript)
  • Azureエンジニア(AOAI / AI Search)
  • UI/UXデザイナー
  • 生成AIリサーチャー(研究開発 / 論文執筆)
  • 生成AIコンサルタント
  • PM / PMO

ご興味がある方は、下記のフォームよりお気軽にご連絡ください!

https://forms.gle/XMd19irZU4Fi7VAQ9

採用基準は下記の通りです。
  • 平日の日中に動ける方だと嬉しいですが、週8時間くらいの副業でもOKです!
  • 開始時期は、直近だと嬉しいですが、遠い未来でもOKです!まずはカジュアルに話しましょう😊
  • 年齢は不問です!現状は、平均年齢は30歳前後の会社です!
  • 「スキルセット」よりも「カルチャーマッチ・仕事への姿勢・ものづくりへのワクワク」を重視します。
    • 10月には新しく10名採用しました。
    • その内、エンジニア経験が3年未満の方は、4名いました。
    • スキルについては、ジョインした後に、必要に応じて、キャッチアップする時間を作ります。
    • 弊社は、正社員7名、業務委託80名の組織で構成されており、業務委託の仲間に支えられているため、正社員と業務委託の間にあまり差をつけていません。
    • 契約形態に関わらず、一緒に働く仲間として受け入れたその日から、大切な仲間です!
    • 新卒や転職の正社員採用もしていますが、業務委託での仕事を通して、お互いにWin-Winだと判断できた方のみを採用しています。
    • 私自身、フリーランスを5年間やっていたため、個人事業主と正社員のメリデメは両方の立場から理解しています。
  • 人手不足ではあるものの、採用基準をかなり厳しくしています。目の前の売上よりも、カルチャーのマッチする人だけを入れることにこだわっています。
  • ちなみに、弊社のリーダーを紹介したプロフィールページはこちらです!
    • Galirageに、本当に素敵な方が多いことは、保証します!

Discussion