English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Eins, Was ist CocoaPods
1、Warum brauchen wir CocoaPods
Bei der iOS-Entwicklung kann man nicht umhin, Drittanbieter-Open-Source-Bibliotheken zu verwenden, wie z.B. SBJson, AFNetworking, Reachability usw. Beim Einsatz dieser Bibliotheken ist in der Regel erforderlich:
Laden Sie die Quelldateien der Open-Source-Bibliotheken herunter und fügen Sie sie in das Projekt ein
Fügen Sie Frameworks hinzu, die von den Open-Source-Bibliotheken verwendet werden, in das Projekt ein
Lösen Sie Abhängigkeitsbeziehungen zwischen Open-Source-Bibliotheken und Open-Source-Bibliotheken sowie zwischen Open-Source-Bibliotheken und Projekten, überprüfen Sie doppelte Frameworks hinzufügen usw.
Wenn Open-Source-Bibliotheken aktualisiert werden, müssen die in dem Projekt verwendeten Open-Source-Bibliotheken gelöscht und die drei vorherigen Schritte erneut ausgeführt werden. Der Kopf wird sofort groß...
Seit der Einführung von CocoaPods ist es nicht mehr erforderlich, diese komplexen Aufgaben selbst zu erledigen. Es genügt, einige Konfigurationsarbeiten durchzuführen, und CocoaPods erledigt alles für uns!
2、Was ist CocoaPods
CocoaPods ist ein Werkzeug, das uns hilft, Drittanbieter-Abhängigkeitsbibliotheken zu verwalten. Es kann Abhängigkeitsbeziehungen zwischen Bibliotheken lösen, die Quelldateien der Bibliotheken herunterladen und gleichzeitig durch Erstellen eines Xcode-Workspaces diese Drittanbieter-Bibliotheken mit unserem Projekt verbinden, um sie für die Entwicklung zu verwenden.
Das Ziel der Verwendung von CocoaPods ist es, uns zu ermöglichen, Drittanbieter-Open-Source-Bibliotheken automatisiert, zentral und intuitiv zu verwalten.
Zwei, Installation von CocoaPods
1、Installation
CocoaPods wird in Ruby implementiert und um es zu verwenden, benötigen Sie zunächst eine Ruby-Umgebung. Zum Glück kann OS X Systemstandard bereits Ruby ausführen, daher müssen wir nur die folgenden Befehle ausführen:
$ sudo gem install cocoapods
CocoaPods wird als Ruby gem-Paket installiert. Während des Installationsvorgangs könnte es uns fragen, ob wir rake aktualisieren möchten, geben Sie y ein. Dies liegt daran, dass das rake-Gem-Paket während des Installationsvorgangs eine genauere Überprüfung durchführt und es kann neue Versionen geben, wenn neue Versionen verfügbar sind.
Wenn der Installationsvorgang beendet ist, führen Sie den Befehl aus:
$ pod setup
Wenn es keine Fehlermeldungen gibt, bedeutet dies, dass der gesamte Installationsvorgang erfolgreich war!
2、Mögliche Probleme während der Installation
①Nachdem Sie den Installationsbefehl ausgeführt haben, gibt es keine Reaktion für eine halbe Stunde
Dies könnte daran liegen, dass die Standardquelle von Ruby cocoapods.org verwendet, und der Zugriff auf diese Adresse in China könnte manchmal ein Problem darstellen. Eine Lösung, die im Internet vorgeschlagen wird, ist, den Fernen in Taobaos zu ersetzen, und der Ersatz erfolgt wie folgt:
$ gem sources --remove https://rubygems.org/ //Nachdem Sie auf die Reaktion gewartet haben, geben Sie die folgenden Befehle ein $ gem sources -a http://ruby.taobao.org/
Um zu überprüfen, ob der Ersatz erfolgreich war, können Sie ausführen:
$ gem sources -l
Der normale Ausgabe ist:
*** CURRENT SOURCES *** http://ruby.taobao.org/
②Das gem-Version ist zu alt
Das Paket gem ist das Standardpaket zur Verwaltung von Ruby-Bibliotheken und Programmen, und wenn seine Version zu niedrig ist, könnte dies auch zu einem Installationsfehler führen. Die natürliche Lösung ist, gem zu aktualisieren, und Sie können dies durch Ausführen des folgenden Befehls tun:
$ sudo gem update --system
③Wenn Sie beim Ausführen des Befehls 'pod setup' nach dem Abschluss der Installation einen Fehlermeldung erhalten:
/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 6 total gem(s) (Gem::LoadError) from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec' from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem' from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'
Dies ist das Problem der Pfadkonfiguration, das durch Ausführen von: gelöst werden kann:
$ rvm use ruby-1.9.3-p448
Dieses Problem lösen.
3、CocoaPods aktualisieren
Das Upgrade ist einfach, führen Sie einfach den Installationsbefehl erneut aus:
$ sudo gem install cocoapods
Es sollte beachtet werden, dass wenn sudo beim Installieren verwendet wurde, der gleiche Schlüsselwort beim Upgrade ebenfalls verwendet werden muss, andernfalls könnte das Problem der nicht übereinstimmenden Pfade nach dem Upgrade erneut auftreten.
Dritter Teil: Die Verwendung von CocoaPods
Wenn alles zuvor erfolgreich war, können Sie nun die Wunder von CocoaPods erleben. Dies erfordert folgende Schritte:
Um diesen Prozess zu demonstrieren, habe ich ein Projekt namens CocoaPodsTest erstellt.
1、Erstellen Sie das Podfile
Alles bei CocoaPods beginnt mit einer Datei namens Podfile. Wir müssen diese Datei zunächst erstellen. Es ist meine Gewohnheit, den Befehlszeileninterpreter zu verwenden, und ich mache es so:
$ cd /Users/wangzz/Desktop/CocoaPodsTest $ touch Podfile
Zunächst betreten Sie das Wurzelverzeichnis des Projekts und erstellen Sie eine leere Datei Podfile. Der Verzeichnisstruktur des erstellten Verzeichnisses ist wie im folgenden Bild zu sehen:
(PS: Die Datei Podfile kann auch nicht im Wurzelverzeichnis des Projekts abgelegt werden, was etwas umständlicher ist. Dies wird in dem nächsten Artikel erläutert, bitte achten Sie darauf.)
2、Bearbeiten Sie das Podfile
Nach Bedarf können wir im Podfile die erforderlichen Drittanbieterbibliotheken eingeben. Nehmen wir die Bibliotheken SBJson, AFNetworking und Reachability als Beispiel. Der Inhalt meines Podfile ist wie folgt:
platform :ios pod 'Reachability', '~> 3.0.0' pod 'SBJson', '~> 4.0.0' platform :ios, '7.0' pod 'AFNetworking', '~> 2.0'
3、Führen Sie den Importbefehl aus
Nachdem alle Vorbereitungen abgeschlossen sind, beginnen Sie mit dem Importieren der Drittanbieterbibliotheken:
$ cd /Users/wangzz/Desktop/CocoaPodsTest $ pod install
Zunächst betreten Sie das Wurzelverzeichnis des Projekts und führen Sie den Befehl pod install aus. CocoaPods beginnt, für uns die Herunterladung der Quelldateien, die Konfiguration der Abhängigkeiten und die Einführung der erforderlichen Frameworks usw. durchzuführen. Das Ausführungsresultat des Befehls ist wie folgt ausgegeben:
Analyzing dependencies Downloading dependencies Installing AFNetworking (2.1.0) Installing JSONKit (1.5pre) Installing Reachability (3.0.0) Generating Pods project Integrating client project [!] From now on use `CocoaPodsTest.xcworkspace`.
Das bedeutet, dass der Befehl pod install erfolgreich ausgeführt wurde. Sehen wir uns nun die Veränderungen im Wurzelverzeichnis des Projekts an, wie im folgenden Bild zu sehen ist:
Man kann sehen, dass unter dem Wurzelverzeichnis des Projekts drei neue Elemente hinzugekommen sind: CocoaPodsTest.xcworkspace, die Datei Podfile.lock und der Ordner Pods.
(PS:篇幅有限,Podfile.lock文件会放到系列文章的下一篇介绍,敬请关注。)
再看看刚才执行完pod install命令打印出来的内容的最后一行:
[!] From now on use `CocoaPodsTest.xcworkspace`.
提示我们从现在起,我们需要使用CocoaPodsTest.xcworkspace文件来开发。
对于工程发生的变化,有几点需要说明:
第三方库会被编译成静态库供我们正真的工程使用
CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。
我们的工程和第三方库所在的工程会由一个新生成的workspace管理
为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。
原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。
打开CocoaPodsTest.xcworkspace,界面如下:
工程的目录结构还是非常明显的。
在项目中引用刚才添加的第三方库的头文件,执行编译操作,果断成功!
至此,CocoaPods使用篇告一段落,接下来打算再用一个篇幅介绍CocoaPods稍微深层次的东西,敬请关注。
四、参考资料
1、http://code4app.com/article/cocoapods-install-usage
2、http://cocoapods.org/