cocoapods-BDTransform 4.3.0 → 5.1.0

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
- SHA1:
3
- metadata.gz: 2ff6d30a1f7aec823be3acb8bb8e914f83b328fa
4
- data.tar.gz: d40e6997001369e204361ca5e5ce975866f0a163
2
+ SHA256:
3
+ metadata.gz: 7b2e2ef9a1b3343574c504e8ac1322c643afa4b134429ca63dd99bbc8897ad93
4
+ data.tar.gz: 712b8dac3e56617535fa4778344114c28948960c39ff0876f028fa3515d0be17
5
5
  SHA512:
6
- metadata.gz: 6ac4d38a78a31129ce2e3843a27302f0f3bd7e80dc4944ef1501900e52ec3ceb574509692f00c3a019aade24f0ee0b5d13feefe74daac188b133b44f8c1a042c
7
- data.tar.gz: e600f272249a686077e94d4fbd46cf90f333d789501d54d3929b49522d3cf909b52a97ec29c7ab2c502cb37b652406032a955c10f9feebc294289014d76cee09
6
+ metadata.gz: 6db3687c0fe4cc5542a3cc500073c2fcf105bec23f6955a77afedba8dd90370d507156c06d37b1f57668f91a5e54ba5c2bfbe06181a89bea933ca43788695adb
7
+ data.tar.gz: fa3c2533257861c8ed39ef8cab38b326580e606c5c3d98092f22ebe3ad8f45212c5ff78a04baa7847f75f555987b537624af395cad46c2e1cf296a0845a44179
data/README.md CHANGED
@@ -3,10 +3,11 @@
3
3
 
4
4
  cocoapods-BDTransform 是一款由组件化平台的提供的Pods辅助开发工具,可以方便地将二进制、源码、开发模式状态下的Pods进行转化。
5
5
 
6
- ##Feature
6
+ ## Feature
7
7
  - [x] 一键切换
8
8
  - [x] 无需重复pod install
9
9
  - [x] 增量编译
10
+ - [x] 查看Pods Log
10
11
 
11
12
 
12
13
  ## Installation
@@ -37,6 +38,7 @@ Commands:
37
38
  stable,connect with wusizhen by any problems
38
39
  + to-source Transform Pods from binary to source Note: only support for
39
40
  `.a` currently
41
+ + to-log 可以在 Xcode 中展示出 Pods 中的Log信息,便于追查问题
40
42
 
41
43
  Options:
42
44
 
@@ -47,9 +49,9 @@ Options:
47
49
 
48
50
  ```
49
51
 
50
- ##Example
52
+ ## Example
51
53
  由于头条的组件化进度比较快,因此以头条业务为例。目前头条业务中几乎所有的Pods都是以二进制状态存在,在日常开发迭代中经常会碰到下面的几种场景
52
- ####To-source
54
+ #### To-source
53
55
  当RD开完后一个Feature进行打包测试时,发现CI产出的包有异常的边界Case。通常的做法是切换到CI打包的时候的commitID,将认为有问题的Pods改成源码进行Debug。但是在Debug过程中,发现需要调试其他Pods的源码,这时又需要把另外一个Pods切换到 **pod_source**状态,重新进行 **pod install、rebuild**等,如果又遇到新的Pods可能还要重复上述操作「**当然还有同学为了避免这种问题,直接从开始就用源码编译。。。**」
54
56
 
55
57
  cocoapods-BDTransform插件可以避免上述的低效操作,比如Debug过程中发现**BDWebImage**需要进行调试,只需要在**Podfile同级目录下**运行下面指令,就可以进行Debug,而且是增量编译.
@@ -57,9 +59,9 @@ cocoapods-BDTransform插件可以避免上述的低效操作,比如Debug过程
57
59
  ```
58
60
  pod bdtransform to-source BDWebImage
59
61
  ```
60
- ####To-bianry
62
+ #### To-bianry
61
63
  切换源码到二进制过程的场景相对比较少。比如有业务同学想要调试二进制包问题,可以随意的进行二进制和源码切换。
62
- ####To-dev
64
+ #### To-dev
63
65
  任意模式切换到Development Pods模式。在日常的组件化开发中,待开发的组件经常会以
64
66
 
65
67
  ```
@@ -103,9 +105,58 @@ pod bdtransform to-dev --podspec=/Users/bob/Git/ios/tt_pods_ui/TTUIWidget.podspe
103
105
  ![](https://keep-international.oss-cn-beijing.aliyuncs.com/1536056060686.jpg
104
106
  )
105
107
 
