luna-binary-uploader 0.1.16 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eabb8cf60ac1ae91b7f1bcdf005fd59b885ee60627307c4aa3ac0f6150c759b3
4
- data.tar.gz: 04d6b4672865935bcc3d204e4b4657e6351ceaca39687f58909580fb45aeb179
3
+ metadata.gz: 4ef5b62bf685747e70e13f3ea5480f37cb303dfe1b37cb66690baa8beee4ec3e
4
+ data.tar.gz: 9366ecb00ae20f321afce1b2ccc319793be0f4291c7e4ba4d900f0ad983f5f80
5
5
  SHA512:
6
- metadata.gz: '0422488449593c2e144358cf2c98a116af7800675c8e6c97667120bca995a7eeaf9b3421f3fc5c1efa17c28efa82e733f66995ea397eee146da64d3f9de1bbb3'
7
- data.tar.gz: 201e7660cfacc4d82ba60fb7d561de626e3841787ef5f122bce557a435213dd25ece50059d168e0cb98f9ab375f334b358b42ce58ea835416d0f662b5857856c
6
+ metadata.gz: 253788b801070db954121214fb1c9f1cbf4363350dfd2861716d8aeb68ff29f1fcffe1910b86b5ecd29f5b53d6966ab7b6db7481f837379a15d5d06f1b5af9ca
7
+ data.tar.gz: 2d6038f930cb1ded0bc343f7d747a913fd7a7d3d1e6c21b4b11808c118a5311bb7b41163f1c8f91fdd9a3be47f1afd6af13be78bbdd0ea43212bd175a2170039
data/.gitignore CHANGED
@@ -6,7 +6,6 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
- Gemfile.lock
10
9
  Podfile
11
10
  Podfile.lock
12
11
  temp-luna-uploader/
