情報系人間のブログ

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

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にライブラリを登録可能である。非常に便利。

iosアプリのクラッシュログを解析する

App storeに申請後、クラッシュを理由にリジェクトされたのでその際のログ解析方法のメモ。

必要なファイル

.dSYMファイル
.crashファイル
の2つ

  • .dSYMファイル
/Users/[ユーザ名]/Library/Developer/Xcode/Archives/[yyyy-mm-dd]/[アプリ名].xcarchive

にアーカイブ・ファイルがある。このファイルを「パッケージの内容を表示」で開くとdSYMフォルダがあり、その中に.dSYMファイルがある。

  • .crashファイル

itunes connectのマイApp内、問題解決センターからダウンロード。拡張子は.txtになっている。

解析方法

symbolicatecrashを使用してクラッシュログをシンボル付きのログに変換する。
symbolicatecrashコマンドは結構深いところにあるのでシンボリックリンクを作っておくと良い。

/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

そして実行

symbolicatecrash  .crashファイル .dSYMファイル 

これで
変換前

0   Zn1clipboard       0x0000000100059240 0x100044000 + 86592

返還後

0   Zn1clipboard       0x0000000100059240 Zn1clipboard.Groups.load (Zn1clipboard.Groups)() -> () (Groups.swift:0)

のようにアドレスからシンボルが付与されてソースコードのどの部分でクラッシュしたかが分かるようになる。