IOS実機(開発中)のクラッシュを解析する手順
Firebaseでプッシュ通知を実装する時にIOSアプリ起動したらクラッシュすることがあったので、その解析手順。
クラッシュログの取得
- Window - Devises - view Device Logs
- 問題のクラッシュのログをコピーペースト
以下記事を参考にクラッシュログを解析する
- iOSのクラッシュログをSymbolicate(復元)して解析する - Qiita http://qiita.com/ruwatana/items/cc470eb229d267d693b0
ReactNativeでIOS/Android実機でプッシュ通知を試すハマり所まとめ(随時更新)
実機ビルドでハマる所(IOS)
- SigningでTeamでログインしていない
- error: Can’t find ‘node’ binary to build React Native bundle
- nodeのパスを設定
- Signing for XXX_Test
- Unable to resolve module immtable
- yarn add immutable
- React/RCTBundleURLProvider.h file not found
- node_modules削除して再yarn installやXcode再起動等で直ったりする
実機ビルドでハマる所(Android)
- gradle 3.3アップデートを求められる
- SDK Build Tools revision is too low
- 青いリンクからupdate
- JS bundle error
- index.android.js: Unexpected token )
- https://goo.gl/aECkmK
- 最新のreact-nativeのbabelの不具合
- gradleのsyncエラーはAndroid Studio再起動すると直ったりする
react-native linkは必要?
- project.pbxprojの内容がプッシュされていれば不要
プッシュ通知設定(IOS)
- Add the push notifications feature to your add id
- generalのbundle identifierが被っているのが原因
プッシュ通知の基礎知識
react-native-fcmを使うと実機起動時にcrashする
- resourcesフォルダにGoogleService-info-plistを移す
- これでもダメな場合
- pod ‘Firebase/Messaging’, ‘3.17.0’にして再度pod installする
- バージョン不整合で詰まる
- ここはまだ調査中
Androidの実機のログを見る方法
人事と労務の違いって?
最近、労務関係の仕事に触れる機会が多いです。 よく聞きはしますがイマイチよくわかっていなかったので、意味をまとめました。
人事と労務
人事も労務も会社の「人」に関わる業務。 人事は「社員個人」を対象としており、労務は「会社全体」を対象としている。
類似職種として「総務」があるが、これは社内の備品管理や社内環境整備、 社内イベントの企画などを行う職種。
人事の仕事
- 人員配置
- 採用
- 人材教育
- 評価制度の策定
労務の仕事
- 給与計算・勤怠管理
- 社会保険手続き
- 健康診断の対応
- その他福利厚生に関する手続き
人事も労務もひっくるめてHR(Human Resource)Techだなぁとか思ってましたが、 ちゃんと調べると様々な領域に分かれていて、とても興味深い。
ReactNativeの実機ビルドでunable to load script from assets index.android.bundleになる時の対処
以下手順でOK
mkdir android/app/src/main/assets react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res 再ビルド実行
[Android] Building release APK with react-native bundle
· Issue #2743 · facebook/react-native https://github.com/facebook/react-native/issues/2743
リリース用のAPKの時にJSファイルをbundleしてくれないgradleの不具合? 今の所、自分でbundleコマンドを実行しないといけないみたい。
自分の場合はこれで動きました。
ReactNativeのbuild.gradleって何?
build.gradle
Gradle
Groovy
bunild.gradleの中身
- 以下がReactNativeの初期状態のbuild.gradle
- buildscriptブロック内のclasspathに外部のプラグインのjarファイルを指定することでプロジェクト内に追加することができる
classpath 'com.google.gms:google-services:3.0.0'
はGoogleのサービス(Firebase等)をAndroidアプリ内で使うために必要なプラグイン
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.google.gms:google-services:3.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { mavenLocal() jcenter() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$rootDir/../node_modules/react-native/android" } } }
Golangでネストした構造体を初期化する方法
次のようにネストした構造体が存在する場合に、 Golangでは初期化の方法が非常に面倒くさい。
type User struct { ID int Name string Account struct { Password string AccessToken string } }
func main() { user := User{ ID: 1, Name: "Masaru", Account: struct{ Password string AccessToken string }{ Password: "hogehoge", AccessToken: "fugafuga", }, } fmt.Println(user) }
こんな感じでネストした構造体の構造と値を別々で書かないと初期化出来ない。 最初結構嵌ったので、メモ。