mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 09:55:40 +00:00
cmd/gogio: create a temporary signing key if debug.keystore isn't found
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -35,6 +35,14 @@ type errWriter struct {
|
|||||||
err *error
|
err *error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var exeSuffix string
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
exeSuffix = ".exe"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func buildAndroid(tmpDir string, bi *buildInfo) error {
|
func buildAndroid(tmpDir string, bi *buildInfo) error {
|
||||||
sdk := os.Getenv("ANDROID_HOME")
|
sdk := os.Getenv("ANDROID_HOME")
|
||||||
if sdk == "" {
|
if sdk == "" {
|
||||||
@@ -398,6 +406,27 @@ func signAPK(tmpDir string, tools *androidTools, bi *buildInfo) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
keystore := filepath.Join(home, ".android", "debug.keystore")
|
keystore := filepath.Join(home, ".android", "debug.keystore")
|
||||||
|
if _, err := os.Stat(keystore); err != nil {
|
||||||
|
keystore = filepath.Join(tmpDir, "sign.keystore")
|
||||||
|
keytool, err := findKeytool()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = runCmd(exec.Command(
|
||||||
|
keytool,
|
||||||
|
"-genkey",
|
||||||
|
"-keystore", keystore,
|
||||||
|
"-storepass", "android",
|
||||||
|
"-alias", "android",
|
||||||
|
"-keyalg", "RSA", "-keysize", "2048",
|
||||||
|
"-validity", "10000",
|
||||||
|
"-noprompt",
|
||||||
|
"-dname", "CN=android",
|
||||||
|
))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
_, err = runCmd(exec.Command(
|
_, err = runCmd(exec.Command(
|
||||||
filepath.Join(tools.buildtools, "apksigner"),
|
filepath.Join(tools.buildtools, "apksigner"),
|
||||||
"sign",
|
"sign",
|
||||||
@@ -443,6 +472,22 @@ func unzip(dir, zipfile string) (err error) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func findKeytool() (string, error) {
|
||||||
|
keytool, err := exec.LookPath("keytool")
|
||||||
|
if err == nil {
|
||||||
|
return keytool, err
|
||||||
|
}
|
||||||
|
javaHome := os.Getenv("JAVA_HOME")
|
||||||
|
if javaHome == "" {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
keytool = filepath.Join(javaHome, "jre", "bin", "keytool"+exeSuffix)
|
||||||
|
if _, serr := os.Stat(keytool); serr == nil {
|
||||||
|
return keytool, nil
|
||||||
|
}
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
func findJavaC() (string, error) {
|
func findJavaC() (string, error) {
|
||||||
javac, err := exec.LookPath("javac")
|
javac, err := exec.LookPath("javac")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -452,10 +497,7 @@ func findJavaC() (string, error) {
|
|||||||
if javaHome == "" {
|
if javaHome == "" {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
javac = filepath.Join(javaHome, "bin", "javac")
|
javac = filepath.Join(javaHome, "bin", "javac"+exeSuffix)
|
||||||
if runtime.GOOS == "windows" {
|
|
||||||
javac += ".exe"
|
|
||||||
}
|
|
||||||
if _, serr := os.Stat(javac); serr == nil {
|
if _, serr := os.Stat(javac); serr == nil {
|
||||||
return javac, nil
|
return javac, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user