cocoapods-privacy 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 764dcd8e0be43bcb5ca3309ba79d166d19a3ac25ea641c397cc6cc66b9622f61
4
- data.tar.gz: 1a4724dcc2a679182539db7f04901311b520c3e4dd2fee94f23b6aad6521ad43
3
+ metadata.gz: aca165884812e22b5b99ff4220a5a87129f9b56f5940b95f32cea856418e8c32
4
+ data.tar.gz: fcfbee202add9d50cff29d74c5bf8b1558855daca7278905a25922d9674c40c0
5
5
  SHA512:
6
- metadata.gz: 29d51dce9a7bafb95aab4e5c0afd66357c66f540a30c031cdaece060b2eb7e7f2bb2b8ce80bc20315a4b2aac9ce7f639f742551167e6cdf8fc0e2160ae87a22f
7
- data.tar.gz: 94fad012858ccbdd2080ae9ae3c2c9ea7b964c8d2c3bdda980f902fa2c47c78a4646e5a0eaff754c86e01c95d2e11f6c0725e5a4db380c7aed4a7931b85469c9
6
+ metadata.gz: 3c61d2467300415d231fab11762e54c8a5e17ec7fb91f47af5f3aff9db72c85b30353d505354642e420513059bd7227bcb88a31f921d44929a9ba66150e626c7
7
+ data.tar.gz: 90718eb044f351c618a7a7c9490f156e010053083668aad75f31f6b5b7b95fca4142785193286b8b92008a3b7cc954b7724a7c1bc04a05786929ec290016aabb
@@ -1,3 +1,3 @@
1
1
  module CocoapodsPrivacy
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -108,13 +108,11 @@ module PrivacyHunter
108
108
 
109
109
  # 删除临时文件
110
110
  File.delete(temp_plist)
111
-
112
111
  end
113
112
 
114
113
 
115
114
  private
116
115
 
117
-
118
116
  def self.fetch_template_plist_file
119
117
 
120
118
  unless File.exist?(PrivacyUtils.cache_config_file)
@@ -200,6 +198,8 @@ module PrivacyHunter
200
198
 
201
199
  #搜索所有子文件夹
202
200
  def self.search_files(folder_paths, apis)
201
+ #清除上一次log
202
+ clean_log()
203
203
 
204
204
  # 获取文件夹下所有文件(包括子文件夹)
205
205
  all_files = []
@@ -218,10 +218,33 @@ module PrivacyHunter
218
218
  # 遍历文件进行检索
219
219
  apis_found = {}
220
220
  all_files.uniq.each_with_index do |file_path, index|
221
- apis_found = apis_found.merge(contains_apis?(file_path, apis))
222
- puts "File #{file_path} contains the keyword '#{apis_found.keys}'." unless apis_found.empty?
221
+ api_contains = contains_apis?(file_path, apis)
222
+ apis_found = apis_found.merge(api_contains)
223
+
224
+ unless api_contains.empty?
225
+ log = "File #{file_path} contains the keyword '#{api_contains.keys}'.\n"
226
+ write_log(log)
227
+ end
223
228
  end
229
+ puts "详细log请查看 #{PrivacyUtils.cache_log_file} 文件"
224
230
  apis_found
225
231
  end
232
+
233
+ def self.write_log(log)
234
+ log_file_path = PrivacyUtils.cache_log_file
235
+ is_create = PrivacyUtils.create_file_and_fold_if_no_exit(log_file_path,log)
236
+ unless is_create
237
+ File.open(log_file_path, "a") do |file|
238
+ file << log
239
+ end
240
+ end
241
+ end
242
+
243
+ def self.clean_log()
244
+ File.open(PrivacyUtils.cache_log_file, "w") do |file|
245
+ # 写入空字符串,清空文件内容
246
+ file.write("")
247
+ end
248
+ end
226
249
  end
227
250
 
@@ -71,6 +71,11 @@ module PrivacyUtils
71
71
  config_file = File.join(cache_privacy_fold, 'config.json')
72
72
  end
73
73
 
74
+ # config.json 文件
75
+ def self.cache_log_file
76
+ config_file = File.join(cache_privacy_fold, 'privacy.log')
77
+ end
78
+
74
79
  # 创建默认隐私协议文件
75
80
  def self.create_privacy_if_empty(file_path)
76
81
  # 文件内容
@@ -88,33 +88,29 @@ module Pod
88
88
  pod_folds = modules.map{ |spec|
89
89
  name = spec.name.split('/').first
90
90
  fold = File.join(@sandbox.root,name)
91
- if Dir.exist?(fold)
92
- fold
93
- else
94
- development_pods = @sandbox.development_pods
95
- if name && development_pods
96
- podspec_file_path = development_pods[name]
97
- if podspec_file_path && !podspec_file_path.empty?
98
- podspec_fold_path = File.dirname(podspec_file_path)
99
- source_files = spec.attributes_hash['source_files']
100
- if source_files && !source_files.empty?
101
- if source_files.is_a?(String) && !source_files.empty?
102
- development_folds << File.join(podspec_fold_path,source_files)
103
- elsif source_files.is_a?(Array)
104
- source_files.each do |file|
105
- development_folds << File.join(podspec_fold_path,file)
106
- end
107
- end
91
+ podspec_file_path_develop = validate_development_pods(name)
92
+ # 先验证是否是指向本地的组件(发现有的情况下 组件指向本地Pods 下依旧还是会有该组件,所以这里先判断本地的)
93
+ if podspec_file_path_develop
94
+ podspec_fold_path = File.dirname(podspec_file_path_develop)
95
+ source_files = spec.attributes_hash['source_files']
96
+ if source_files && !source_files.empty?
97
+ if source_files.is_a?(String) && !source_files.empty?
98
+ development_folds << File.join(podspec_fold_path,source_files)
99
+ elsif source_files.is_a?(Array)
100
+ source_files.each do |file|
101
+ development_folds << File.join(podspec_fold_path,file)
108
102
  end
109
103
  end
110
104
  end
111
105
  nil
106
+ elsif Dir.exist?(fold)
107
+ formatter_search_fold(fold)
112
108
  end
113
109
  }.compact
114
110
 
115
111
 
116
112
  pod_folds += development_folds # 拼接本地调试和远端的pod目录
117
- pod_folds += [PrivacyUtils.project_code_fold].compact # 拼接工程同名主目录
113
+ pod_folds += [formatter_search_fold(PrivacyUtils.project_code_fold)].compact # 拼接工程同名主目录
118
114
  pod_folds += custom_folds || [] # 拼接外部传入的自定义目录
119
115
  pod_folds = pod_folds.uniq # 去重
120
116
 
@@ -126,5 +122,22 @@ module Pod
126
122
  end
127
123
  puts "👆👆👆👆👆👆 End analysis project privacy 👆👆👆👆👆👆"
128
124
  end
125
+
126
+ private
127
+ def formatter_search_fold(fold)
128
+ File.join(fold,"**","*.{m,c,swift,mm,hap,hpp,cpp}")
129
+ end
130
+
131
+ def validate_development_pods(name)
132
+ result = nil
133
+ development_pods = @sandbox.development_pods
134
+ if name && !name.empty? development_pods && !development_pods.empty?
135
+ podspec_file_path = development_pods[name]
136
+ if podspec_file_path && !podspec_file_path.empty?
137
+ result = podspec_file_path
138
+ end
139
+ end
140
+ result
141
+ end
129
142
  end
130
143
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-privacy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - youhui