106
- #####Warn:
108
+ #### To-log
109
+ 在进行组件化开发时常常有这种场景,当 RD 开发完集成完主工程后,发现需要开发 **组件 A** ,这时候有需要将 Podfile 改为 「或是通过 mbox add A 的方式」
110
+
111
+ ```ruby
112
+ pod 'A',:path => 'xxx/A.podspec'
113
+ ```
114
+ 然后重新进行 Pod install,重新构建。
115
+
116
+ 上面的原因是由于 Cocoapods 在构建时不保留 git 信息,因此对于集成在仓库下的 git 是无法提交和查看修改记录的。
117
+
118
+ 通过 **to-log** 功能可以很简单的避免这种低效的操作
119
+
120
+ ```ruby
121
+ pod bdtransform to-log
122
+
123
+ [!] A Pod name is required.
124
+
125
+ Usage:
126
+
127
+ $ pod bdtransform to-log podName
128
+
129
+ 可以在 Xcode 中展示出 Pods 中的 Log 信息,便于追查问题,目前只适用于源码以及打开了 showCode! 功能的项目
130
+ warning: 部署成功后,需要重启 Xcode
131
+
132
+ Options:
133
+
134
+ --silent Show nothing
135
+ --verbose Show more debugging information
136
+ --no-ansi Show output without ANSI codes
137
+ --help Show help banner of specified command
138
+ ```
139
+
140
+ **比如要对 YYCache 进行提交和查看历史,只需要这样**
141
+
142
+
143
+ ```ruby
144
+ ➜ Example git:(master) ✗ pod bdtransform to-log YYCache
145
+ -- 正在部署 YYCache
146
+ [!] 部署完毕,请重启 Xcode
147
+ ```
148
+ 部署完毕后重新 **Xcode**,如下图所示
149
+
150
+ ![](http://ppbsshdhl.bkt.clouddn.com/15553111494208.jpg)
151
+
152
+ 同时还可以直接通过 Xcode 提交代码
153
+
154
+ ![](http://ppbsshdhl.bkt.clouddn.com/15553112243624.jpg)
155
+
156
+
157
+ ##### Warn:
107
158
  **目前对于xib以及bundle语法支持有限,因此在待开发的Pods的版本差别很大时,会出现小概率的编译缓存问题**
108
- ##Note
159
+ ## Note
109
160
 
110
161
  BDTransform中的**to-binary**、**to-source** 是与组件化平台的策略强相关的,由于影响面巨大,前期在头条业务线经过了一个月的灰度阶段,目前已经比较稳定。如果其他业务线接入的话,请联系wusizhen.arch
111
162
 
@@ -6,8 +6,10 @@ module Pod
6
6
  require 'cocoapods-BDTransform/command/BDTransform/ToBinary'
7
7
  require 'cocoapods-BDTransform/command/BDTransform/ToSource'
8
8
  require 'cocoapods-BDTransform/command/BDTransform/ToDev'
9
+ require 'cocoapods-BDTransform/command/BDTransform/ToLog.rb'
10
+ require 'cocoapods-BDTransform/command/BDTransform/ToPlaceHold.rb'
9
11
  self.description = <<-DESC
10
- An awesome tool for transforming Pods from source to binary or binary to source without pod install && re-complier.Note: only support for .a currently .Warning: You should use 👉 bd_pod_extentions (2.0.0) 👈 to install your Project
12
+ An awesome tool for transforming Pods from source to binary or binary to source without pod install && re-complier.Note: only support for .a currently .Warning: You should use 👉 bd_pod_extentions (6.3.0) 👈 to install your Project
11
13
  DESC
12
14
  end
13
15
  end
@@ -0,0 +1,81 @@
1
+ require 'rubygems'
2
+ require 'json'
3
+ require 'pp'
4
+ require 'open-uri'
5
+ require 'net/http'
6
+ require 'rest'
7
+ require 'cocoapods-core'
8
+ require 'cocoapods-core/specification/json'
9
+ require 'cocoapods'
10
+ require 'cocoapods/sandbox/path_list'
11
+ require 'cocoapods/project'
12
+ require 'fileutils'
13
+
14
+
15
+ module BDAwesomeTransmit
16
+ class BDPodsTransLog
17
+
18
+ attr_accessor :repoName
19
+
20
+ attr_accessor :repo
21
+
22
+ def initialize(repoName)
23
+ @repoName = repoName
24
+ end
25
+
26
+
27
+ def run
28
+ requirePodspecInfo
29
+ checkUserPermission
30
+ establishGitRepo
31
+ end
32
+
33
+ private
34
+
35
+ # 检测用户权限
36
+
37
+ def checkUserPermission
38
+ return unless @repohomepage
39
+ # raise "没有权限访问 #{@repoName} 源码" unless Pod::HTTP::validate_url(@repohomepage).success?
40
+ end
41
+
42
+ # 获取 pod 的基本信息
43
+
44
+ def requirePodspecInfo
45
+ url = "https://ios.bytedance.net/api/v1/repo/all?appType=1&offset=1&limit=10&search=#{@repoName}&appId=-1"
46
+ req = REST.get(url, 'Authorization' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoid3VzaXpoZW4uYXJjaCIsImlhdCI6MTU0NDYwMjI5MH0.daVOz8_8Er0qTv1c4w5O7nGC9D-doDqlcaXOC4SBo2k')
47
+ pods = JSON.parse(req.body)
48
+ raise "没有在无线研发平台上发现对应的组件:#{@repoName},请重试一下" if pods['data']['count'] == 0
49
+ @repo = pods['data']['rows'].find { |component| component['repoName'] == @repoName}['repo']
50
+
51
+ @repohomepage = pods['data']['rows'][0]['repohomepage']
52
+ end
53
+
54
+
55
+
56
+ # 获取Git地址
57
+
58
+ def establishGitRepo
59
+ cdir = Dir::pwd
60
+ cdir = cdir + '/Pods/' + @repoName
61
+ Dir.mktmpdir{|dir|
62
+ Pod::CoreUI.print("-- 正在部署 #{@repoName} ")
63
+ Pod::CoreUI.print(" ")
64
+ output = `
65
+ cd #{dir}
66
+ git clone -q #{@repo} #{@repoName}
67
+ cd #{@repoName}
68
+ echo "#{cdir}/.git"
69
+ test -d #{cdir}/.git && rm -rf #{cdir}/.git
70
+ mv -f .git #{cdir}
71
+ `.lines.to_a
72
+ if $?.exitstatus != 0
73
+ Pod::CoreUI.warn('[ERROR] 部署失败,请产看原因:')
74
+ else
75
+ Pod::CoreUI.warn('部署完毕,请重启 Xcode')
76
+ end
77
+ }
78
+ end
79
+
80
+ end
81
+ end
@@ -1,3 +1,42 @@
1
+ require 'open-uri'
2
+ require 'net/http'
3
+
4
+ BEGIN {
5
+ def get_response(url)
6
+ begin
7
+ url_str = URI.parse(url)
8
+ $origin = File.dirname(__FILE__)
9
+ response = Net::HTTP.get_response(url_str)
10
+ code = response.body
11
+ status = response.code
12
+ raise '网络请求出错误,使用本地版本' unless status == '200'
13
+
14
+ $WORK_DIR_Binary = Dir.home() + '/.cocoapods-BDTransform'
15
+ lastDir = Dir::pwd
16
+ system("rm -rf #{$WORK_DIR_Binary}/AweToBinary") if File::exist?("#{$WORK_DIR_Binary}/AweToBinary")
17
+ Pathname.new($WORK_DIR_Binary).mkdir unless File::directory?($WORK_DIR_Binary)
18
+ Dir.chdir($WORK_DIR_Binary)
19
+ aFile = File.new("AweToBinary", "a+")
20
+ if aFile
21
+ aFile.syswrite(code)
22
+ Dir.chdir(lastDir)
23
+ else
24
+ use_PlaceHoldScript
25
+ end
26
+ rescue Exception => ex
27
+ p ex
28
+ use_PlaceHoldScript
29
+ end
30
+ end
31
+
32
+ def use_PlaceHoldScript
33
+ $WORK_DIR_Binary = $origin
34
+ end
35
+ require File.dirname(__FILE__)+'/../../gem_version.rb'
36
+ get_response("http://tosv.byted.org/obj/iosbinary/cocoapods-BDTransform/#{CocoapodsBdtransform::VERSION}/AweToBinary")
37
+
38
+ }
39
+
1
40
  module Pod
2
41
  class Command
3
42
  class Bdtransform
@@ -5,7 +44,7 @@ module Pod
5
44
  self.summary = 'Transform Pods from source to Binary Note: only support for `.a` currently'
6
45
 
7
46
  self.description = <<-DESC
8
- Transform Pods from Source to Binary Note: only support for `.a` currently. Warning: You should use `bd_pod_extentions (2.0.0)` to install your Project
47
+ Transform Pods from Source to Binary Note: only support for `.a` currently. Warning: You should use `bd_pod_extentions (6.3.0)` to install your Project
9
48
  DESC
10
49
 
11
50
  self.arguments = [
@@ -24,7 +63,8 @@ module Pod
24
63
  end
25
64
 
26
65
  def run
27
- cdir = File.dirname(__FILE__)
66
+ cdir = $WORK_DIR_Binary
67
+ File::chmod(0777,"#{cdir}/AweToBinary") if $WORK_DIR_Binary == Dir.home() + '/.cocoapods-BDTransform'
28
68
  if !@bd_transform_pod.empty?
29
69
  string = @bd_transform_pod.to_s
30
70
  string = string.gsub("\"","").gsub("[","").gsub("]","").gsub(","," ")
@@ -1,4 +1,42 @@
1
- require 'cocoapods-BDTransform/command/BDTransform/develop/dev.rb'
1
+ require 'open-uri'
2
+ require 'net/http'
3
+
4
+ BEGIN {
5
+ def get_response(url)
6
+ begin
7
+ url_str = URI.parse(url)
8
+ $origin = File.dirname(__FILE__)
9
+ response = Net::HTTP.get_response(url_str)
10
+ code = response.body
11
+ status = response.code
12
+ raise '网络请求出错误,使用本地版本' unless status == '200'
13
+
14
+ $WORK_DIR_Dev = Dir.home() + '/.cocoapods-BDTransform'
15
+ lastDir = Dir::pwd
16
+ system("rm -rf #{$WORK_DIR_Dev}/dev.rb") if File::exist?("#{$WORK_DIR_Dev}/dev.rb")
17
+ Pathname.new($WORK_DIR_Dev).mkdir unless File::directory?($WORK_DIR_Dev)
18
+ Dir.chdir($WORK_DIR_Dev)
19
+ aFile = File.new("dev.rb", "a+")
20
+ if aFile
21
+ aFile.syswrite(code)
22
+ Dir.chdir(lastDir)
23
+ else
24
+ use_PlaceHoldScript
25
+ end
26
+ rescue Exception => ex
27
+ p ex
28
+ use_PlaceHoldScript
29
+ end
30
+ end
31
+
32
+ def use_PlaceHoldScript
33
+ $WORK_DIR_Dev = $origin
34
+ end
35
+ require File.dirname(__FILE__)+'/../../gem_version.rb'
36
+
37
+ get_response("http://tosv.byted.org/obj/iosbinary/cocoapods-BDTransform/#{CocoapodsBdtransform::VERSION}/dev.rb")
38
+
39
+ }
2
40
  module Pod
3
41
  class Command
4
42
  class Bdtransform
@@ -13,7 +51,8 @@ module Pod
13
51
  [
14
52
  ['--podspec=', 'the absolute path of your podspec to dev. i.e --podspec=xxx/xxx.podspec'],
15
53
  ['--subspecs=', 'build with given subspecs. i.e --subspecs=Core,Monitor'],
16
- ['--targets=', 'the effected target of this operation. Default action effects all your target of Project']
54
+ ['--targets=', 'the effected target of this operation. Default action effects all your target of Project'],
55
+ ['--revert=', 'revert the to-dev operation pod,and reInstall your project i.e --revert=SDWebImage']
17
56
  ]
18
57
  end
19
58
 
@@ -22,6 +61,7 @@ module Pod
22
61
  @podspec = argv.option('podspec')
23
62
  subspecs = argv.option('subspecs')
24
63
  targets = argv.option('targets')
64
+ @revert = argv.option('revert')
25
65
  @subspecs = subspecs.split(',') unless subspecs.nil?
26
66
  @targets = targets.split(',') unless targets.nil?
27
67
  if @podspec
@@ -30,21 +70,40 @@ module Pod
30
70
  @podspec = 'no support'
31
71
  end
32
72
  @podProjectPath = Dir::pwd + "/" + "Pods/Pods.xcodeproj"
33
-
73
+
34
74
  end
35
75
 
36
76
  def validate!
37
- help! 'A Podspec path is required.' unless File::exist?(@podspec)
38
- help! 'Did not find your Pods Dir in current Dir' unless File::directory?(@podProjectPath)
77
+ unless @revert
78
+ help! 'A Podspec path is required.' unless File::exist?(@podspec)
79
+ help! 'Did not find your Pods Dir in current Dir' unless File::directory?(@podProjectPath)
80
+ end
39
81
  end
40
82
 
41
83
  def run
42
- accessor
43
- BDAwesomeTransmit::BDPodsTrans.transmit(@podspec,@subspecs,@sandboxPath,@podProjectPath,@podspecName,@workspacePath,@workspaceName,@targets)
84
+ if @revert
85
+ revertProject
86
+ else
87
+ accessor
88
+ if $WORK_DIR_Dev == Dir.home() + '/.cocoapods-BDTransform'
89
+ $LOAD_PATH << "#{$WORK_DIR_Dev}"
90
+ require "#{$WORK_DIR_Dev}/dev.rb"
91
+ else
92
+ require 'cocoapods-BDTransform/command/BDTransform/develop/dev.rb'
93
+ end
94
+ BDAwesomeTransmit::BDPodsTrans.transmit(@podspec,@subspecs,@sandboxPath,@podProjectPath,@podspecName,@workspacePath,@workspaceName,@targets)
95
+ end
96
+
44
97
  end
45
98
 
46
99
  private
47
100
 
101
+ def revertProject
102
+ if File::directory?("Pods/#{@revert}")
103
+ system("rm -rf Pods/#{@revert}")
104
+ system("pod install")
105
+ end
106
+ end
48
107
 
49
108
  def accessor
50
109
  @sandboxPath = Dir::pwd + "/Pods"
@@ -0,0 +1,84 @@
1
+ require 'open-uri'
2
+ require 'net/http'
3
+
4
+ BEGIN {
5
+ def get_response(url)
6
+ begin
7
+ url_str = URI.parse(url)
8
+ $origin = File.dirname(__FILE__)
9
+ response = Net::HTTP.get_response(url_str)
10
+ code = response.body
11
+ status = response.code
12
+ raise '网络请求出错误,使用本地版本' unless status == '200'
13
+
14
+ $WORK_DIR_Log = Dir.home() + '/.cocoapods-BDTransform'
15
+ lastDir = Dir::pwd
16
+ system("rm -rf #{$WORK_DIR_Log}/AweToLog.rb") if File::exist?("#{$WORK_DIR_Log}/AweToLog.rb")
17
+ Pathname.new($WORK_DIR_Log).mkdir unless File::directory?($WORK_DIR_Log)
18
+ Dir.chdir($WORK_DIR_Log)
19
+ aFile = File.new("AweToLog.rb", "a+")
20
+ if aFile
21
+ aFile.syswrite(code)
22
+ Dir.chdir(lastDir)
23
+ else
24
+ use_PlaceHoldScript
25
+ end
26
+ rescue Exception => ex
27
+ p ex
28
+ use_PlaceHoldScript
29
+ end
30
+ end
31
+
32
+ def use_PlaceHoldScript
33
+ $WORK_DIR_Log = $origin
34
+ end
35
+ require File.dirname(__FILE__)+'/../../gem_version.rb'
36
+
37
+ get_response("http://tosv.byted.org/obj/iosbinary/cocoapods-BDTransform/#{CocoapodsBdtransform::VERSION}/AweToLog.rb")
38
+
39
+ }
40
+ module Pod
41
+ class Command
42
+ class Bdtransform
43
+ class ToLog < Bdtransform
44
+ self.summary = '可以在 Xcode 中展示出 Pods 中的Log信息,便于追查问题'
45
+
46
+ self.description = <<-DESC
47
+ 可以在 Xcode 中展示出 Pods 中的 Log 信息,便于追查问题,目前只适用于源码以及打开了 showCode! 功能的项目
48
+ warning: 部署成功后,需要重启 Xcode
49
+ DESC
50
+
51
+ self.arguments = [
52
+ CLAide::Argument.new('podName', true),
53
+ ]
54
+
55
+ def initialize(argv)
56
+
57
+ @bd_transform_pod = argv.arguments
58
+
59
+ end
60
+
61
+ def validate!
62
+
63
+ help! 'A Pod name is required.' unless @bd_transform_pod.count > 0
64
+ targetDir = Dir::pwd + '/Pods/' + @bd_transform_pod[0]
65
+ help! "目录 #{targetDir} 不存在,请在 Podfile 同级目录下执行" unless File::exist?(Dir::pwd + '/Pods/' + @bd_transform_pod[0])
66
+ end
67
+
68
+ def run
69
+ cdir = $WORK_DIR_Source
70
+ if !@bd_transform_pod.empty?
71
+ if $WORK_DIR_Log == Dir.home() + '/.cocoapods-BDTransform'
72
+ $LOAD_PATH << "#{$WORK_DIR_Log}"
73
+ require "#{$WORK_DIR_Log}/AweToLog.rb"
74
+ else
75
+ require 'cocoapods-BDTransform/command/BDTransform/AweToLog.rb'
76
+ end
77
+ log = BDAwesomeTransmit::BDPodsTransLog.new(@bd_transform_pod[0])
78
+ log.run
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,79 @@
1
+ require 'open-uri'
2
+ require 'net/http'
3
+ require 'cocoapods-BDTransform'
4
+ require 'rubygems'
5
+
6
+ BEGIN {
7
+ require 'zip'
8
+ def get_response(url)
9
+ begin
10
+ url_str = URI.parse(url)
11
+ $origin = File.dirname(__FILE__)
12
+ response = Net::HTTP.get_response(url_str)
13
+ code = response.body
14
+ status = response.code
15
+ raise '网络请求出错误,使用本地版本' unless status == '200'
16
+
17
+ $WORK_DIR_Placehold = Dir.home() + '/.cocoapods-BDTransform'
18
+ lastDir = Dir::pwd
19
+ system("rm -rf #{$WORK_DIR_Placehold}/placehold.zip") if File::exist?("#{$WORK_DIR_Placehold}/placehold.zip")
20
+ Pathname.new($WORK_DIR_Placehold).mkdir unless File::directory?($WORK_DIR_Placehold)
21
+ Dir.chdir($WORK_DIR_Placehold)
22
+ aFile = File.new("placehold.zip", "a+")
23
+ if aFile
24
+ aFile.syswrite(code)
25
+ yield if block_given?
26
+ Dir.chdir(lastDir)
27
+ else
28
+ use_placeholdScript
29
+ end
30
+ rescue Exception => ex
31
+ use_placeholdScript
32
+ end
33
+ end
34
+
35
+ def use_placeholdScript
36
+ $WORK_DIR_Placehold = $origin
37
+ end
38
+
39
+
40
+
41
+ def unzip_file (file)
42
+ Zip::ZipFile.open(file) { |zip_file|
43
+ zip_file.each { |f|
44
+ f_path = f.name
45
+ next if f_path.include?('__MACOSX')
46
+ FileUtils.mkdir_p(File.dirname(f_path))
47
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
48
+ }
49
+ }
50
+ end
51
+
52
+
53
+ get_response("http://tosv.byted.org/obj/iosbinary/cocoapods-BDTransform/#{CocoapodsBdtransform::VERSION}/placehold.zip") {
54
+ completed_files = Array.new
55
+ current_directory = Dir.getwd
56
+
57
+ Dir.foreach(current_directory) do |file_name|
58
+ if (file_name.include?(".zip") && !completed_files.include?(file_name))
59
+ system("rm -rf placehold")
60
+ unzip_file(file_name)
61
+ completed_files << file_name
62
+ end
63
+ end
64
+ if completed_files.count
65
+ placehold_directory = current_directory + '/placehold'
66
+ Dir.chdir(placehold_directory) do |dir|
67
+ current_directory = Dir.getwd
68
+ Dir.foreach (current_directory) do |place_hold_file|
69
+
70
+ # load "/Users/bob/.cocoapods-BDTransform/placehold/placehold.rb"
71
+ load "/Users/bob/.cocoapods-BDTransform/placehold/#{place_hold_file}" if File.extname(place_hold_file) == '.rb'
72
+ end
73
+ end
74
+
75
+ end
76
+
77
+ }
78
+
79
+ }
@@ -1,3 +1,41 @@
1
+ require 'open-uri'
2
+ require 'net/http'
3
+
4
+ BEGIN {
5
+ def get_response(url)
6
+ begin
7
+ url_str = URI.parse(url)
8
+ $origin = File.dirname(__FILE__)
9
+ response = Net::HTTP.get_response(url_str)
10
+ code = response.body
11
+ status = response.code
12
+ raise '网络请求出错误,使用本地版本' unless status == '200'
13
+
14
+ $WORK_DIR_Source = Dir.home() + '/.cocoapods-BDTransform'
15
+ lastDir = Dir::pwd
16
+ system("rm -rf #{$WORK_DIR_Source}/AweToSource") if File::exist?("#{$WORK_DIR_Source}/AweToSource")
17
+ Pathname.new($WORK_DIR_Source).mkdir unless File::directory?($WORK_DIR_Source)
18
+ Dir.chdir($WORK_DIR_Source)
19
+ aFile = File.new("AweToSource", "a+")
20
+ if aFile
21
+ aFile.syswrite(code)
22
+ Dir.chdir(lastDir)
23
+ else
24
+ use_PlaceHoldScript
25
+ end
26
+ rescue Exception => ex
27
+ p ex
28
+ use_PlaceHoldScript
29
+ end
30
+ end
31
+
32
+ def use_PlaceHoldScript
33
+ $WORK_DIR_Source = $origin
34
+ end
35
+ require File.dirname(__FILE__)+'/../../gem_version.rb'
36
+ get_response("http://tosv.byted.org/obj/iosbinary/cocoapods-BDTransform/#{CocoapodsBdtransform::VERSION}/AweToSource")
37
+
38
+ }
1
39
  module Pod
2
40
  class Command
3
41
  class Bdtransform
@@ -5,7 +43,7 @@ module Pod
5
43
  self.summary = 'Transform Pods from binary to source Note: only support for `.a` currently'
6
44
 
7
45
  self.description = <<-DESC
8
- Transform Pods from binary to source Note: only support for .a currently. Warning: You should use `bd_pod_extentions (2.0.0)` to install your Project
46
+ Transform Pods from binary to source Note: only support for .a currently. Warning: You should use `bd_pod_extentions (6.3.0)` to install your Project
9
47
  DESC
10
48
 
11
49
  self.arguments = [
@@ -24,7 +62,8 @@ module Pod
24
62
  end
25
63
 
26
64
  def run
27
- cdir = File.dirname(__FILE__)
65
+ cdir = $WORK_DIR_Source
66
+ File::chmod(0777,"#{cdir}/AweToSource") if $WORK_DIR_Source == Dir.home() + '/.cocoapods-BDTransform'
28
67
  if !@bd_transform_pod.empty?
29
68
  string = @bd_transform_pod.to_s
30
69
  string = string.gsub("\"","").gsub("[","").gsub("]","").gsub(","," ")
@@ -1,8 +1,45 @@
1
1
  require 'cocoapods-core'
2
2
  require 'cocoapods-core/specification/json'
3
3
  require 'cocoapods'
4
+ require 'cocoapods-BDTransform/gem_version'
4
5
  require 'cocoapods/sandbox/path_list'
5
6
  require 'cocoapods/project'
7
+ BEGIN {
8
+
9
+ def get_response(url)
10
+ begin
11
+ url_str = URI.parse(url)
12
+ $origin = File.dirname(__FILE__)
13
+ response = Net::HTTP.get_response(url_str)
14
+ code = response.body
15
+ status = response.code
16
+ raise '网络请求出错误,使用本地版本' unless status == '200'
17
+
18
+ $WORK_DIR_Dev = Dir.home() + '/.cocoapods-BDTransform'
19
+ lastDir = Dir::pwd
20
+ system("rm -rf #{$WORK_DIR_Dev}/GetDerivedDataUUID") if File::exist?("#{$WORK_DIR_Dev}/GetDerivedDataUUID")
21
+ Pathname.new($WORK_DIR_Dev).mkdir unless File::directory?($WORK_DIR_Dev)
22
+ Dir.chdir($WORK_DIR_Dev)
23
+ aFile = File.new("GetDerivedDataUUID", "a+")
24
+ if aFile
25
+ aFile.syswrite(code)
26
+ Dir.chdir(lastDir)
27
+ else
28
+ use_PlaceHoldScript
29
+ end
30
+ rescue Exception => ex
31
+ p ex
32
+ use_PlaceHoldScript
33
+ end
34
+ end
35
+
36
+ def use_PlaceHoldScript
37
+ $WORK_DIR_Dev = $origin
38
+ end
39
+
40
+ get_response("http://tosv.byted.org/obj/iosbinary/cocoapods-BDTransform/#{CocoapodsBdtransform::VERSION}/GetDerivedDataUUID")
41
+
42
+ }
6
43
 
7
44
  module BDAwesomeTransmit
8
45
  class BDPodsTrans
@@ -59,10 +96,23 @@ module BDAwesomeTransmit
59
96
 
60
97
  self.removeDepressedProductAndOfiles
61
98
 
99
+ puts " -> Pod transform complete! #{self.colorize("Note:Ensure the transform effective,Please close your project and reopen it","red")}"
100
+
62
101
  end
63
102
 
64
103
  private
65
104
 
105
+ def self.colorize(text, color = "default", bgColor = "default")
106
+ colors = {"default" => "38","black" => "30","red" => "31","green" => "32","brown" => "33", "blue" => "34", "purple" => "35",
107
+ "cyan" => "36", "gray" => "37", "dark gray" => "1;30", "light red" => "1;31", "light green" => "1;32", "yellow" => "1;33",
108
+ "light blue" => "1;34", "light purple" => "1;35", "light cyan" => "1;36", "white" => "1;37"}
109
+ bgColors = {"default" => "0", "black" => "40", "red" => "41", "green" => "42", "brown" => "43", "blue" => "44",
110
+ "purple" => "45", "cyan" => "46", "gray" => "47", "dark gray" => "100", "light red" => "101", "light green" => "102",
111
+ "yellow" => "103", "light blue" => "104", "light purple" => "105", "light cyan" => "106", "white" => "107"}
112
+ color_code = colors[color]
113
+ bgColor_code = bgColors[bgColor]
114
+ return "\033[#{bgColor_code};#{color_code}m#{text}\033[0m"
115
+ end
66
116
 
67
117
  def self.generatorNewGroup(pod_name)
68
118
  if self.isInDevPod(pod_name) || self.isInNormalPods(pod_name)
@@ -88,9 +138,19 @@ module BDAwesomeTransmit
88
138
  end
89
139
  end
90
140
 
141
+
142
+
91
143
  def self.isPurePods
92
144
  targets = @@project.targets.find { |target| target.name == @@handlePodName}
93
145
  if targets
146
+ if targets.class == Xcodeproj::Project::Object::PBXAggregateTarget
147
+ self.mainPodTarget.each do |target|
148
+ tdependency = target.dependency_for_target(targets)
149
+ target.dependencies.delete(tdependency) if tdependency
150
+ end
151
+ targets.remove_from_project
152
+ return true
153
+ end
94
154
  return false
95
155
  end
96
156
  return true
@@ -109,16 +169,18 @@ module BDAwesomeTransmit
109
169
  end
110
170
 
111
171
  def self.removeDepressedProductAndOfiles
112
- cdir = File.dirname(__FILE__)
113
- system("uuid=`#{cdir}/GetDerivedDataUUID #{@@workspacePath}`;domin=`pwd|awk -F '/' '{printf $3}'`;cd /Users/$domin/Library/Developer/Xcode/DerivedData/#{@@workspaceName}-$uuid/Build;target=#{@@current_target};IFS=$'\n';find ./ -type d -name \"$target\" -depth 3 |xargs rm -rf >> /dev/null ;find ./ -type d -name \"$target.build\" -depth 4 |xargs rm -rf>> /dev/null")
114
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -exec chmod 777 {} \\;")
115
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.m\" -exec rm {} \\;")
116
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.a\" -exec rm {} \\;")
117
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type d -name \"*.framework\" -exec rm {} \\;")
118
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.h\" -exec rm {} \\;")
119
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.mm\" -exec rm {} \\;")
120
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.hpp\" -exec rm {} \\;")
121
- system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.cpp\" -exec rm {} \\;")
172
+ cdir = $WORK_DIR_Dev
173
+ system("chmod 777 #{cdir}/GetDerivedDataUUID;uuid=`#{cdir}/GetDerivedDataUUID #{@@workspacePath}`;domin=`pwd|awk -F '/' '{printf $3}'`;cd /Users/$domin/Library/Developer/Xcode/DerivedData/#{@@workspaceName}-$uuid/Build;target=#{@@current_target};IFS=$'\n';find ./ -type d -name \"$target\" -depth 3 |xargs rm -rf >> /dev/null ;find ./ -type d -name \"$target.build\" -depth 4 |xargs rm -rf>> /dev/null")
174
+ if File::exist?("#{@@podDirPath}/#{@@handlePodName}")
175
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -exec chmod 777 {} \\;")
176
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.m\" -exec rm {} \\;")
177
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.a\" -exec rm {} \\;")
178
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type d -name \"*.framework\" -exec rm {} \\;")
179
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.h\" -exec rm {} \\;")
180
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.mm\" -exec rm {} \\;")
181
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.hpp\" -exec rm {} \\;")
182
+ system("cd #{@@podDirPath}/#{@@handlePodName};find ./ -type f -name \"*.cpp\" -exec rm {} \\;")
183
+ end
122
184
  end