data/Gemfile.lock ADDED
@@ -0,0 +1,174 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ luna-binary-uploader (0.1.17)
5
+ cocoapods
6
+ cocoapods-generate (~> 2.0.1)
7
+ cocoapods-imy-bin (= 0.3.1.3)
8
+ gli (= 2.19.0)
9
+ parallel
10
+
11
+ GEM
12
+ remote: https://rubygems.org/
13
+ specs:
14
+ CFPropertyList (3.0.4)
15
+ rexml
16
+ activesupport (6.1.4.1)
17
+ concurrent-ruby (~> 1.0, >= 1.0.2)
18
+ i18n (>= 1.6, < 2)
19
+ minitest (>= 5.1)
20
+ tzinfo (~> 2.0)
21
+ zeitwerk (~> 2.3)
22
+ addressable (2.8.0)
23
+ public_suffix (>= 2.0.2, < 5.0)
24
+ algoliasearch (1.27.5)
25
+ httpclient (~> 2.8, >= 2.8.3)
26
+ json (>= 1.5.1)
27
+ aruba (2.0.0)
28
+ bundler (>= 1.17, < 3.0)
29
+ childprocess (>= 2.0, < 5.0)
30
+ contracts (>= 0.16.0, < 0.18.0)
31
+ cucumber (>= 4.0, < 8.0)
32
+ rspec-expectations (~> 3.4)
33
+ thor (~> 1.0)
34
+ atomos (0.1.3)
35
+ builder (3.2.4)
36
+ childprocess (4.1.0)
37
+ claide (1.0.3)
38
+ cocoapods (1.11.2)
39
+ addressable (~> 2.8)
40
+ claide (>= 1.0.2, < 2.0)
41
+ cocoapods-core (= 1.11.2)
42
+ cocoapods-deintegrate (>= 1.0.3, < 2.0)
43
+ cocoapods-downloader (>= 1.4.0, < 2.0)
44
+ cocoapods-plugins (>= 1.0.0, < 2.0)
45
+ cocoapods-search (>= 1.0.0, < 2.0)
46
+ cocoapods-trunk (>= 1.4.0, < 2.0)
47
+ cocoapods-try (>= 1.1.0, < 2.0)
48
+ colored2 (~> 3.1)
49
+ escape (~> 0.0.4)
50
+ fourflusher (>= 2.3.0, < 3.0)
51
+ gh_inspector (~> 1.0)
52
+ molinillo (~> 0.8.0)
53
+ nap (~> 1.0)
54
+ ruby-macho (>= 1.0, < 3.0)
55
+ xcodeproj (>= 1.21.0, < 2.0)
56
+ cocoapods-core (1.11.2)
57
+ activesupport (>= 5.0, < 7)
58
+ addressable (~> 2.8)
59
+ algoliasearch (~> 1.0)
60
+ concurrent-ruby (~> 1.1)
61
+ fuzzy_match (~> 2.0.4)
62
+ nap (~> 1.0)
63
+ netrc (~> 0.11)
64
+ public_suffix (~> 4.0)
65
+ typhoeus (~> 1.0)
66
+ cocoapods-deintegrate (1.0.5)
67
+ cocoapods-disable-podfile-validations (0.1.1)
68
+ cocoapods-downloader (1.5.1)
69
+ cocoapods-generate (2.0.1)
70
+ cocoapods-disable-podfile-validations (~> 0.1.1)
71
+ cocoapods-imy-bin (0.3.1.3)
72
+ cocoapods
73
+ cocoapods-generate (~> 2.0.0)
74
+ parallel
75
+ cocoapods-plugins (1.0.0)
76
+ nap
77
+ cocoapods-search (1.0.1)
78
+ cocoapods-trunk (1.6.0)
79
+ nap (>= 0.8, < 2.0)
80
+ netrc (~> 0.11)
81
+ cocoapods-try (1.2.0)
82
+ colored2 (3.1.2)
83
+ concurrent-ruby (1.1.9)
84
+ contracts (0.16.1)
85
+ cucumber (7.1.0)
86
+ builder (~> 3.2, >= 3.2.4)
87
+ cucumber-core (~> 10.1, >= 10.1.0)
88
+ cucumber-create-meta (~> 6.0, >= 6.0.1)
89
+ cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
90
+ cucumber-gherkin (~> 22.0, >= 22.0.0)
91
+ cucumber-html-formatter (~> 17.0, >= 17.0.0)
92
+ cucumber-messages (~> 17.1, >= 17.1.1)
93
+ cucumber-wire (~> 6.2, >= 6.2.0)
94
+ diff-lcs (~> 1.4, >= 1.4.4)
95
+ mime-types (~> 3.3, >= 3.3.1)
96
+ multi_test (~> 0.1, >= 0.1.2)
97
+ sys-uname (~> 1.2, >= 1.2.2)
98
+ cucumber-core (10.1.0)
99
+ cucumber-gherkin (~> 22.0, >= 22.0.0)
100
+ cucumber-messages (~> 17.1, >= 17.1.1)
101
+ cucumber-tag-expressions (~> 4.0, >= 4.0.2)
102
+ cucumber-create-meta (6.0.2)
103
+ cucumber-messages (~> 17.1, >= 17.1.1)
104
+ sys-uname (~> 1.2, >= 1.2.2)
105
+ cucumber-cucumber-expressions (14.0.0)
106
+ cucumber-gherkin (22.0.0)
107
+ cucumber-messages (~> 17.1, >= 17.1.1)
108
+ cucumber-html-formatter (17.0.0)
109
+ cucumber-messages (~> 17.1, >= 17.1.0)
110
+ cucumber-messages (17.1.1)
111
+ cucumber-tag-expressions (4.1.0)
112
+ cucumber-wire (6.2.0)
113
+ cucumber-core (~> 10.1, >= 10.1.0)
114
+ cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
115
+ cucumber-messages (~> 17.1, >= 17.1.1)
116
+ diff-lcs (1.4.4)
117
+ escape (0.0.4)
118
+ ethon (0.15.0)
119
+ ffi (>= 1.15.0)
120
+ ffi (1.15.4)
121
+ fourflusher (2.3.1)
122
+ fuzzy_match (2.0.4)
123
+ gh_inspector (1.1.3)
124
+ gli (2.19.0)
125
+ httpclient (2.8.3)
126
+ i18n (1.8.10)
127
+ concurrent-ruby (~> 1.0)
128
+ json (2.6.0)
129
+ mime-types (3.3.1)
130
+ mime-types-data (~> 3.2015)
131
+ mime-types-data (3.2021.0901)
132
+ minitest (5.14.4)
133
+ molinillo (0.8.0)
134
+ multi_test (0.1.2)
135
+ nanaimo (0.3.0)
136
+ nap (1.1.0)
137
+ netrc (0.11.0)
138
+ parallel (1.21.0)
139
+ public_suffix (4.0.6)
140
+ rake (12.3.3)
141
+ rdoc (6.3.2)
142
+ rexml (3.2.5)
143
+ rspec-expectations (3.10.1)
144
+ diff-lcs (>= 1.2.0, < 2.0)
145
+ rspec-support (~> 3.10.0)
146
+ rspec-support (3.10.2)
147
+ ruby-macho (2.5.1)
148
+ sys-uname (1.2.2)
149
+ ffi (~> 1.1)
150
+ thor (1.1.0)
151
+ typhoeus (1.4.0)
152
+ ethon (>= 0.9.0)
153
+ tzinfo (2.0.4)
154
+ concurrent-ruby (~> 1.0)
155
+ xcodeproj (1.21.0)
156
+ CFPropertyList (>= 2.3.3, < 4.0)
157
+ atomos (~> 0.1.3)
158
+ claide (>= 1.0.2, < 2.0)
159
+ colored2 (~> 3.1)
160
+ nanaimo (~> 0.3.0)
161
+ rexml (~> 3.2.4)
162
+ zeitwerk (2.5.0)
163
+
164
+ PLATFORMS
165
+ ruby
166
+
167
+ DEPENDENCIES
168
+ aruba
169
+ luna-binary-uploader!
170
+ rake (~> 12.0)
171
+ rdoc
172
+
173
+ BUNDLED WITH
174
+ 2.1.4
data/bin/lbu CHANGED
@@ -1,12 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require "bundler/setup"
4
- require "luna/binary/uploader"
5
- require "luna/binary/delete"
6
- require "luna/binary/analysis"
7
- require "luna/binary/refresh"
8
- require "luna/binary/build"
9
- require "luna/binary/update"
4
+ require "luna-binary-uploader"
10
5
  require 'gli'
