Module: Pindo::GPComplianceHelper
- Includes:
- BaseAndroidHelper
- Defined in:
- lib/pindo/module/android/gp_compliance_helper.rb
Defined Under Namespace
Classes: ComplianceResult
Class Method Summary collapse
-
.check_aab_compliance(aab_path) ⇒ Object
检测 AAB 文件的 Google Play 合规性.
Methods included from BaseAndroidHelper
#build_jdk_path_from_unity_root, #check_and_replace_unity_jdk, #check_and_update_unity_jdk, #create_and_install_openjdk, #ensure_java_version_compliance, #extract_config_block_groovy, #extract_config_block_kts, #extract_keystore_fields_common, #extract_keystore_fields_groovy, #extract_keystore_fields_kts, #extract_signing_configs_groovy, #extract_signing_configs_kts, #extract_var_or_value, #find_android_subproject, #find_java11_installation, #find_java_command, #find_unity_editor_paths, #fix_store_file_path, #get_build_tools, #get_ext_values, #get_keystore_config, #get_keystore_config_groovy, #get_keystore_config_kts, #get_main_module, #install_adoptium_java_11, #install_java_11, #install_java_11_macos, #modify_il2cpp_config, #remove_desktop_google_service, #remove_groovy_comments, #remove_kts_comments, #replace_unity_jdk_with_java11, #resolve_var, #unity_android_project?, #verify_java_version
Class Method Details
.check_aab_compliance(aab_path) ⇒ Object
检测 AAB 文件的 Google Play 合规性
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/pindo/module/android/gp_compliance_helper.rb', line 44 def self.check_aab_compliance(aab_path) result = ComplianceResult.new unless File.exist?(aab_path) result.add_issue("AAB 文件不存在: #{aab_path}") return result end puts "\n\e[1m=== Google Play 合规检测 ===\e[0m" puts "检测文件: #{File.basename(aab_path)}" # 创建临时目录用于解压 AAB temp_dir = nil begin temp_dir = Dir.mktmpdir("aab_compliance_check_") # 检查 unzip 工具是否可用 unless tool_available?('unzip') result.add_issue("unzip 工具不可用,无法解压 AAB 文件") puts "请安装 unzip 工具: brew install unzip (macOS) 或 apt-get install unzip (Ubuntu)" return result end # 解压 AAB 文件 unless system("unzip", "-q", aab_path, "-d", temp_dir) result.add_issue("无法解压 AAB 文件") return result end # 检测 AAB 包体积 check_aab_size_compliance(aab_path, result) # 检测 Target SDK 版本(传递 AAB 路径) check_target_sdk_compliance(temp_dir, result, aab_path) # 检测 ELF 对齐 check_elf_alignment_compliance(temp_dir, result) # 输出检测结果 print_compliance_summary(result) ensure # 清理临时目录 FileUtils.rm_rf(temp_dir) if temp_dir && File.directory?(temp_dir) end result end |