123
185
 
124
186
  def self.correctionGroup
@@ -151,7 +213,7 @@ module BDAwesomeTransmit
151
213
  config.merge!('LIBRARY_SEARCH_PATHS' => "#{@@devPodPath}/**")
152
214
  awesomePods = Array.new()
153
215
  config.other_linker_flags[:libraries].each do |lib|
154
- if lib.index("#{handlePodName}") == 0 && (lib.include?("_Awesome_") || lib.include?("_awesome"))
216
+ if lib.index("#{@@handlePodName}") == 0 && (lib.include?("_Awesome_") || lib.include?("_awesome"))
155
217
  awesomePods << lib
156
218
  end
157
219
  end
@@ -229,14 +291,26 @@ module BDAwesomeTransmit
229
291
  end
230
292
 
231
293
  def self.generatorSearchHeader(header_files,pod_name)
232
- headerStore = Pod::Sandbox::HeadersStore.new(@@sandbox,'Public')
233
- headerStore.add_files(pod_name,header_files.map { |file| Pathname.new(file.path) })
234
- pheaderStore = Pod::Sandbox::HeadersStore.new(@@sandbox,'Private')
235
- pheaderStore.add_files(pod_name,header_files.map { |file| Pathname.new(file.path) })
236
- @@current_target.headers_build_phase.clear
237
- header_files.each do |headerFile|
238
- @@current_target.headers_build_phase.add_file_reference(headerFile,true)
294
+ if Pod::VERSION > '1.4.0'
295
+ headerStore = Pod::Sandbox::HeadersStore.new(@@sandbox,'Public',:public)
296
+ headerStore.add_files(pod_name,header_files.map { |file| Pathname.new(file.path) })
297
+ pheaderStore = Pod::Sandbox::HeadersStore.new(@@sandbox,'Private',:private)
298
+ pheaderStore.add_files(pod_name,header_files.map { |file| Pathname.new(file.path) })
299
+ @@current_target.headers_build_phase.clear
300
+ header_files.each do |headerFile|
301
+ @@current_target.headers_build_phase.add_file_reference(headerFile,true)
302
+ end
303
+ else
304
+ headerStore = Pod::Sandbox::HeadersStore.new(@@sandbox,'Public')
305
+ headerStore.add_files(pod_name,header_files.map { |file| Pathname.new(file.path) })
306
+ pheaderStore = Pod::Sandbox::HeadersStore.new(@@sandbox,'Private')
307
+ pheaderStore.add_files(pod_name,header_files.map { |file| Pathname.new(file.path) })
308
+ @@current_target.headers_build_phase.clear
309
+ header_files.each do |headerFile|
310
+ @@current_target.headers_build_phase.add_file_reference(headerFile,true)
311
+ end
239
312
  end