11
6
 
12
7
  # You can add fixtures and/or initialization code here to make experimenting
@@ -19,7 +14,7 @@ require 'gli'
19
14
  class App
20
15
  extend GLI::App
21
16
 
22
- program_desc 'luna cocopods-imy-bin自定义二进制上传'
17
+ program_desc 'luna-binary-uploader 自定义二进制上传'
23
18
 
24
19
  version Luna::Binary::Uploader::VERSION
25
20
 
@@ -54,8 +49,35 @@ class App
54
49
  end
55
50
  end
56
51
 
52
+ desc '初始化二进制配置repo代码'
53
+ arg_name 'url地址'
54
+ command :init do |c|
55
+ c.action do |global_options,options,args|
56
+ if args[0]
57
+ Luna::Binary::Init.new(args[0])
58
+ else
59
+ raise "添加url地址"
60
+ end
61
+ end
62
+ end
63
+
64
+
65
+ desc '对pod install封装,一键开关二进制'
66
+ arg_name '只接参数n, 表示不用二进制 '
67
+ command :install do |c|
68
+ c.action do |global_options,options,args|
69
+ is_open = "false"
70
+ if args[0] && args[0] != "n"
71
+ raise "只接参数n, 表示不用二进制"
72
+ else
73
+ is_open = "true"
74
+ end
75
+ Luna::Binary::Install.new(is_open)
76
+ end
77
+ end
78
+
57
79
  desc '单个上传二进制文件'
58
- arg_name '1.模块名 git地址 git节点 xcode编译的缓存地址 \n 2.模块名 版本号 xcode编译的缓存地址 \n 3.模块名 本地podspec地址 xcode编译的缓存地址'
80
+ arg_name 'a.模块名 git地址 git节点 xcode编译的缓存地址 \n b.模块名 版本号 xcode编译的缓存地址 \n c.模块名 本地podspec地址 xcode编译的缓存地址'
59
81
  command :single do |c|
60
82
  c.action do |global_options,options,args|
61
83
  if args[3] #模式1
@@ -94,10 +116,14 @@ class App
94
116
  end
95
117
 
96
118
  desc '单个删除repo 里的podspec & 服务二进制文件'
97
- arg_name '模块名 版本号'
119
+ arg_name '1.模块名 2.版本号'
98
120
  command :del do |c|
