Class: BuildBinary

Inherits:
Object show all
Defined in:
lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb

Overview

Class build framework

Instance Method Summary collapse

Constructor Details

#initialize(binary_type) ⇒ BuildBinary



12
13
14
15
16
17
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 12

def initialize(binary_type)
  @config_instance = MBuildConfig.instance
  @binary_type = binary_type
  @pod_name = @config_instance.pod_name
  @pod_version = @config_instance.pod_version
end

Instance Method Details

#buildObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 19

def build
  clean
  Dir.chdir('Pods') do
    build_iphoneos_framework
    build_iphonesimulator_framework
  end
  framework = create_universal_framework
  generate_final_binary(framework)
  generate_cache_file
end

#build_iphoneos_frameworkObject



37
38
39
40
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 37

def build_iphoneos_framework
  build_cmd = "xcodebuild build -target #{@pod_name} -sdk iphoneos -arch arm64 -quiet"
  system build_cmd
end

#build_iphonesimulator_frameworkObject



42
43
44
45
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 42

def build_iphonesimulator_framework
  build_cmd = "xcodebuild build -target #{@pod_name} -sdk iphonesimulator -arch x86_64 -quiet"
  system build_cmd
end

#cleanObject



30
31
32
33
34
35
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 30

def clean
  binary_dir = "#{@config_instance.mbuild_dir}/#{@pod_name}"
  FileUtils.rm_rf(binary_dir) if Dir.exist?(binary_dir)
  clean_cmd = 'xcodebuild clean'
  system clean_cmd
end

#create_universal_frameworkObject



47
48
49
50
51
52
53
54
55
56
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 47

def create_universal_framework
  iphoneos_framework = "./build/Release-iphoneos/#{@pod_name}/#{@pod_name}.framework"
  simulator_framework = iphoneos_framework.gsub('iphoneos', 'iphonesimulator')
  if @binary_type == BinaryType::FRAMEWORK
    build_framework(iphoneos_framework, simulator_framework)
  else
    build_xcframework(iphoneos_framework, simulator_framework)
  end
  iphoneos_framework.gsub("#{@pod_name}.framework", '')
end

#generate_cache_fileObject



64
65
66
67
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 64

def generate_cache_file
  binary_dir = "#{@config_instance.mbuild_dir}/#{@pod_name}/Podfile.lock"
  FileUtils.cp_r("#{@config_instance.mbuild_dir}/project/Podfile.lock", binary_dir)
end

#generate_final_binary(framework) ⇒ Object



58
59
60
61
62
# File 'lib/cocoapods-podspec-binary/mbuild/mbuild_binary.rb', line 58

def generate_final_binary(framework)
  binary_dir = "#{@config_instance.mbuild_dir}/#{@pod_name}"
  Dir.mkdir(binary_dir) if Dir.exist? binary_dir
  FileUtils.cp_r(framework, binary_dir)
end