【Shell】GithubのPullRequest作成ページを一発で開く関数(ワンライナー)
関数の定義
.zsh_alias
や.bash_alias
に書いておく。
# カレントブランチから$1ブランチへのPullRequestを開く function opr() { parentBranch=$1 currentBranch=`git branch | grep "*"` repoName=$(git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*:(.*).git/.match($_)[1] rescue nil') open -a /Applications/Google\ Chrome.app https://github.com/${repoName/* /}/compare/${parentBranch/* /}...${currentBranch/* /} }
使用例
opr dev
(currentブランチからdevブランチへ)
opr master
(currentブランチからmasterブランチへ)
など。
簡単に解説
第一引数$1にターゲットブランチを渡す。
git branch | grep "*"
で現在のブランチを取得出来るので、そこに対してPullRequestを出している。
補足
【Laravel】validationエラーの情報はちゃんとObjectで返ってきてるぞ!
Laravelで用意されている通常のvalidation機能
を使うと、フロントエンドでエラーメッセージ等の詳細情報を取得できないのかと思って焦っていた。 そのとき僕は以下のようにエラーハンドリングしていた(つまりしてないw)
.then((data) => { }).catch(err => { console.error(err) })
すると、consoleには以下のように表示された ので、文字列が返ってきているものとばかり思っていた。
解決方法
しかし、
}).catch(err => { console.log(err.response) })
このようにerr.response
をdumpしてみるとエラー情報の詳細がオブジェクトに格納されていることが確認できた。
LaravelというよりもChrome Consoleの仕様でこのような表記になっていたみたい。よく考えたら通常の文字列表示とは違かったので気づけなかったのが悔しい。
【ReactNative】Androidビルドエラー③
エラー
INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package your_app_name signatures do not match the previously installed version; ignoring!
解決方法
adb uninstall your_app_name
参考
【HTML】required属性を無視する一番楽な方法
とあるプロジェクトでフォームの一時保存
機能を実装していたときに見つけた。
submitボタンにformnovalidate属性を付けると、そのボタンを押下して送信された場合はrequired
やmaxlength
などを無視してくれる。
まさに一時保存
機能を実装するときの為にあるような機能。
参考
【ReactNaitve】Androidアプリのpackage名を変える
package名を変える理由
kang.hateblo.jp のようにアプリの引き継ぎ作業をしていた。あーだこーだしていざ、APKファイルをアップロード!というところで
APK または Android App Bundle のパッケージ名は「●●●」とする必要があります。
と言われてしまった。
APKファイルの名前ではなくpackage名を変更しなければならなかったのでメモ。
Androidアプリのpackage名とは
アプリ固有のIDのようなもの。
iOSで言うbundle id
Dropboxの場合はcom.dropbox.android
で、リバースドメイン(ドメインを逆にしたやつ)プラス末尾にandroidをつける的な命名が一般的みたい。(これはiOSのbundle idでも同じ。)
手順(変更箇所)
変更ファイルは app/build.gradle app/src/main/AndroidManifest.xml
の2つ。 app/build.gradleは defaultConfigの中にあるapplicationIdを変更する。こんな感じ。
android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "your_package_name" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion }
app/src/main/AndroidManifest.xmlは最上部の
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your_package_name">
この部分を変更する。
以上!
【ReactNative】Androidの証明書(keystore)を引き継ぐ
概要
基本的には通常通りで変わらない。 kang.hateblo.jp ↑の通りでリリースできるはず。 しかし、過去にリリースしたアプリで使っていた証明書を引き継ぎする必要があったのでその手順をメモ。
流れ
- keystoreを置き換える
- gradle.propertiesを書き換える
1. keystoreを置き換える
過去アプリのkeystoreをもらい、android/app/
に置く。
2. gradle.propertiesを書き換える
置いたkeystoreのファイル名をgradle.properties
のMYAPP_RELEASE_STORE_FILE
キーに書く。
passwordもMYAPP_RELEASE_STORE_PASSWORD``MYAPP_RELEASE_KEY_PASSWORD
に書く。
以上!
誰か助けて
keystoreを無くしちゃった場合とかってアプリの履歴そのままで再発行できたりするのかな。。。
【ReactNative】Androidビルドエラー②
エラー
error: failed linking references. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':react-native-youtube:verifyReleaseResources'. > com.android.ide.common.process.ProcessException: Failed to execute aapt
解決方法
android/build.gradle
に以下を追加
subprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion } } } }
参考
追記
build.gradleもといgradle自体を全然理解してなかったのですごくつまづいた。 gradleについては以下が参考になった。 qiita.com