【CocoaPods】挫折しながら学ぶ!素人のiOSアプリ開発 part2【swift】
「【CocoaPods】挫折しながら学ぶ!素人のiOSアプリ開発 part1【swift】」で挫折したCocoaPods!もう一度挑戦してみたいと思います。
今度は基本に立ち返って、まずは簡単なライブラリを導入してみます。
1)Xcodeで新しいプロジェクトを作成します。
2)ターミナルからプロジェクトフォルダへ移動し「pod init」とコマンドを入力。「Podfile」という名前の設定ファイルが生成されます。
3)Podfileの中身はこんな感じです。
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'Note2' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for Note2
target 'Note2Tests' do
inherit! :search_paths
# Pods for testing
end
target 'Note2UITests' do
inherit! :search_paths
# Pods for testing
end
end
「Note2」というのは、僕がXcodeで作ったプロジェクトの名前です。ちなみに前回失敗したプロジェクトは「Note1」でした。僕が失敗するたびに第2、第3、第4のNoteが増えていきます。Note10くらいまでにはどうにか成功させたいところですね。
4)githubで面白そうなライブラリを探します。
前回のプロジェクトでは「Bridging-Header」なるものを作成しなければならず、ここで挫折してしまいました。
今回は「Bridging-Header」を作成しなくてもすむライブラリを選びたいと思います。
てことで、今回は
GitHub - keitaoouchi/MarkdownView at ioscookies.com
こちらのライブラリを選びました。
マークダウン表示をしてくれるライブラリだと思います。
僕はマークダウンが大好きなので、マークダウンをアプリで使えたら嬉しいですね。
ライブラリ探しに便利なサイト
僕が今回ライブラリをさがすために使用したサイトが「iOS Cookies」というサイトになります。ありがとうございます!
とっても綺麗なサイトですね。カテゴリーごとにランキング順でライブラリを探すことができて便利です。
5)Podfileにライブラリ名を追加します。
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'Note2' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for Note2
pod "MarkdownView" ←ここに追加しています
target 'Note2Tests' do
inherit! :search_paths
# Pods for testing
end
target 'Note2UITests' do
inherit! :search_paths
# Pods for testing
end
end
追加できたら、Podfileを保存します。
ターミナルで「pod install」とコマンドを入力することで、ライブラリがプロジェクトにインストールされます。
・・・なんか警告が表示されました。
[!] Automatically assigning platform `ios` with version `11.3` on target `Note2` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
「バージョンの指定をしてないので、自動的に最新版をインストールしましたよ」とのことらしいです。最新版で問題ありません。
バージョンの指定というのは、Podfileに追加した1行を
「pod "MarkdownView" , '~> 4.0'」
このように書くことで指定ができるみたいですね。上記の場合は、swift4.0以上4.1未満という意味?自信がない。
プロジェクトのバージョンが古い場合に、ライブラリのバージョンを一致させるために使用したりする書き方なんでしょうか。
よく分からないので、まぁこれはこのままで。
6)いい感じにライブラリがインストールできたようです。・・・できてるよね?
7)githubのページに使い方が書いてあるので、それを参考にプログラムコードを書きます。
import MarkdownView
let md = MarkdownView()
md.load(markdown: "# Hello World!")
シンプル!
「MarkdownView」をインポートして、「# Hello World!」というマークダウンを表示しようとしているみたいですね。
早速この通りにやってみました。
すると
エラー!
「MarkdownView」のインポートで失敗してるみたいですね。「そんなモジュールないよ」と怒られています。
いろいろ調べてみたところ、どうもフレームワークがうまく読み込めていないようです。
「framework not found MarkdownView」というエラーが出ているので、フレームワークの仕業だと思います。
プロジェクトの設定ファイルに「Linked Frameworks and Libraries」という欄があるのですが、そこにちゃんとPodsのフレームワークが指定されて読み込みされているようにみえるんですが。
スキーマの設定を見たり、pod updateしたり、いろいろしたんですがダメでした。
挫折!!!
技術を身につけた未来の僕に託します。
追記:解決しました。
非常に初歩的なミスをやらかしていました。
どうやらCocoaPodsでインストールしたライブラリは「プロジェクト名.xcodeproj」ではなく「プロジェクト名.xcworkspace」というファイルから開かないとビルドができないようです。
原因がわかってしまえば何のことはないですね!
そして再び挫折へ
「.xcworkspace」から開くことで無事ビルドは通りましたが、今度は具体的な使い方がよくわからなかったので再び挫折しました。
本当に申し訳ない・・・。