Files
IronFox/scripts/sign.sh
celenity 96f5194725 fix: test to narrow down issue
Signed-off-by: celenity <celenity@celenity.dev>
2026-04-03 17:40:18 +00:00

142 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# Set-up our environment
bash -x $(dirname $0)/env.sh
source $(dirname $0)/env.sh
source "${IRONFOX_ENV_BUILD}"
# Include version info
source "${IRONFOX_VERSIONS}"
# Temporarily add Java to PATH, as apksigner requires it
export PATH="${IRONFOX_JAVA_HOME}/bin:${PATH}"
# Functions
function sign_apk() {
target="$1"
APK_IN="${IRONFOX_OUTPUTS_APK}/ironfox-${IRONFOX_CHANNEL}-${target}-unsigned.apk"
if [ "${IRONFOX_CI}" == 1 ]; then
APK_OUT="${IRONFOX_APK_ARTIFACTS}/IronFox-v${IRONFOX_VERSION}-${target}.apk"
else
APK_OUT="${IRONFOX_OUTPUTS_APK}/ironfox-${IRONFOX_CHANNEL}-${target}-signed.apk"
fi
"${IRONFOX_APKSIGNER}" sign \
--ks="${IRONFOX_KEYSTORE}" \
--ks-pass="file:/${IRONFOX_KEYSTORE_PASS_FILE}" \
--ks-key-alias="${IRONFOX_KEYSTORE_KEY_ALIAS}" \
--key-pass="file:/${IRONFOX_KEYSTORE_KEY_PASS_FILE}" \
--out="${APK_OUT}" \
"${APK_IN}"
}
function sign_arm64() {
echo_red_text 'Signing APK (ARM64)...'
sign_apk 'arm64-v8a'
echo_green_text 'SUCCESS: Signed APK (ARM64)'
}
function sign_arm() {
echo_red_text 'Signing APK (ARM)...'
sign_apk 'armeabi-v7a'
echo_green_text 'SUCCESS: Signed APK (ARM)'
}
function sign_x86_64() {
echo_red_text 'Signing APK (x86_64)...'
sign_apk 'x86_64'
echo_green_text 'SUCCESS: Signed APK (x86_64)'
}
function sign_universal() {
echo_red_text 'Signing APK (Universal)...'
sign_apk 'universal'
echo_green_text 'SUCCESS: Signed APK (Universal)'
}
function sign_bundle() {
echo_red_text 'Building signed bundleset...'
AAB_IN="${IRONFOX_OUTPUTS_FENIX_AAB}"
if [ "${IRONFOX_CI}" == 1 ]; then
APKS_OUT="${IRONFOX_APKS_ARTIFACTS}/IronFox-v${IRONFOX_VERSION}.apks"
else
APKS_OUT="${IRONFOX_OUTPUTS_FENIX_APKS}"
fi
"${IRONFOX_BUNDLETOOL}" build-apks \
--bundle="${AAB_IN}" \
--output="${APKS_OUT}" \
--ks="${IRONFOX_KEYSTORE}" \
--ks-pass="file:/${IRONFOX_KEYSTORE_PASS_FILE}" \
--ks-key-alias="${IRONFOX_KEYSTORE_KEY_ALIAS}" \
--key-pass="file:/${IRONFOX_KEYSTORE_KEY_PASS_FILE}"
echo_green_text 'SUCCESS: Created signed bundleset'
}
if [ "${IRONFOX_TARGET_ARCH}" == 'bundle' ]; then
# Sign ARM64 APK
sign_arm64
# Sign ARM APK
sign_arm
# Sign x86_64 APK
sign_x86_64
# Sign universal APK
sign_universal
# Build signed APK set
# sign_bundle
elif [ "${IRONFOX_TARGET_ARCH}" == 'arm64' ]; then
# Sign ARM64 APK
sign_arm64
elif [ "${IRONFOX_TARGET_ARCH}" == 'arm' ]; then
# Sign ARM APK
sign_arm
elif [ "${IRONFOX_TARGET_ARCH}" == 'x86_64' ]; then
# Sign x86_64 APK
sign_x86_64
else
echo_red_text "ERROR: Unknown target architecture: ${IRONFOX_TARGET_ARCH}"
exit 1
fi
if [ "${IRONFOX_CI}" != 1 ]; then
echo_red_text 'Would you like to install IronFox to a connected device?'
read -p "If you'd like to install IronFox, please ensure your device is connected before proceeding. [y/N] " -n 1 -r
echo
if [[ "${REPLY}" =~ ^[Yy]$ ]]; then
"${IRONFOX_ADB}" devices
if [[ "${IRONFOX_OS}" == 'osx' ]]; then
# On OS X, the user may need to accept a prompt to allow their device to connect,
## so wait to ensure we allow them to accept it
/bin/sleep 6
fi
if [ "${IRONFOX_TARGET_ARCH}" == 'bundle' ]; then
# If we built a bundle, install the universal APK
"${IRONFOX_ADB}" install -r "${IRONFOX_OUTPUTS_FENIX_UNIVERSAL_SIGNED}"
elif [ "${IRONFOX_TARGET_ARCH}" == 'arm64' ]; then
# Install the ARM64 APK
"${IRONFOX_ADB}" install -r "${IRONFOX_OUTPUTS_FENIX_ARM64_SIGNED}"
elif [ "${IRONFOX_TARGET_ARCH}" == 'arm' ]; then
# Install the ARM APK
"${IRONFOX_ADB}" install -r "${IRONFOX_OUTPUTS_FENIX_ARM_SIGNED}"
elif [ "${IRONFOX_TARGET_ARCH}" == 'x86_64' ]; then
# Install the x86_64 APK
"${IRONFOX_ADB}" install -r "${IRONFOX_OUTPUTS_FENIX_X86_64_SIGNED}"
fi
# Now that the app is installed, we can kill the server
"${IRONFOX_ADB}" kill-server
else
exit 0
fi
fi