99
121
  c.action do |global_options,options,args|
100
- Luna::Binary::Delete.new(args[0],args[1]).delete
122
+ if args[0] && args[1]
123
+ Luna::Binary::Delete.new(args[0],args[1]).delete
124
+ else
125
+ raise "缺少参数:1.模块名 2.版本号"
126
+ end
101
127
  end
102
128
  end
103
129
 
@@ -148,10 +174,14 @@ class App
148
174
  arg_name '1.xcworkspace 名称 eg:MyWorkSpace.xcworkspace 2.scheme eg: MyProject'
149
175
  command :build do |c|
150
176
  c.action do |global_options,options,args|
177
+ if args[0] && args[1]
151
178
  obj = Luna::Binary::Build.new()
152
179
  obj.workspace=args[0]
153
180
  obj.scheme=args[1]
154
181
  obj.run
182
+ else
183
+ raise "缺少参数:1.xcworkspace 名称 eg:MyWorkSpace.xcworkspace 2.scheme eg: MyProject"
184
+ end
155
185
  end
156
186
  end
157
187
 
@@ -159,8 +189,12 @@ class App
159
189
  arg_name '1.armPath 2.x86path'
160
190
  command :merge do |c|
161
191
  c.action do |global_options,options,args|
192
+ if args[0] && args[1]
162
193
  obj = Luna::Binary::Build.new()
163
194
  obj.mergeFrameWorks(args[0], args[1])
195
+ else
196
+ raise "缺少参数:1.armPath 2.x86path"
197
+ end
164
198
  end
165
199
  end
166
200
 
@@ -20,88 +20,58 @@ module Luna
20
20
  end
21
21
 
22
22
  def validate!
23
- arr = Dir.glob(Luna::Binary::Common.instance.podFilePath)
23
+ arr = Dir.glob(Common.instance.podFilePath)
24
24
  if arr == nil
25
25
  raise '当前路径下没有Podfile'
26
26
  end
27
27
  end
28
28
 
29
29
  def lockfile
30
- return Luna::Binary::Common.instance.lockfile
30
+ return Common.instance.lockfile
31
31
  end
32
32
 
33
33
  def run
34
-
35
34
  failList = []
36
35
  successList = []
37
- localPathMapper = {}
38
36
 
39
- dependenciesMapper = lockfile.dependencies.map { |item| [item.name, item]}.to_h
37
+ dependenciesMapper = Common.instance.dependenciesMapper
40
38
  dedupingMapper = {}
41
39
  lockfile.pod_names.each { |item|
42
40
  moduleName = item.split('/').first
43
41
  if !moduleName["/"] && dedupingMapper[moduleName] == nil
44
42
  dedupingMapper[moduleName] = moduleName
45
- Pod::UserInterface.puts moduleName.yellow
46
- if dependenciesMapper[moduleName]
47
- lockContent = lockfile.dependencies_to_lock_pod_named(moduleName)
48
- if lockContent #dependencies 应该拿不到所有的spec的依赖,我理解只能拿到podfile里面标明的,词典碰到dependency 没有bonmot的情况
49
- lockContent.each { |lockItem|
50
- begin
51
- if lockItem.external_source == nil
52
- uploader = uploadLintPodSpec(moduleName, lockItem.specific_version, binary_path)
53
- if uploader != nil
54
- successList << uploader
55
- end
56
- else
57
- p lockItem.external_source
58
- gitURL = lockItem.external_source['git'.parameterize.underscore.to_sym]
59
- tag = lockItem.external_source['tag'.parameterize.underscore.to_sym]
60
- path = lockItem.external_source['path'.parameterize.underscore.to_sym]
61
- p "#{moduleName} git: #{gitURL} tag: #{tag} path: #{path}"
62
- if path
63
- pathArr = Dir.glob("#{Dir.pwd}/#{path}/**/#{moduleName}.podspec")
64
- if pathArr
65
- uploader = Luna::Binary::Uploader::SingleUploader.new(moduleName, "", "", binary_path)
66
- uploader.specification=Pod::Specification.from_file(pathArr.first)
67
- uploader.specificationWork
68
- localPathMapper[moduleName] = pathArr.first
69
- end
70
-
71
- elsif gitURL && tag && !moduleName["/"]
72
- uploader = Luna::Binary::Uploader::SingleUploader.new(moduleName, gitURL, tag, binary_path)
73
- uploader.specificationWork
74
- successList << uploader
75
- end
76
- end
77
- rescue => exception
78
- failList << exception
79
- ensure
80
-
81
- end
82
- }
83
- end
84
- else
85
- begin
86
- uploader = uploadLintPodSpec(moduleName, lockfile.version(moduleName), binary_path)
87
- if uploader != nil
88
- successList << uploader
89
- end
90
- rescue => exception
91
- failList << exception
92
- ensure
93
-
43
+ puts moduleName.yellow
44
+ begin
45
+ uploader = Common.instance.upload_lockitem(dependenciesMapper, moduleName, binary_path)
46
+ if uploader != nil
47
+ successList << uploader
48
+ else
49
+ failList << "#{moduleName} 为空"
94
50
  end
51
+
52
+ rescue => exception
53
+ failList << "#{moduleName} exception: #{exception}"
54
+ ensure
55
+
95
56
  end
96
57
  end
97
58
  }
