iosアプリのクラッシュログを解析する
App storeに申請後、クラッシュを理由にリジェクトされたのでその際のログ解析方法のメモ。
必要なファイル
.dSYMファイル
.crashファイル
の2つ
- .dSYMファイル
/Users/[ユーザ名]/Library/Developer/Xcode/Archives/[yyyy-mm-dd]/[アプリ名].xcarchive
にアーカイブ・ファイルがある。このファイルを「パッケージの内容を表示」で開くとdSYMフォルダがあり、その中に.dSYMファイルがある。
- .crashファイル
解析方法
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)
のようにアドレスからシンボルが付与されてソースコードのどの部分でクラッシュしたかが分かるようになる。
herokuでdbを確認する
herokuのdbにアクセスする。
$ heroku pg:psql
テーブル一覧
\d
ユーザー一覧
\du
データベース一覧
\l
切断
\q
migrate
heroku run rake db:migrate --app [APP_NAME]
プロ野球の結果をスクレイピングする
スクレイピングについて勉強したいと思いプロ野球の結果を取得するコードを書いてみました。
データ取得元はこちら
スポーツナビ
Rubyで書いたのですが、nokogiriというライブリが非常に便利でした。
最低限動くだけならかなり簡単に書くことができますし、かなり実用的だと思います。
ですかスクレイピングは法律関係が色々あるので実際使うとなると難しいですね。
scrape.rb
# -*- coding: utf-8 -*- require 'mechanize' require 'nokogiri' date = ARGV[0] page = Mechanize.new.get("http://baseball.yahoo.co.jp/npb/schedule/?&date=" + date) doc = Nokogiri::HTML.parse(page.body) doc.xpath('//table[@class="yjMS mb5"]/tr').each do |node| # team node.xpath('td[@class="today pl7"]/a').each do |elem| p elem.text end # startTime ballPark node.xpath('td[@class="today pl7"]/em').each do |elem| /(\d{2}:\d{2})(.+)/ =~ elem.text p $1 p $2.gsub(" ", "") end # score inning node.xpath('td[@class="today ct"]').each do |elem| if /(\d+) - (\d+)/ =~ elem.text p $1 p $2 p elem.text end elem.xpath('a').each do |inning| p inning.text end end # pitchers node.xpath('td[@class="today"]/table/tr').each do |elem| p elem.xpath('td[@class="w"]').text.gsub(/勝[[:space:]]/,"") p elem.xpath('td[@class="s"]').text.gsub(/S[[:space:]]/,"") p elem.xpath('td[@class="l"]').text.gsub(/敗[[:space:]]/,"") end end
使い方
引数に日付をYYYYMMDD形式で指定します。
ruby scrape.rb 20150823
出力
ホームチーム アウェイチーム 開始時間 球場 ホームチームの得点 アウェイチームの得点 試合のスコア 進行状況 勝利投手 セーブ投手 敗戦投手
が出力されます。
XcodeでCode Sining Error
久しぶりにXcodeでビルドしたらタイトルのエラーが出ました。
エラー全文は以下の通り。
The identity used to sign the executable is no longer valid
Please verify that your device's clock is properly set,
and that your signing certificate is not expired.
前回最後にビルドした後にdeveloperアカウントを更新したのでその為だと思います。
preferences->accounts->view details->更新としてもエラーは消えず。
preferences->accountsで一度Apple IDを削除して再び追加したらエラーは消えました。
めでたし。