Module: Pindo::GradleHelper

Includes:
BaseAndroidHelper
Included in:
AndroidBuildHelper
Defined in:
lib/pindo/module/android/gradle_helper.rb

Instance Method Summary collapse

Methods included from BaseAndroidHelper

#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, #fix_store_file_path, #get_build_tools, #get_ext_values, #get_keystore_config, #get_keystore_config_groovy, #get_keystore_config_kts, #get_main_module, #modify_il2cpp_config, #remove_desktop_google_service, #remove_groovy_comments, #remove_kts_comments, #resolve_var, #unity_android_project?

Instance Method Details

#check_gradle_files(project_path) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/pindo/module/android/gradle_helper.rb', line 7

def check_gradle_files(project_path)
  # 检查是否存在 gradlew 文件 如果没有则执行复制操作
  gradlew_path = File.join(project_path, "gradlew")
  if File.exist?(gradlew_path)
    puts "gradlew file already exists, skip copying."
  else
     # 复制gradle相关文件
    gradlew_content = File.read(get_build_tools[:gradlew])
    File.write(gradlew_path, gradlew_content)
  end
  # 设置gradlew可执行权限
  system("chmod", "777", gradlew_path)

  wrapper_jar_path = File.join(project_path, "gradle/wrapper/gradle-wrapper.jar")
  if File.exist?(wrapper_jar_path)
    puts "gradle-wrapper.jar file already exists, skip copying."
  else
    FileUtils.mkdir_p(File.dirname(wrapper_jar_path))
    gradle_wrapper_content = File.read(get_build_tools[:gradle_wrapper])
    File.write(wrapper_jar_path, gradle_wrapper_content)
  end
end

#update_build_gradle(project_path) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/pindo/module/android/gradle_helper.rb', line 30

def update_build_gradle(project_path)
  # 更新build.gradle 或 build.gradle.kts
  build_gradle_path = File.join(project_path, "build.gradle")
  build_gradle_kts_path = File.join(project_path, "build.gradle.kts")
  
  # 优先使用 build.gradle.kts,如果不存在则使用 build.gradle
  if File.exist?(build_gradle_kts_path)
    build_gradle_path = build_gradle_kts_path
  elsif !File.exist?(build_gradle_path)
    return
  end
  
  content = File.read(build_gradle_path)
  content.gsub!("classpath 'com.android.tools.build:gradle:4.0.1'",
                "classpath 'com.android.tools.build:gradle:4.2.2'")
  File.write(build_gradle_path, content)
end

#update_gradle_version(project_path) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/pindo/module/android/gradle_helper.rb', line 48

def update_gradle_version(project_path)
  # 更新gradle wrapper版本
  wrapper_path = File.join(project_path, "gradle/wrapper/gradle-wrapper.properties")
  content = File.read(wrapper_path)
  content.gsub!("gradle-6.1.1-bin.zip", "gradle-7.2-bin.zip")
  File.write(wrapper_path, content)
end