#author("2018-02-26T16:02:33+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 *運用 [#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でいうところのソリューションファイルみたいなもんか)ができるので、今後はそれを使って作業。 **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を再実行してみる。