情報系人間のブログ

プログラミング、開発に関することを書いていきます。

Cocoacontrolsにライブラリを登録する

こちらで書いたのですが、iosのライブラリをcocoapodsに登録したのでcocoacontrolsにも登録してみした。

reidr.hatenablog.com

cocoacontrolsios,osxのUI系のライブラリをを掲載しているサービスです。登録申請すれば誰でも掲載してもらえる可能性があります。

申請方法は画面右上のSubmit a new Controlボタンを押して掲載して欲しいライブラリのURL,詳細情報を入力するだけです。
今回は申請後5日ほどで掲載されました。多くの開発者が見ているサービスなので掲載できればそれだけ多くの方に知ってもらうことができます。上記の通り簡単に申請できますので作ったらとりあえず申請するのが良いと思います。

最後に今回掲載して頂いたライブラリはこちらです。
OYSimpleAlertController for iOS - Cocoa Controls

error: failed to import bridging headerとuse_frameworks!

swiftで書かれたライブラリをCocoaPodsでinstallする場合は

use_frameworks!

とpodfileに書かないと以下の警告が出ます。

[!] Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add `use_frameworks!` to your Podfile or target to opt into using it.

書いてある通り、swiftライブラリはframeworkを作成して統合されます。
通常objective-cライブラリはstatic libraryが作成されるのですが、use_frameworks!を書くと全てのライブラリをswiftの場合と同様にframeworkとしてリンクしようとするようです。
このためにuse_frameworks!を書いてobjective-cライブラリをbridging-header.hでimportするとエラーが発生します。
エラー内容はこんな感じです。

error: 'xxxxxxxx.h' file not found
error: failed to import bridging header

回避策ですが、bridging-header.hから

 #import "xxxxxxx.h"

を削除してライブラリを使用するswiftファイルに

import xxxxxxxxx

を追加すれば良いです。

OYSimpleAlertController

CocoaPodsに登録したライブラリについて

github.com

現在開発しているアプリZn1clipboardでシンプルなダイアログを使いたかったので作ってみた。
とりあえずダイアログを出すけどUIAlertControllerじゃ味気ないなという場合に使ってみると良いかもしれない。

f:id:reida:20150921170322g:plain

cocoapodsにiosライブラリを登録する

普段cocoapodsには非常にお世話になっていて自分も何か公開したいなと思い初めてライブラリを登録した。
手順をメモしておく。

ライブラリのテンプレート作成

始めにライブラリのテンプレートを作成する。

pod lib create "pod name"

この際デモを作成する方が良い。

podspecのバリデーション

ライブラリを作成後、podspecを編集後にlintコマンドでバリデーションを行う。

pod spec lint

動作確認

ライブラリが完成したらローカルからpod installして正常に動作するか確かめる。
テスト用のプロジェクトを作成し、podfileに以下を記述する。

pod "ライブラリ名", :path => 'ライブラリのパス'

pod installを実行して動作を確認する。

開発者登録

次に開発者登録を行う。コマンドを実行後、認証メールが届く。

pod trunk register "email" "name" —description="description"

公開

最後にpushする。

pod trunk push "podspec_file"

登録するとCocoapodsのtwitterから新規登録情報がツイートされる。
これだけの作業でcocoapodsにライブラリを登録可能である。非常に便利。