98
- p "-=-=-=-=-=-=-=-=-=-=-=-命令生成=-=-=-=-=-=-=-=-=-=-=-=-=-="
59
+ puts "-=-=-=-=-=-=-=-=-=-=-=-打印错误信息=-=-=-=-=-=-=-=-=-=-=-=-=-=".yellow if failList.length > 0
60
+ puts "请查看下时候存在影响,如怀疑程序错误请联系作者".yellow if failList.length > 0
61
+ failList.each{ |item|
62
+ puts item.red
63
+ }
64
+
65
+ puts "-=-=-=-=-=-=-=-=-=-=-=-命令生成=-=-=-=-=-=-=-=-=-=-=-=-=-=".yellow
99
66
  hasInCocopodsSpec = []
100
67
  externalSpec = []
68
+ local_spec = []
101
69
  failPrint = []
102
70
 
103
71
  successList.each { |item|
104
- if item.gitUrl.length > 0
72
+ if item.local_path
73
+ local_spec << item
74
+ elsif item.gitUrl.length > 0
105
75
  externalSpec << item
106
76
  else
107
77
  hasInCocopodsSpec << item
@@ -111,8 +81,7 @@ module Luna
111
81
  begin
112
82
  item.printPreUploadCommand
113
83
  rescue => exception
114
- # p exception
115
- failPrint << "#{exception}"
84
+ failPrint << "#{item.podspecName} exception: #{exception}"
116
85
  ensure
117
86
 
118
87
  end
@@ -121,57 +90,50 @@ module Luna
121
90
  begin
122
91
  item.printPreUploadCommand
123
92
  rescue => exception
124
- # p exception
125
- failPrint << "#{exception}"
93
+ failPrint << "#{item.podspecName} exception: #{exception}"
126
94
  ensure
127
95
 
128
96
  end
129
97
  }
130
98
 
