cocoapods-dev-env 2.2.1 → 2.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/cocoapods/dev/env/version.rb +2 -2
- data/lib/dev_env_entry.rb +30 -10
- data/lib/dev_env_utils.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f274257ac096e92d97f5ece8b76e456180f593803650b9e42d206dd290cfd8a
|
4
|
+
data.tar.gz: b372bc76f7e6c0bddad646ebc2f461991c8921f9dd5a35086d0ade595665ad7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd436b0f923be965a5b0e28caf4b92616f036f62c490ac201a4170ff4932946be8131ef2174ee73d935a9292d176ea23a7ccf0bfff53de8cdf22904790a2efda
|
7
|
+
data.tar.gz: 06703ba0d2ab152a06d588a34dcbc02a062173765721bbd184889f896e7524d34fc0eb35c20ee076ffc989bcbac112ded8f6373864ea72a99764a35259de1cb3
|
data/README.md
CHANGED
@@ -42,7 +42,7 @@ Finally the state clean submodule will be removed automatically.
|
|
42
42
|
3. When you define "dev_env" to "release", and run ```pod install``` .
|
43
43
|
We want to use the release version in cocoapods repo. And do many check for state, and help you to release the not released pod.
|
44
44
|
|
45
|
-
新增功能: 支持读取宿主工程的Podfile.lock文件,来获取宿主工程中的依赖,无需在单独的库的example工程中引用对应的pod
|
45
|
+
2.2.x 新增功能: 支持读取宿主工程的Podfile.lock文件,来获取宿主工程中的依赖,无需在单独的库的example工程中引用对应的pod
|
46
46
|
此功能默认开启, 等同于在顶部写入如下配置: use_parent_lock_info!
|
47
47
|
关闭方法 use_parent_lock_info! false
|
48
48
|
宿主工程路径默认为"../../../"(因为默认放到developing_pods子文件夹下,对应的库文件夹下的Example文件夹下,故需要回溯三层)
|
data/lib/dev_env_entry.rb
CHANGED
@@ -89,6 +89,7 @@ module Pod
|
|
89
89
|
|
90
90
|
defaultLocalPath = "./developing_pods/#{pod_name}"
|
91
91
|
UI.message "pod #{name.green} dev-env: #{dev_env.green}"
|
92
|
+
isFromSubProject = false
|
92
93
|
if dev_env == 'parent'
|
93
94
|
parentPodInfo = $parentPodlockDependencyHash[pod_name]
|
94
95
|
if parentPodInfo != nil
|
@@ -128,11 +129,12 @@ module Pod
|
|
128
129
|
options[:branch] = branch
|
129
130
|
options[:tag] = tag
|
130
131
|
if path != nil
|
131
|
-
options[:path] =
|
132
|
+
options[:path] = path
|
132
133
|
else
|
133
|
-
options[:path] =
|
134
|
+
options[:path] = defaultLocalPath
|
134
135
|
end
|
135
136
|
UI.puts "#{pod_name.green}采用了父组件的配置,并修改开发状态为#{dev_env.green}"
|
137
|
+
isFromSubProject = true
|
136
138
|
end
|
137
139
|
end
|
138
140
|
|
@@ -141,10 +143,15 @@ module Pod
|
|
141
143
|
git = options.delete(:git)
|
142
144
|
branch = options.delete(:branch)
|
143
145
|
tag = options.delete(:tag)
|
144
|
-
path = options.delete(:path)
|
146
|
+
path = options.delete(:path) # 执行命令用的path
|
145
147
|
if path == nil
|
146
148
|
path = defaultLocalPath
|
147
149
|
end
|
150
|
+
realpath = path
|
151
|
+
if isFromSubProject
|
152
|
+
realpath = $parrentPath + path
|
153
|
+
end
|
154
|
+
|
148
155
|
if git == nil || git.length == 0
|
149
156
|
raise "💔 #{pod_name.yellow} 未定义:git => 'xxx'库地址"
|
150
157
|
end
|
@@ -156,6 +163,9 @@ module Pod
|
|
156
163
|
end
|
157
164
|
|
158
165
|
if dev_env == 'subtree'
|
166
|
+
if isFromSubProject
|
167
|
+
raise "💔 子项目不支持subtree"
|
168
|
+
end
|
159
169
|
if !File.directory?(path)
|
160
170
|
_toplevelDir = `git rev-parse --show-toplevel`
|
161
171
|
_currentDir = `pwd`
|
@@ -175,19 +185,26 @@ module Pod
|
|
175
185
|
system(_cmd)
|
176
186
|
Dir.chdir(_currentDir)
|
177
187
|
end
|
178
|
-
options[:path] =
|
188
|
+
options[:path] = realpath
|
179
189
|
if requirements.length >= 2
|
180
190
|
requirements.delete_at(0)
|
181
191
|
end
|
182
192
|
UI.message "pod #{pod_name.green} enabled #{"subtree".green}-mode 🍺"
|
183
193
|
elsif dev_env == 'dev'
|
184
194
|
# 开发模式,使用path方式引用本地的submodule git库
|
185
|
-
if !File.directory?(
|
195
|
+
if !File.directory?(realpath)
|
186
196
|
UI.puts "add submodule for #{pod_name.green}".yellow
|
197
|
+
curProjectDir = `pwd`
|
198
|
+
if isFromSubProject
|
199
|
+
# 进入父目录,避免当前工程目录是个submodule,当在submudle中执行addsubmodule时路径会不正确
|
200
|
+
Dir.chdir($parrentPath)
|
201
|
+
end
|
187
202
|
_cmd = "git submodule add --force -b #{branch} #{git} #{path}"
|
188
203
|
UI.puts _cmd
|
189
204
|
system(_cmd)
|
190
|
-
|
205
|
+
if isFromSubProject
|
206
|
+
Dir.chdir(curProjectDir)
|
207
|
+
end
|
191
208
|
_currentDir = Dir.pwd
|
192
209
|
Dir.chdir(path)
|
193
210
|
|
@@ -213,7 +230,7 @@ module Pod
|
|
213
230
|
# DevEnvUtils.searchAndOpenLocalExample(path)
|
214
231
|
# end
|
215
232
|
end
|
216
|
-
options[:path] =
|
233
|
+
options[:path] = realpath
|
217
234
|
if requirements.length >= 2
|
218
235
|
requirements.delete_at(0)
|
219
236
|
end
|
@@ -229,8 +246,8 @@ module Pod
|
|
229
246
|
Dir.chdir(path)
|
230
247
|
# 已经进入到podspec的文件夹中了
|
231
248
|
DevEnvUtils.checkGitStatusAndPush(pod_name) # push一下
|
232
|
-
|
233
|
-
if
|
249
|
+
isRemoteTagExist = DevEnvUtils.checkRemoteTagExist(tag)
|
250
|
+
if isRemoteTagExist == true
|
234
251
|
# tag已经存在,要么没改动,要么已经手动打过tag,要么是需要引用老版本tag的代码
|
235
252
|
if DevEnvUtils.checkTagOrBranchIsEqalToHead(tag, "./")
|
236
253
|
UI.puts "#{pod_name.green} 检测到未做任何调整,或已手动打过Tag,直接引用远端库"
|
@@ -241,13 +258,16 @@ module Pod
|
|
241
258
|
end
|
242
259
|
else
|
243
260
|
# tag不存在,
|
261
|
+
DevEnvUtils.checkIsOnTrankBrach()
|
244
262
|
DevEnvUtils.changeVersionInCocoapods(pod_name, originTag)
|
245
263
|
DevEnvUtils.checkGitStatusAndPush(pod_name) # 再push一下
|
246
264
|
DevEnvUtils.addGitTagAndPush(tag, pod_name)
|
247
265
|
end
|
248
266
|
Dir.chdir(_currentDir)
|
249
267
|
DevEnvUtils.checkAndRemoveSubmodule(path)
|
250
|
-
|
268
|
+
if !isRemoteTagExist
|
269
|
+
UI.puts "🍺🍺 #{pod_name.green} #{tag.green} release successfully!!"
|
270
|
+
end
|
251
271
|
end
|
252
272
|
options[:git] = git
|
253
273
|
options[:tag] = tag
|
data/lib/dev_env_utils.rb
CHANGED
@@ -93,6 +93,18 @@ class DevEnvUtils
|
|
93
93
|
input[0, 1] == 'Y'
|
94
94
|
end
|
95
95
|
|
96
|
+
# 检查是否在主分支上(main / master)
|
97
|
+
def self.checkIsOnTrankBrach()
|
98
|
+
branch = `git branch --show-current`.chomp
|
99
|
+
isOK = (branch == 'main' || branch == 'master')
|
100
|
+
if !isOK
|
101
|
+
puts ('💔 当前分支是: '.red + branch.green + ' 没在主分支,不符合规范,是否继续发布?'.red)
|
102
|
+
if !inputNeedJumpForReson("")
|
103
|
+
raise "已取消发布, 请切换子库分支到 master / main 后重新 pod install"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
96
108
|
def self.changeVersionInCocoapods(name, newVersion)
|
97
109
|
if newVersion.nil?
|
98
110
|
Pod::UI.puts '💔 传入的修改目标版本号为空,无法设置版本号'.yellow
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-dev-env
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 吴锡苗
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04
|
11
|
+
date: 2022-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: luna-binary-uploader
|