Help us understand the problem. What is going on with this article?

Cocoapods 1.0.0で注意すること

More than 1 year has passed since last update.

はじめに

Cocoapodsが5月10日に1.0.0をリリースしました。
そこでチーム開発をしていたプロジェクトでエラーが発生したので、共有いたします。

エラー内容

Cocoapodsにターゲット指定が必要になりました。
これまでPodfileは以下のように記載していました。

Podfile
platform :ios,'9.0'
use_frameworks!
pod 'SwiftDate'
pod 'SlideMenuControllerSwift'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'Firebase/Database'
pod 'Firebase'
pod 'Firebase/Auth'

これでFirebaseがアップデートされたことでpodのほうもアップデートしようと、pod updateのコマンドを打ったところ以下のようなエラーが表示されてしまいました。

[!] The dependency `SwiftDate` is not used in any concrete target.
The dependency `SlideMenuControllerSwift` is not used in any concrete target.
The dependency `Firebase/Core` is not used in any concrete target.
The dependency `Firebase/Messaging` is not used in any concrete target.
The dependency `Firebase/Database` is not used in any concrete target.
The dependency `Firebase` is not used in any concrete target.
The dependency `Firebase/Auth` is not used in any concrete target.

つまり、どのターゲットでもpodが使われていませんよと

エラー対策

そこでターゲット指定を行いました。
Podfileにおいては、Podは以下のような形式でターゲットを指定します。

platform :ios,'9.0'
use_frameworks!
target 'ターゲット先(プロジェクト名やプロジェクトのテスト名)' do
# ここでpod 'hoge'と記載する
end

今回ではこのようにしました。

Podfile
platform :ios,'9.0'
use_frameworks!
target 'ターゲット先(プロジェクト名やプロジェクトのテスト名' do
pod 'SwiftDate'
pod 'SlideMenuControllerSwift'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'Firebase/Database'
pod 'Firebase'
pod 'Firebase/Auth'
end

このようなことを防ぐために

ターゲットやオプション(platform指定など)を手書きするのは、ミスが起こりやすいですし、なにより面倒くさい。そこで、Cocoapodsにはpod initという便利なコマンドが用意されていますので、かならず使いましょう。
pod initを打つことで、Podfileが自動で生成され、さまざまなオプションもコメントアウトの形で提供されるので、絶対に使いましょう。

以下が、pod initを打つことで生成されるPodfileです

Podfile
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'

target 'Sample' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Sample

  target 'SampleTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'SampleUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

今回はSampleという名前のプロジェクトでpod initを行いました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした