#author("2016-08-23T14:39:06+09:00","default:wikiwriter","wikiwriter")
#author("2022-05-21T04:41:03+00:00","default:src128","src128")
&tag(CocoaPods);
*目次 [#w4f26f16]
#contents

*関連ページ [#ha496f9f]
-[[./自作ライブラリ作成]]

*参考情報 [#add9dc91]
-[[Objective-Cのライブラリ管理ツールCocoaPodsを導入してみた - present:http://tnakamura.hatenablog.com/entry/20120923/cocoapods]]
-CocoaPodsで楽々ライブラリ管理 #iOS #AdventCalendar - Qiita
http://qiita.com/items/66457a0d5fe55877dea1
*何これ [#d903db6f]
-iOS用のライブラリを簡単に入れられるようにするためのツール。
-ruby製。


*インストール [#x23be2b1]
-gemで入れる
 gem install cocoapods
-rbenvの場合rehash
 rbenv rehash
-pod setup実行
 pod setup

*プロジェクトの作成 [#h4ae3fda]
*運用 [#qa6c897b]
**プロジェクトの作成 [#h4ae3fda]
-普通にプロジェクト作る。Xcodeは一端終了。
-pod initによってPodfileを作成する。swiftの場合「 use_frameworks!」が必要。
#pre{{
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'

target 'swift-ios-fmdb-demo' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for swift-ios-fmdb-demo

end
}}
-Podfileを編集し必要なpodを追加。
-podインストール。
 pod install
-*.xcworkspace(VisualStudioでいうところのソリューションファイルみたいなもんか)ができるので、今後はそれを使って作業。

*個別のpodの削除 [#i1d10761]
**podsの更新 [#a57a7ae7]
-Podfileが存在するディレクトリで以下を実行
 pod update

**個別のpodの削除 [#i1d10761]
-[[ios - Remove or uninstall library previously added : cocoapods - Stack Overflow:http://stackoverflow.com/questions/13751147/remove-or-uninstall-library-previously-added-cocoapods]]によると、Podfileから削除したあとで、pod installを再実行すればよいらしい。


*Tips [#u48060f5]
**Podsの一覧を確認 [#fbb2e683]
-pod list またはCocoaPods公式サイトのトップで検索すればよい。

**ソースを修正したい場合はどうするの? [#jbb0e0ea]
-:gitでPodfileが簡単?
-[[Dependency declaration options · CocoaPods/CocoaPods Wiki · GitHub:https://github.com/CocoaPods/CocoaPods/wiki/Dependency-declaration-options]]
-[[Workflow question: changing the source code of a pod - Google グループ:https://groups.google.com/forum/?fromgroups=#!topic/cocoapods/KBDcwT8GHLE]]
-と思ったけど使い方がよくわからず。ローカルにpodspecを作って、Podfileでそれを使うようにした。
 pod 'ActionSheetPicker3', :podspec => './ActionSheetPicker3.podspec'

**プロジェクト名の変更 [#kfc2622e]
-本体のプロジェクトを選択し、ファイルインスペクターのProject Nmaeでプロジェクト名は変更できる。
-もう一回pod installすると新しいプロジェクト名のxcworkspaceが作られるのでそっちを使うようにする。
-Schemeのところに、新しプロジェクト名のSchemeがなかったので、Manage Schemeから手動で追加した。


**MagicalRecordのログをつぶす [#b045cd8f]
-「#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0」を定義すればいいのだが、アプリのほうのpchだとだめ。とりあえずMagicalRecord.hで定義すればいいのだがこの変更はよろしくない。


**Swiftで使う [#d08127c6]
-gem install cocoapods
-pod init
-Podfileを編集。Swiftの場合use_frameworks!をコメントアウト。
#pre{{
# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'demo' do
  pod 'KeychainAccess'
end

target 'demoTests' do

end

target 'demoUITests' do

}}
-pod install。プロジェクト.xcworkspaceのほうを開く。

*トラブルシューティング [#a613f22d]

**pod updateでバージョンがあがらない [#q108091a]
-Podfileで指定しているiOSの指定バージョンより、インストールしようとしているpodファイルで指定されているiOSのバージョンの方が高い可能性がある。Podfileのバージョンを確認する。
#pre{{
platform :ios, '15.0'
}}

**pod updateで「Automatically assigning platform `ios` with version `10.0」 [#vbb2a8ac]
-Podfileでplatformとバージョンを指定すれば良いのだが、デフォルトのPodfileはコメントアウトされているので、指定しなくても良いのかも(警告扱い?)

**pod updateで「target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES`」 [#u30d9dac]
-[[pod install「target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build...」 - Qiita:https://qiita.com/Ryosuke-Hujisawa/items/ca5401c87fc206b3f594]]
-Build Settingsで「ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES」を検索し、otherをクリックして表示された入力ボックスに「$(inherited)」と入力。

** no such module 'XXXXX'が表示される [#e047f3e4]
-pod install実行時に元のXcodeプロジェクトを開いているとだめかも。
-Xcodeプロジェクトを閉じてpod instlalを再実行してみる。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS