はじめに
株式会社アスタリスクでは、iPhone/iPod Touchで使える {barcode | RFID} スキャナー AsReaderをリリースしました。SDK自体は、自社ページで公開していますが、便利なラッパークラスを提供したかったのと、何よりPodFileを用意してターミナルから1行コマンドを実行するだけで準備できるのがうれしい。
ASRManager の CocoaPods
ASRManager の Github
AsReaderの紹介
テンプレートから作る
次のコマンドを入力します。
pod lib create MyLibrary
MyLibraryはライブラリ名を入力して下さい。
途中で色々と質問されるので回答していきます。
このコマンドを実行すると CocoaPodsが推奨するテンプレートが作成されて
自動でXcodeが起動してプロジェクトが開きます。
デモプロジェクトを作る
テンプレートで作成されたプロジェクトに、CocoaPodsで公開予定のライブラリを使ったデモアプリを作成していきます。
Exampleディレクトリに作成されます。
公開予定ファイルの設置場所
ASRManagerの場合は、Example/Pods/Classesディレクトリを作成して公開予定のファイルを置きました。
デモアプリはここに設置したファイルを使用するようにしました。
PodSpecを作成する
既に作成されている MyLibrary.podspec を修正します。
ASRManager の場合はこうなってます。
Pod::Spec.new do |s|
s.name = "ASRManager"
s.version = "0.1.10"
s.summary = "ASRManager make app easier to use AsReader."
s.homepage = "https://github.com/asx-co-jp/ASRManager"
s.license = 'MIT'
s.author = { "Asterisk.inc Technical Team" => "tech@asx.co.jp" }
s.source = { :git => "https://github.com/asx-co-jp/ASRManager.git", :tag => s.version.to_s }
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'Example/Pods/RcpLib/*.{h,mm}'
s.ios.vendored_library = 'Example/Pods/RcpLib/libAreteUart.a'
s.resource_bundles = {
'ASRManager' => ['Pod/Assets/*.png']
}
s.frameworks = 'ExternalAccessory'
end
特に難しいところはないと思いますが。。。
ここでハマってしまったのが、公開ライブラリ自体が .a のようなライブラリを含んでいる場合です。
その場合、次のように記述する必用がありましたが、なかなか気づけませんでした。
s.ios.vendored_library = 'Example/Pods/RcpLib/libAreteUart.a'
また、Github で管理されていない場合は、リポジトリを作成してURLを入力して下さい。
Github で tag の作成
ここまで出来たら、Github に push しましょう。
このとき、podspec で入力した s.version と同じバージョン番号でタグを作成する必用があります。
確認
ターミナルから次のコマンドを実行すると、podspec のチェックをしてくれます。
エラーが出たら修正してください。
pod lib lint
最後に CocoaPods にアップロード
まずは、cocoapods に登録を依頼します。
pod trunk register EMAIL [NAME]
(これは初回だけです。)
メールが届くので確認します。
次のコマンドを実行すると正式にCocoaPodsで公開されることになります。
pod trunk push ASRManager.podspec
CocoaPodsのページで検索してみてください。
表示された時はちょっと感動してしまいます。
まだ作ったばかりなので、これから色々とバージョンアップさせていく予定です!