cocoapods-privacy 0.3.0 → 0.4.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 +4 -4
- data/lib/cocoapods-privacy/command/install.rb +8 -0
- data/lib/cocoapods-privacy/command/privacy/install.rb +7 -0
- data/lib/cocoapods-privacy/gem_version.rb +1 -1
- data/lib/cocoapods-privacy/privacy/PrivacyHunter.rb +5 -1
- data/lib/cocoapods-privacy/privacy/privacy_specification_hook.rb +3 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4f7ccdf608fd542826f1c394ff71582844055dcc56b89640eeeafa1f145fab3
|
4
|
+
data.tar.gz: 8fa3fd48b5af2c593fa3d3228430b7e14adbb896c16e3f5361ff78c4c211b390
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be57d03bef6be72e12048d92e0b78b9b0557db7af38e209bd38207f7bd895ffbc4dfa65548fe7437fbfae88207b4b57300f3ebb5f7783191ea3511e7c240dc53
|
7
|
+
data.tar.gz: 191b66a04667d812add2a3b621b5aec81540363f08481040e4407d2a2624c932d66edebe618f525512e88e5a36ea956f66fdf50d028e7b2d3cef459eb34eb610
|
@@ -4,6 +4,8 @@ module Pod
|
|
4
4
|
class Config
|
5
5
|
attr_accessor :privacy_folds
|
6
6
|
attr_accessor :is_privacy
|
7
|
+
attr_accessor :is_query
|
8
|
+
attr_accessor :is_all
|
7
9
|
end
|
8
10
|
end
|
9
11
|
|
@@ -16,6 +18,8 @@ module Pod
|
|
16
18
|
[
|
17
19
|
['--privacy', '使用该参数,会自动生成并更新PrivacyInfo.xcprivacy'],
|
18
20
|
['--privacy-folds=folds', '指定文件夹检索,多个文件夹使用逗号","分割'],
|
21
|
+
['--query', '仅查询隐私api,不做写入'],
|
22
|
+
['--all', '忽略黑名单和白名单限制,查询工程所有组件'],
|
19
23
|
].concat(origin_options)
|
20
24
|
end
|
21
25
|
end
|
@@ -24,10 +28,14 @@ module Pod
|
|
24
28
|
def initialize(argv)
|
25
29
|
privacy_folds = argv.option('privacy-folds', '').split(',')
|
26
30
|
is_privacy = argv.flag?('privacy',false)
|
31
|
+
is_query = argv.flag?('query',false)
|
32
|
+
is_all = argv.flag?('all',false)
|
27
33
|
privacy_origin_initialize(argv)
|
28
34
|
instance = Pod::Config.instance
|
29
35
|
instance.privacy_folds = privacy_folds
|
30
36
|
instance.is_privacy = is_privacy
|
37
|
+
instance.is_query = is_query
|
38
|
+
instance.is_all = is_all
|
31
39
|
end
|
32
40
|
end
|
33
41
|
end
|
@@ -13,11 +13,18 @@ module Pod
|
|
13
13
|
def self.options
|
14
14
|
[
|
15
15
|
["--folds=folds", '传入自定义搜索文件夹,多个文件目录使用“,”分割'],
|
16
|
+
['--query', '仅查询隐私api,不做写入'],
|
17
|
+
['--all', '忽略黑名单和白名单限制,查询工程所有组件'],
|
16
18
|
].concat(super)
|
17
19
|
end
|
18
20
|
|
19
21
|
def initialize(argv)
|
20
22
|
@folds = argv.option('folds', '').split(',')
|
23
|
+
is_query = argv.flag?('query',false)
|
24
|
+
is_all = argv.flag?('all',false)
|
25
|
+
instance = Pod::Config.instance
|
26
|
+
instance.is_query = is_query
|
27
|
+
instance.is_all = is_all
|
21
28
|
super
|
22
29
|
end
|
23
30
|
|
@@ -77,6 +77,10 @@ module PrivacyHunter
|
|
77
77
|
|
78
78
|
|
79
79
|
def self.write_to_privacy(json_data,privacy_path)
|
80
|
+
|
81
|
+
# 如果指定了--query 参数,那么不进行写入操作,仅用来查询
|
82
|
+
return if Pod::Config.instance.is_query
|
83
|
+
|
80
84
|
# 转换 JSON 为 plist 格式
|
81
85
|
plist_data = `echo '#{json_data}' | plutil -convert xml1 - -o -`
|
82
86
|
|
@@ -227,7 +231,7 @@ module PrivacyHunter
|
|
227
231
|
apis_found = {}
|
228
232
|
all_files.each_with_index do |file_path, index|
|
229
233
|
api_contains = contains_apis?(file_path, apis)
|
230
|
-
apis_found = apis_found.merge(api_contains)
|
234
|
+
apis_found = apis_found.merge(api_contains) unless Pod::Config.instance.is_query # 如果指定了--query 参数,那么不进行写入操作,仅用来查询
|
231
235
|
|
232
236
|
unless api_contains.empty?
|
233
237
|
log = "File #{file_path} contains the keyword '#{api_contains.keys}'.\n"
|
@@ -28,6 +28,9 @@ module Pod
|
|
28
28
|
return false
|
29
29
|
end
|
30
30
|
|
31
|
+
# 如果指定了--all 参数,那么忽略黑名单白名单,全部检索
|
32
|
+
return true if Pod::Config.instance.is_all
|
33
|
+
|
31
34
|
# 判断域名白名单 和 黑名单,确保该组件是自己的组件,第三方sdk不做检索
|
32
35
|
config = Privacy::Config.instance
|
33
36
|
git_source_whitelisted = config.source_white_list.any? { |item| git_source.include?(item) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-privacy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- youhui
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -77,7 +77,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
77
|
requirements:
|
78
78
|
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
80
|
+
version: 2.7.0
|
81
81
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
83
|
- - ">="
|