Class: Mysigner::Build::AndroidExecutor
- Inherits:
-
Object
- Object
- Mysigner::Build::AndroidExecutor
- Defined in:
- lib/mysigner/build/android_executor.rb
Defined Under Namespace
Classes: BuildError
Instance Method Summary collapse
-
#build_aab!(variant: 'release', keystore_path: nil, keystore_password: nil, key_alias: nil, key_password: nil, version_code: nil) ⇒ Object
Build AAB (Android App Bundle) for Play Store Returns: path to .aab file Options: - variant: Build variant (default: ‘release’) - keystore_path: Path to keystore file - keystore_password: Keystore password - key_alias: Key alias in keystore - key_password: Key password (defaults to keystore_password) - version_code: Override version code (passed via gradle property).
-
#build_apk!(variant: 'release', keystore_path: nil, keystore_password: nil, key_alias: nil, key_password: nil) ⇒ Object
Build APK Returns: path to .apk file.
-
#clean! ⇒ Object
Clean build outputs.
-
#initialize(project_info, parser) ⇒ AndroidExecutor
constructor
A new instance of AndroidExecutor.
Constructor Details
#initialize(project_info, parser) ⇒ AndroidExecutor
Returns a new instance of AndroidExecutor.
12 13 14 15 |
# File 'lib/mysigner/build/android_executor.rb', line 12 def initialize(project_info, parser) @project_info = project_info @parser = parser end |
Instance Method Details
#build_aab!(variant: 'release', keystore_path: nil, keystore_password: nil, key_alias: nil, key_password: nil, version_code: nil) ⇒ Object
Build AAB (Android App Bundle) for Play Store Returns: path to .aab file Options:
- variant: Build variant (default: 'release')
- keystore_path: Path to keystore file
- keystore_password: Keystore password
- key_alias: Key alias in keystore
- key_password: Key password (defaults to keystore_password)
- version_code: Override version code (passed via gradle property)
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/mysigner/build/android_executor.rb', line 26 def build_aab!(variant: 'release', keystore_path: nil, keystore_password: nil, key_alias: nil, key_password: nil, version_code: nil) @variant = variant @keystore_path = keystore_path @keystore_password = keystore_password @key_alias = key_alias @key_password = key_password || keystore_password @version_code = version_code # Determine task name task = "bundle#{variant.capitalize}" # Build success = run_gradle_build(task) raise BuildError, 'Android build failed. Check output above for errors.' unless success # Find output AAB aab_path = find_aab_output(variant) unless aab_path && File.exist?(aab_path) raise BuildError, "Build reported success but AAB not found. Expected at: #{@parser.aab_output_path(variant)}" end aab_path end |
#build_apk!(variant: 'release', keystore_path: nil, keystore_password: nil, key_alias: nil, key_password: nil) ⇒ Object
Build APK Returns: path to .apk file
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/mysigner/build/android_executor.rb', line 55 def build_apk!(variant: 'release', keystore_path: nil, keystore_password: nil, key_alias: nil, key_password: nil) @variant = variant @keystore_path = keystore_path @keystore_password = keystore_password @key_alias = key_alias @key_password = key_password || keystore_password # Determine task name task = "assemble#{variant.capitalize}" # Build success = run_gradle_build(task) raise BuildError, 'Android build failed. Check output above for errors.' unless success # Find output APK apk_path = find_apk_output(variant) unless apk_path && File.exist?(apk_path) raise BuildError, "Build reported success but APK not found. Expected at: #{@parser.apk_output_path(variant)}" end apk_path end |
#clean! ⇒ Object
Clean build outputs
81 82 83 |
# File 'lib/mysigner/build/android_executor.rb', line 81 def clean! run_gradle_command('clean') end |