cocoapods-privacy 0.2.0 → 0.2.2

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: 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