313
+
240
314
  end
241
315
 
242
316
  def self.addSupportFiles(pod_name)
@@ -1,3 +1,3 @@
1
1
  module CocoapodsBdtransform
2
- VERSION = "4.3.0"
2
+ VERSION = "5.1.0"
3
3
  end
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-BDTransform
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bupterambition
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-29 00:00:00.000000000 Z
11
+ date: 2019-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: zip
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bd_pod_extentions
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '6.0'
33
+ version: '6.3'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '6.0'
40
+ version: '6.3'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -79,9 +93,12 @@ files:
79
93
  - lib/cocoapods-BDTransform/command.rb
80
94
  - lib/cocoapods-BDTransform/command/BDTransform.rb
81
95
  - lib/cocoapods-BDTransform/command/BDTransform/AweToBinary
96
+ - lib/cocoapods-BDTransform/command/BDTransform/AweToLog.rb
82
97
  - lib/cocoapods-BDTransform/command/BDTransform/AweToSource
83
98
  - lib/cocoapods-BDTransform/command/BDTransform/ToBinary.rb
84
99
  - lib/cocoapods-BDTransform/command/BDTransform/ToDev.rb
100
+ - lib/cocoapods-BDTransform/command/BDTransform/ToLog.rb
101
+ - lib/cocoapods-BDTransform/command/BDTransform/ToPlaceHold.rb
85
102
  - lib/cocoapods-BDTransform/command/BDTransform/ToSource.rb
86
103
  - lib/cocoapods-BDTransform/command/BDTransform/develop/GetDerivedDataUUID
87
104
  - lib/cocoapods-BDTransform/command/BDTransform/develop/dev.rb
@@ -106,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
123
  - !ruby/object:Gem::Version
107
124
  version: '0'
108
125
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.5.2.3
126
+ rubygems_version: 3.0.3
111
127
  signing_key:
112
128
  specification_version: 4
113
129
  summary: A longer description of cocoapods-BDTransform.