Class: Pod::Command::Fmwk::Build

Inherits:
Pod::Command::Fmwk show all
Defined in:
lib/pod/command/fmwk/build.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Build

Returns a new instance of Build.



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/pod/command/fmwk/build.rb', line 48

def initialize(argv)
  @workspace           = argv.flag?('workspace')
  # @allow_warnings  = argv.flag?('allow-warnings')
  # @clean           = argv.flag?('clean', true)
  # @fail_fast       = argv.flag?('fail-fast', false)
  # @subspecs        = argv.flag?('subspecs', true)
  # @only_subspec    = argv.option('subspec')
  # @use_frameworks  = !argv.flag?('use-libraries')
  # @source_urls     = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
  # @private         = argv.flag?('private', false)
  # @swift_version   = argv.option('swift-version', nil)
  # @skip_import_validation = argv.flag?('skip-import-validation', false)
  # @skip_tests = argv.flag?('skip-tests', false)
  @framework_names = argv.arguments!
  super
end

Class Method Details

.optionsObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/pod/command/fmwk/build.rb', line 28

def self.options
  [
    ['--workspace', '构建 workspace,若不指定,默认为构建 project'],
    # ['--allow-warnings', 'Lint validates even if warnings are present'],
    # ['--subspec=NAME', 'Lint validates only the given subspec'],
    # ['--no-subspecs', 'Lint skips validation of subspecs'],
    # ['--no-clean', 'Lint leaves the build directory intact for inspection'],
    # ['--fail-fast', 'Lint stops on the first failing platform or subspec'],
    # ['--use-libraries', 'Lint uses static libraries to install the spec'],
    # ['--sources=https://github.com/artsy/Specs,master', 'The sources from which to pull dependent pods ' \
    #   '(defaults to https://github.com/CocoaPods/Specs.git). ' \
    #   'Multiple sources must be comma-delimited.'],
    # ['--private', 'Lint skips checks that apply only to public specs'],
    # ['--swift-version=VERSION', 'The SWIFT_VERSION that should be used to lint the spec. ' \
    #   'This takes precedence over a .swift-version file.'],
    # ['--skip-import-validation', 'Lint skips validating that the pod can be imported'],
    # ['--skip-tests', 'Lint skips building and running tests during validation'],
  ].concat(super)
end

Instance Method Details

#runObject



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/pod/command/fmwk/build.rb', line 69

def run
  framework_names.each do |podspec|
    `rm -rf #{build_path}` unless !Dir.exist?(build_path)

    puts "打真机包..."
    puts

    output = xcodebuild(podspec)
    puts output
    puts 

    puts "打模拟器包..."
    puts
    output = xcodebuild(podspec, :iphonesimulator)
    puts output
    puts
    puts "生成合成包..."
    puts
    `lipo #{derived_data_path}/#{podspec}/Build/Products/Release-iphoneos/#{podspec}.framework/#{podspec} #{derived_data_path}/#{podspec}/Build/Products/Release-iphonesimulator/#{podspec}.framework/#{podspec} -create -output #{build_path}/#{podspec}`
    `cp -r #{derived_data_path}/#{podspec}/Build/Products/Release-iphoneos/#{podspec}.framework #{build_path}/`
    `cp -f #{build_path}/#{podspec} #{build_path}/#{podspec}.framework/`
    `rm #{build_path}/#{podspec}`
    puts "成功输出 framework 于 #{build_path}/#{podspec}.framework/"
    puts
  end
end

#validate!Object



65
66
67
# File 'lib/pod/command/fmwk/build.rb', line 65

def validate!
  super
end