131
- localPathMapper.each { |k,v|
132
- p "lbu single #{k} #{v} #{binary_path}"
99
+ local_spec.each { |item|
100
+ begin
101
+ item.printPreUploadCommand
102
+ rescue => exception
103
+ failPrint << "#{item.podspecName} exception: #{exception}"
104
+ ensure
105
+
106
+ end
133
107
  }
134
108
 
135
- p "-=-=-=-=-=-=-=-=-=-=-=-命令生成end=-=-=-=-=-=-=-=-=-=-=-=-=-="
136
- p "错误信息:#{failPrint}"
137
- execUpload(hasInCocopodsSpec)
138
- execUpload(externalSpec)
139
- end
109
+ puts "-=-=-=-=-=-=-=-=-=-=-=-命令生成end=-=-=-=-=-=-=-=-=-=-=-=-=-=".yellow
140
110
 
141
- def findLintPodspec(moduleName)
142
- return Luna::Binary::Common.instance.findLintPodspec(moduleName)
143
- end
111
+ failPrint.each{ |item|
112
+ puts item.red
113
+ }
144
114
 
145
- def uploadLintPodSpec(moduleName, specificVersion, binaryPath)
146
- set = findLintPodspec(moduleName)
147
- if set
148
- pathArr = set.specification_paths_for_version(specificVersion)
149
- if pathArr.length > 0
150
- uploader = Luna::Binary::Uploader::SingleUploader.new(moduleName, "", "", binaryPath)
151
- uploader.specification=Pod::Specification.from_file(pathArr.first)
152
- uploader.specificationWork
153
- end
154
- end
155
- return uploader
115
+ execUpload(successList)
156
116
  end
157
-
117
+
158
118
  def execUpload(items)
159
119
  if need_upload != nil && need_upload == "upload"
120
+ puts "-=-=-=-=-=-=-=-=-=-=-=-开始上传=-=-=-=-=-=-=-=-=-=-=-=-=-=".yellow
160
121
  items.each { |item|
161
122
  begin
162
123
  item.upload
163
124
  rescue => exception
164
- p "异常上传过程中出现了:#{exception}"
125
+ puts "异常上传过程中出现了:#{exception}".red
165
126
  else
166
127
 
167
128
  end
168
129
 
169
130
  }
131
+ puts "-=-=-=-=-=-=-=-=-=-=-=-上传结束=-=-=-=-=-=-=-=-=-=-=-=-=-=".yellow
170
132
  end
171
133
  end
172
134
 
173
135
  def command(c)
174
- return Luna::Binary::Common.instance.command(c)
136
+ return Common.instance.command(c)
175
137
  end
176
138
 
177
139
  end
@@ -20,36 +20,40 @@ module Luna
20
20
  end
21
21
 
22
22
  def command(c)
23
- return Luna::Binary::Common.instance.command(c)
23
+ return Common.instance.command(c)
24
24
  end
25
25
 
26
26
  def createFrameworks
27
27
  isNext = true
28
- Pod::UserInterface.puts "请将二进制开关关闭,确保每个模块都是源码运行,因为二进制的因素有可能source缓存还是会引入二进制".yellow
29
- command("rm -rf #{Dir.pwd}/Pods")
30
-
31
- isNext = command("pod install")
32
- Luna::Binary::Common.instance.deleteDirectory(binary_path_arm)
33
- tempLunaUploaderPath = Luna::Binary::Common.instance.tempLunaUploaderPath
28
+ puts "请将二进制开关关闭,确保每个模块都是源码运行,因为二进制的因素有可能source缓存还是会引入二进制".yellow
29
+ Install.new(false)
30
+ Common.instance.deleteDirectory(binary_path_arm)
31
+ tempLunaUploaderPath = Common.instance.tempLunaUploaderPath
34
32
  isNext = command("xcodebuild -workspace #{workspace} -scheme #{scheme} -configuration Debug -derivedDataPath '#{tempLunaUploaderPath}/build/arm/temp'") if isNext == true
35
- isNext = command("cp -r #{tempLunaUploaderPath}/build/arm/temp/Build/Products #{binary_path_arm}") if isNext == true #本可以用CONFIGURATION_BUILD_DIR直接指定结果文件夹,结果经常性的编译报错
36
- Luna::Binary::Common.instance.deleteDirectory(binary_path_x86)
33
+ isNext = command("cp -r #{tempLunaUploaderPath}/build/arm/temp/Build/Products/Debug-iphoneos #{binary_path_arm}") if isNext == true #本可以用CONFIGURATION_BUILD_DIR直接指定结果文件夹,结果经常性的编译报错
34
+ Common.instance.deleteDirectory(binary_path_x86)
37
35
  isNext = command("xcodebuild -workspace #{workspace} -scheme #{scheme} -configuration Debug -derivedDataPath '#{tempLunaUploaderPath}/build/x86/temp' -destination 'platform=iOS Simulator,name=iPhone 11'") if isNext == true
38
- isNext = command("cp -r #{tempLunaUploaderPath}/build/x86/temp/Build/Products #{binary_path_x86}") if isNext == true
36
+ isNext = command("cp -r #{tempLunaUploaderPath}/build/x86/temp/Build/Products/Debug-iphonesimulator #{binary_path_x86}") if isNext == true
39
37
  mergeFrameWorks(binary_path_arm, binary_path_x86) if isNext == true
40
38
  end
41
39
 
42
40
  def mergeFrameWorks(binary_path_arm, binary_path_x86)
43
- Luna::Binary::Common.instance.deleteDirectory(binary_path_merged)
41
+ Common.instance.deleteDirectory(binary_path_merged)
44
42
  dedupingMapper = {}
45
43
  failList = []
46
- lockfile.pod_names.each { |item|
47
- if item["/"] == nil && dedupingMapper[item] == nil
44
+ p lockfile.pod_names
45
+ lockfile.pod_names.each { |i|
46
+ item = i.split("/").first
47
+ if dedupingMapper[item] == nil
48
48
  begin
49
- Pod::UserInterface.puts item.yellow
49
+ puts item.yellow
50
50
  armPath = findFramework(item,binary_path_arm)
51
51
  x86Path = findFramework(item,binary_path_x86)
52
- mergeFrameWork(item, armPath, x86Path) if armPath != nil && x86Path != nil
52
+
53
+ is_merge = mergeFrameWork(item, armPath, x86Path) if armPath != nil && x86Path != nil
54
+ trasher_path = "#{Common.instance.tempLunaUploaderPath}/trasher"
55
+ failList << "#{item} 存在问题,已搬到#{trasher_path}" if is_merge == false
56
+ command("mkdir #{trasher_path}; mv #{binary_path_merged}/#{item} #{trasher_path}") if is_merge == false
53
57
  dedupingMapper[item] = item
54
58
  rescue => exception
55
59
  failList << "#{item} exception : #{exception}"
@@ -60,12 +64,15 @@ module Luna
60
64
  end
61
65
  }
62
66
 
63
- Pod::UserInterface.puts "合并后的framework的路径为:#{binary_path_merged}".yellow
64
- Pod::UserInterface.puts "失败的名单为:#{failList}".yellow
67
+ puts "合并后的framework的路径为:#{binary_path_merged}".green
68
+ puts "-=-=-=-=-=-=-=-=merge 失败名单-=-=-=-=-=-=-=-=-=-=" if failList.length > 0
69
+ failList.each { |item|
70
+ puts item.red
71
+ }
65
72
  end
66
73
 
67
74
  def lockfile
68
- return Luna::Binary::Common.instance.lockfile
75
+ return Common.instance.lockfile
69
76
  end
70
77
 
71
78
  def xcodeSimulators
@@ -74,9 +81,9 @@ module Luna
74
81
  end
75
82
 
76
83
  def mergeFrameWork(moduleName, path1, path2)
77
- command("mkdir -p #{binary_path_merged}; cp -r #{File.dirname(path1)} #{binary_path_merged}; mv #{binary_path_merged}/#{File.basename(File.dirname(path1))} #{binary_path_merged}/#{moduleName};")
78
- command("lipo -create #{path2}/#{moduleName} #{path1}/#{moduleName} -output #{binary_path_merged}/#{moduleName}/#{moduleName}.framework/#{moduleName}")
79
- command("cp -r #{path2}/Modules/#{moduleName}.swiftmodule #{binary_path_merged}/#{moduleName}/#{moduleName}.framework/Modules")
84
+ command("mkdir -p #{binary_path_merged}; cp -r #{File.dirname(path1)} #{binary_path_merged}; cp -r #{File.dirname(path2)} #{binary_path_merged}; mv #{binary_path_merged}/#{File.basename(File.dirname(path1))} #{binary_path_merged}/#{moduleName};")
85
+ framework_name = moduleName.gsub("-", "_")
86
+ return command("lipo -create #{path2}/#{framework_name} #{path1}/#{framework_name} -output #{binary_path_merged}/#{moduleName}/#{framework_name}.framework/#{framework_name}")
80
87
  end
81
88
 
82
89
  def findFramework(moduleName, binary_path)
@@ -90,15 +97,15 @@ module Luna
90
97
 
91
98
 
92
99
  def binary_path_merged
93
- return Luna::Binary::Common.instance.binary_path_merged
100
+ return Common.instance.binary_path_merged
94
101
  end
95
102
 
96
103
  def binary_path_arm
97
- return Luna::Binary::Common.instance.binary_path_arm
104
+ return Common.instance.binary_path_arm
98
105
  end
99
106
 
100
107
  def binary_path_x86
101
- return Luna::Binary::Common.instance.binary_path_x86
108
+ return Common.instance.binary_path_x86
102
109
  end
103
110
  end
104
111
  end