class Pod::Command::Bin::Auto
Public Class Methods
new(argv)
click to toggle source
Calls superclass method
Pod::Command::Bin::new
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 30 def initialize(argv) @env = argv.option('env') || 'dev' CBin.config.set_configuration_env(@env) @podspec = argv.shift_argument || find_podspec @specification = Specification.from_file(@podspec) @code_dependencies = argv.flag?('code-dependencies') @only_build = argv.flag?('only-build', false ) @use_modular_headers = argv.flag?('use-modular-headers', false ) @allow_prerelease = argv.flag?('allow-prerelease') @framework_output = argv.flag?('framework-output', false ) @clean = argv.flag?('clean', true) @zip = argv.flag?('zip', true) @all_make = argv.flag?('all-make', false ) @verbose = argv.flag?('verbose',true) @config = argv.option('configuration', 'Debug') @additional_args = argv.remainder! Pod::Resolver.build_dependencies_only_build(@only_build) Pod::Resolver.build_dependencies_bin(true) super end
options()
click to toggle source
Calls superclass method
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 15 def self.options [ ['--code-dependencies', '使用源码依赖'], ['--allow-prerelease', '允许使用 prerelease 的版本'], ['--no-clean', '保留构建中间产物'], ['--framework-output', '输出framework文件'], ['--no-zip', '不压缩静态 framework 为 zip'], ['--all-make', '对该组件的依赖库,全部制作为二进制组件'], ['--configuration', 'Build the specified configuration (e.g. Release ). Defaults to Debug'], ['--env', "该组件上传的环境 %w[dev debug_iphoneos release_iphoneos]"], ['--only-build', "该组件只编译生成产物,不上传"], ['--use-modular-headers', '使用modular-headers打包'] ].concat(Pod::Command::Gen.options).concat(super).uniq end
Public Instance Methods
binary_podsepc_json()
click to toggle source
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 156 def binary_podsepc_json "#{@specification.name}.binary.podspec.json" end
binary_template_podsepc()
click to toggle source
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 160 def binary_template_podsepc "#{@specification.name}.binary-template.podspec" end
code_podsepc_extname()
click to toggle source
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 152 def code_podsepc_extname '.podsepc' end
find_podspec()
click to toggle source
Dir.glob 可替代
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 198 def find_podspec name = nil Pathname.pwd.children.each do |child| puts child if File.file?(child) if child.extname == '.podspec' name = File.basename(child) unless name.include?("binary-template") return name end end end end return name end
run()
click to toggle source
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 63 def run @specification = Specification.from_file(@podspec) source_specs = run_archive fail_push_specs = [] if !@only_build source_specs.uniq.each do |spec| begin fail_push_specs << spec unless CBin::Upload::Helper.new(spec,@code_dependencies,@sources).upload rescue Object => exception UI.puts exception fail_push_specs << spec end end if fail_push_specs.any? fail_push_specs.uniq.each do |spec| UI.warn "【#{spec.name} | #{spec.version}】组件spec push失败 ." end end end success_specs = source_specs - fail_push_specs if success_specs.any? auto_success = "" success_specs.uniq.each do |spec| auto_success += "#{spec.name} | #{spec.version}\n" UI.warn "===【 #{spec.name} | #{spec.version} 】二进制组件制作完成 !!! " end puts "============== auto_success" puts auto_success ENV['auto_success'] = auto_success end #pod repo update UI.section("\nUpdating Spec Repositories\n".yellow) do Pod::Command::Bin::Repo::Update.new(CLAide::ARGV.new([])).run end end
run_archive()
click to toggle source
制作二进制包
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 108 def run_archive argvs = [ "--sources=#{sources_option(@code_dependencies, @sources)}", @additional_args ] argvs << spec_file if spec_file argvs.delete(Array.new) unless @clean argvs += ['--no-clean'] end if @code_dependencies argvs += ['--code-dependencies'] end if @verbose argvs += ['--verbose'] end if @allow_prerelease argvs += ['--allow-prerelease'] end if @framework_output argvs += ['--framework-output'] end if @all_make argvs += ['--all-make'] end if @env argvs += ["--env=#{@env}"] end if @use_modular_headers argvs += ['--use-modular-headers'] end argvs += ["--configuration=#{@config}"] archive = Pod::Command::Bin::Archive.new(CLAide::ARGV.new(argvs)) archive.validate! source_specs = archive.run source_specs end
spec_file()
click to toggle source
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 174 def spec_file @spec_file ||= begin if @podspec find_spec_file(@podspec) || @podspec else if code_spec_files.empty? raise Informative, '当前目录下没有找到可用源码 podspec.' end spec_file = if @binary code_spec = Pod::Specification.from_file(code_spec_files.first) if template_spec_file template_spec = Pod::Specification.from_file(template_spec_file) end create_binary_spec_file(code_spec, template_spec) else code_spec_files.first end spec_file end end end
template_spec_file()
click to toggle source
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 164 def template_spec_file @template_spec_file ||= begin if @template_podspec find_spec_file(@template_podspec) else binary_template_spec_file end end end
validate!()
click to toggle source
Calls superclass method
Pod::Command::Bin#validate!
# File lib/cocoapods-tdf-bin/command/bin/auto.rb, line 58 def validate! help! "未找到 podspec文件" unless @podspec super end