diff --git a/fdroidserver/common.py b/fdroidserver/common.py index e6b10305..586867a6 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -429,7 +429,11 @@ def find_apksigner(): if set_command_in_config('apksigner'): return config['apksigner'] build_tools_path = os.path.join(config['sdk_path'], 'build-tools') + if not os.path.isdir(build_tools_path): + return None for f in sorted(os.listdir(build_tools_path), reverse=True): + if not os.path.isdir(os.path.join(build_tools_path, f)): + continue if LooseVersion(f) < LooseVersion(MINIMUM_AAPT_BUILD_TOOLS_VERSION): return None if os.path.exists(os.path.join(build_tools_path, f, 'apksigner')): diff --git a/tests/common.TestCase b/tests/common.TestCase index eb67836c..98815d5b 100755 --- a/tests/common.TestCase +++ b/tests/common.TestCase @@ -675,6 +675,8 @@ class CommonTest(unittest.TestCase): def test_sign_apk_targetsdk_30(self): fdroidserver.common.config = None config = fdroidserver.common.read_config(fdroidserver.common.options) + if not fdroidserver.common.find_apksigner(): + self.skipTest('SKIPPING as apksigner is not installed!') config['jarsigner'] = fdroidserver.common.find_sdk_tools_cmd('jarsigner') config['keyalias'] = 'sova' config['keystorepass'] = 'r9aquRHYoI8+dYz6jKrLntQ5/NJNASFBacJh7Jv2BlI='