Class: Pod::Command::Bin::BuildAll

Inherits:
Pod::Command::Bin show all
Includes:
CBin::BuildAll
Defined in:
lib/cocoapods-meitu-bin/command/bin/build_all.rb

Constant Summary collapse

CDN =
'https://cdn.cocoapods.org/'.freeze
MASTER_HTTP =
'https://github.com/CocoaPods/Specs.git'.freeze
MASTER_SSH =
'[email protected]:CocoaPods/Specs.git'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods included from CBin::SpecFilesHelper

#binary_spec, #binary_spec_files, #binary_template_spec, #binary_template_spec_file, #binary_template_spec_files, #clear_binary_spec_file_if_needed, #code_spec, #code_spec_files, #create_binary_spec_file, #find_spec_file, #spec_files

Methods included from CBin::SourcesHelper

#binary_source, #code_source_list, #sources_manager, #sources_option, #valid_sources

Constructor Details

#initialize(argv) ⇒ BuildAll

Returns a new instance of BuildAll.



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/cocoapods-meitu-bin/command/bin/build_all.rb', line 41

def initialize(argv)
  @pods = argv.shift_argument
  @clean = argv.flag?('clean', false)
  @clean_single = argv.flag?('clean-single', false)
  @shell_project = argv.flag?('shell-project', false)
  @repo_update = argv.flag?('repo-update', false)
  @full_build = argv.flag?('full-build', false)
  @skip_simulator = argv.flag?('skip-simulator', false)
  @configuration = argv.option('configuration', 'Debug')
  @base_dir = "#{Pathname.pwd}/build_pods"
  @version_helper = BinHelper.new
  super
end

Class Method Details

.optionsObject



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/cocoapods-meitu-bin/command/bin/build_all.rb', line 29

def self.options
  [
    %w[--clean 全部二进制包制作完成后删除编译临时目录],
    %w[--shell-project 是否依赖壳工程编译产物一次编译生成所有组件的编译产物],
    %w[--clean-single 每制作完一个二进制包就删除该编译临时目录],
    %w[--repo-update 更新Podfile中指定的repo仓库],
    %w[--full-build 是否全量打包],
    %w[--skip-simulator 跳过模拟器编译],
    %w[--configuration=configName 在构建每个目标时使用configName指定构建配置,如:'Debug'、'Release'等]
  ].concat(super).uniq
end

Instance Method Details

#runObject



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
# File 'lib/cocoapods-meitu-bin/command/bin/build_all.rb', line 55

def run
  CBin.config.config_file_exist?
  # 打印提示
  print_tip
  # 开始时间
  @start_time = Time.now.to_i
  # 读取配置文件
  read_config
  # 如果有传入要制作的pod库名
  if @pods
    @write_list = @pods.split(',').map(&:strip)
  end
  # 更新repo仓库
  repo_update
  # 执行pre_build命令
  pre_build
  # 分析依赖
  @analyze_result = analyse
  # 删除编译产物
  clean_build_pods
  # 编译所有pod_targets
  #根据@shell_project 判断是执行 build_shell_project_pod_targets 还是 build_pod_targets
  if @shell_project
    PodUpdateConfig.set_shell_project
  end
  results = @shell_project ? build_shell_project_pod_targets : build_pod_targets
  # 执行post_build命令
  post_build(results)
  # 删除编译产物
  clean_build_pods if @clean
  # 计算耗时
  show_cost_time
end