Takahiro Octopress Blog

-1から始める情弱プログラミング

CocoaPods v1.0.0のメモ

CocoaPodsをv1.0.0にしたらエラーが出てしまった!

さて、本日はメモ書きです。
先日、筆者はCocoaPodsのバージョンを 1.0.0 にアップデートしました。
で、早速、pod installを実行してみたところ、下記のようなエラーが…

1
2
3
4
[i] he dependency `AFNetworking (~> 2.6.3)` is not used in any concrete target.
The dependency `CocoaLumberjack (~> 1.9.2)` is not used in any concrete target.
The dependency `MagicalRecord (~> 2.3.2)` is not used in any concrete target.
...

おっと、何だ何だ??となったわけですが、ググってみたらすぐにわかりました。
どうやら、Targetにインストール対象を定義することがMUSTになったようなのです。

よって、

1
2
3
pod 'AFNetworking', '~>2.6.3'
pod 'CocoaLumberjack', '~> 1.9.2'
pod 'MagicalRecord', '~>2.3.2'

と書いていたものを

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
target 'MyProject' do
  pod 'AFNetworking', '~>2.6.3'
  pod 'CocoaLumberjack', '~> 1.9.2'
  pod 'MagicalRecord', '~>2.3.2'
end

target 'MyProjectTests' do
  pod 'AFNetworking', '~>2.6.3'
  pod 'CocoaLumberjack', '~> 1.9.2'
  pod 'MagicalRecord', '~>2.3.2'
end

target 'MyProjectUITests' do
  pod 'AFNetworking', '~>2.6.3'
  pod 'CocoaLumberjack', '~> 1.9.2'
  pod 'MagicalRecord', '~>2.3.2'
end

のように具体的に指定することが必要となります。
しかし、共通しているインストール対象を何度も書くのは無駄なので…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def common_pods
  pod 'AFNetworking', '~>2.6.3'
  pod 'CocoaLumberjack', '~> 1.9.2'
  pod 'MagicalRecord', '~>2.3.2'
end

target 'MyProject' do
  common_pods
end

target 'MyProjectTests' do
  common_pods
end

target 'MyProjectUITests' do
  common_pods
end

と簡略化することができます。便利ですね!
ということで今更かつ簡単なメモ書きでした。

Comments