build.gradle
signingConfig/
配下を外だしするので、build.gradleではIncludeするような指定を行うapply from: 'signingConfigs/config.gradle', to: android
の部分
signingConfig signingConfigs.debug
の部分を追加することで、 通常のAndroid署名キー(%USERPROFILE%/.android/debug.keystore
)を参照しなくなる模様
apply from: 'signingConfigs/config.gradle', to: android
buildTypes {
debug {
debuggable true
applicationIdSuffix = '.debug'
versionNameSuffix = '-debug'
signingConfig signingConfigs.debug
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
signingConfig/config.gradle
VCS管理外のシークレット情報として、以下
app/signingConfig/**
signingConfigs/
├── config.gradle
├── debug.jks
└── release.jks
debug.jks は Windowsの場合 %USERPROFILE%/.android/debug.keystore
からコピーすると
Windowsで使用していた署名キーを引き継げる.
storePassword や keyAlias は Androidデフォルトの値
signingConfigs {
debug {
storeFile file('./debug.jks')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
release {
storeFile file('./release.jks')
storePassword 'XXXXXXXXXXXXXX'
keyAlias 'xxxx'
keyPassword 'XXXXXXXXXXXXXX'
}
}
バージョン名からタグつけたり、APK作ったり、slf4jでファイル保存したログ引っ張ったり 等々、便利コマンドも色々つくったので、Makefileを抜粋して貼っつけておく
SERVICE=android
CONTAINER=gradle:7.3.3-jdk11
PKG := com.exapmle.app.dev.debug
.DEFAULT_GOAL := convert_logger
tag:
@export tag=v$$(grep "versionName " app/build.gradle |cut -d\" -f2) && git tag "$$tag" && echo "==> $$tag tagged."
zip:
@zip -r ${SERVICE}.signingConfigs.zip ./app/signingConfigs
convert_logger:
@bin/convert_to_logger
log:
@adb shell run-as $(PKG) cat /data/data/$(PKG)/files/logs/app.log
logs:
@for d in /data/data/$(PKG)/files/logs{,/archives}; do \
echo "==> $$d"; \
adb shell run-as $(PKG) ls -lah $$d; \
done
log_tailf:
@adb shell run-as $(PKG) tail -F /data/data/$(PKG)/files/logs/app.log
log_rm:
@adb shell run-as $(PKG) rm -rfv /data/data/$(PKG)/files/logs/archives
# For wireless debug
# 1. connect device to pc
# 2. Enable wireless debug in android device
# 3. make tcpip
tcpip:
@adb tcpip 5555
# 4. Open `wireless debug settings in device developper mode` and copy `IPAddress and Port`
# 5. make connect {Copied IPAddress}:{Copied port}. Connected in wireless, then disconnect wire.
connect:
@adb connect $(arg)
_gradle:
@test -n "$${ANDROID_HOME}" || (echo "=> No env ANDROID_HOME is defined." 1>&2 && exit 1)
@docker run -it --rm \
--name gradle \
-e GRADLE_USER_HOME=/src/.gradle_docker \
-e ANDROID_HOME=/android-sdk \
-v $${ANDROID_HOME}:/android-sdk \
-v $(PWD):/src \
-w /src \
$(CONTAINER) \
./gradlew $(TASK)
task_list:
@TASK=tasks make _gradle
_apk:
@TASK=:app:assembleDevDemoDebug make _gradle
@make TARGET_DIR=$(PWD)/app/build/outputs/apk/devDemo/debug open_dir
apk: _apk
# debug:
# @TASK=:app:assembleDevDemoDebug make _gradle
_release-aab:
@TASK=:app:bundleRelease make _gradle
@make TARGET_DIR=$(PWD)/app/build/outputs/bundle/release open_dir
release-aab: _release-aab
inpect:
@docker inspect $(CONTAINER)
open_dir:
@command -v open >&/dev/null
@open $(TARGET_DIR)