app_permission_statistics 0.1.1 → 0.1.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 +4 -4
- data/Gemfile +2 -1
- data/Gemfile.lock +14 -6
- data/README.md +10 -4
- data/app_permission_statistics.gemspec +2 -0
- data/lib/app_permission_statistics/analyze.rb +75 -98
- data/lib/app_permission_statistics/extracter.rb +2 -1
- data/lib/app_permission_statistics/version.rb +1 -1
- data/lib/app_permission_statistics.rb +1 -1
- metadata +36 -3
- data/analyze_report +0 -481
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1538115d6801db30b90990fe76cceaee1c4c0c83c8577aca52385802d8ba2ae7
|
4
|
+
data.tar.gz: 024e5fd5050a2b2be833531f679b30859f637d3868da9c93acdc5de8b3fbc81b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2aeb917766edc4b1576e226d04bdade076bcc6df271dbb7bb5a97b5c541b35e636fac50b9542365d08e95231b03099644f887741bbac1c2f0a20c56192998ee8
|
7
|
+
data.tar.gz: 1647ad46fed27b7565e6a634d0a6b0037870f1449cfe38f6312a5591f251e95ae99986937a5e9f11ce0f3a5ed31a9067eb50e970c796b49a98493f24944fa110
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,23 +1,30 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
app_permission_statistics (0.1.
|
4
|
+
app_permission_statistics (0.1.1)
|
5
5
|
CFPropertyList (>= 2.3.4, < 3.1.0)
|
6
6
|
crimp
|
7
|
+
rubyzip (>= 1.2, < 3.0)
|
8
|
+
terminal-table
|
7
9
|
yaml
|
8
10
|
|
9
11
|
GEM
|
10
12
|
remote: https://rubygems.org/
|
11
13
|
specs:
|
12
|
-
CFPropertyList (3.0.
|
14
|
+
CFPropertyList (3.0.6)
|
13
15
|
rexml
|
14
16
|
crimp (1.0.0)
|
15
17
|
deepsort
|
16
18
|
deepsort (0.4.5)
|
17
19
|
rake (13.0.6)
|
18
|
-
rexml (3.2.
|
19
|
-
|
20
|
-
|
20
|
+
rexml (3.2.5)
|
21
|
+
rubyzip (2.3.2)
|
22
|
+
terminal-table (3.0.2)
|
23
|
+
unicode-display_width (>= 1.1.1, < 3)
|
24
|
+
unicode-display_width (2.4.2)
|
25
|
+
yaml (0.2.1)
|
26
|
+
zip-zip (0.3)
|
27
|
+
rubyzip (>= 1.0.0)
|
21
28
|
|
22
29
|
PLATFORMS
|
23
30
|
x86_64-darwin-21
|
@@ -27,7 +34,8 @@ DEPENDENCIES
|
|
27
34
|
bundler (>= 1.12)
|
28
35
|
crimp
|
29
36
|
rake (~> 13.0)
|
30
|
-
|
37
|
+
terminal-table
|
38
|
+
zip-zip
|
31
39
|
|
32
40
|
BUNDLED WITH
|
33
41
|
2.2.3
|
data/README.md
CHANGED
@@ -89,13 +89,19 @@ remove capabilitys :
|
|
89
89
|
#### 涉及的文件
|
90
90
|
|
91
91
|
* info.plist
|
92
|
-
* Runner.entitlements
|
92
|
+
* Runner.entitlements
|
93
|
+
|
94
|
+
Capability被添加后的,保存一些权利( entitlement ) 声明、设置清单
|
95
|
+
|
93
96
|
* {embedded/xxx-xx-xx}.mobileprovision
|
94
|
-
|
95
|
-
|
97
|
+
|
98
|
+
embedded.mobileprovision 存在于IPA包中,被发送到Appstore,真正安装的app 却没有这个文件
|
99
|
+
|
100
|
+
xxx-xx-xx.mobileprovision 在打包成IPA前用于工程签名的描述文件
|
96
101
|
两者基本一致,包括里面的Entitlements字段, 保存一些 Capabilitys被添加后的 声明、设置
|
97
102
|
* Runner.xcodeproj
|
98
|
-
|
103
|
+
|
104
|
+
工程文件SystemCapabilities字段包含了一些Capabilitys 的开关字段
|
99
105
|
|
100
106
|
|
101
107
|
#### 文件说明:
|
@@ -30,6 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_runtime_dependency "crimp"
|
31
31
|
spec.add_dependency 'CFPropertyList', '< 3.1.0', '>= 2.3.4'
|
32
32
|
spec.add_development_dependency 'bundler', '>= 1.12'
|
33
|
+
spec.add_dependency 'rubyzip', '>= 1.2', '< 3.0'
|
34
|
+
spec.add_dependency 'terminal-table'
|
33
35
|
|
34
36
|
# Uncomment to register a new dependency of your gem
|
35
37
|
# spec.add_dependency "example-gem", "~> 1.0"
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require_relative "helper"
|
4
4
|
require 'fileutils'
|
5
5
|
require 'yaml'
|
6
|
+
require 'terminal-table'
|
6
7
|
|
7
8
|
module AppPermissionStatistics
|
8
9
|
|
@@ -19,19 +20,21 @@ module AppPermissionStatistics
|
|
19
20
|
@store_path = store_path
|
20
21
|
end
|
21
22
|
|
22
|
-
def analyze
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
def analyze(versions=[])
|
24
|
+
versions.sort{|x,y| y<=>x } unless versions.size < 2
|
25
|
+
if versions.length < 2
|
26
|
+
load_version
|
27
|
+
return singleGenerate unless @versions.length > 1
|
28
|
+
else
|
29
|
+
@versions = versions
|
30
|
+
end
|
31
|
+
pre_entitlements = load_entitlements_yaml(@versions[1])
|
32
|
+
cur_entitlements = load_entitlements_yaml(@versions[0])
|
29
33
|
return "" unless pre_entitlements.any?
|
30
34
|
return "" unless cur_entitlements.any?
|
31
35
|
|
32
|
-
capabilities_diff =
|
33
|
-
|
34
|
-
report_path = generate(capabilities_diff,usage_descs_diff)
|
36
|
+
capabilities_diff = analyze_diff(pre_entitlements,cur_entitlements)
|
37
|
+
report_path = generate(capabilities_diff)
|
35
38
|
report_path
|
36
39
|
end
|
37
40
|
|
@@ -49,23 +52,19 @@ module AppPermissionStatistics
|
|
49
52
|
end
|
50
53
|
|
51
54
|
|
52
|
-
def generate(capabilities_diff
|
55
|
+
def generate(capabilities_diff)
|
53
56
|
return unless @versions.length > 1
|
54
57
|
cur_version = @versions[0]
|
55
58
|
pre_version = @versions[1]
|
56
|
-
|
57
|
-
output = "\n" + "compared #{cur_version} #{pre_version}"
|
59
|
+
output = ""
|
58
60
|
output += "\n" + capabilities_diff unless capabilities_diff.empty?
|
59
|
-
output += "\n
|
60
|
-
output += "\n\nThere is no difference between the two versions \n\n" unless (!capabilities_diff.empty? || !usage_descs_diff.empty?)
|
61
|
+
output += "\n\nThere is no difference between the two versions 【 #{@versions[0]} vs #{@versions[1]}】\n\n" unless !capabilities_diff.empty?
|
61
62
|
puts output
|
62
|
-
puts "----------------------------------------"
|
63
63
|
output += "\n\n\n#{cur_version} entitlements list: "
|
64
64
|
output += "\n" + read_each_line(cur_version)
|
65
65
|
output += "\n" + "----------------------------------------"
|
66
66
|
output += "\n\n#{pre_version} entitlements list: "
|
67
67
|
output += "\n" + read_each_line(pre_version)
|
68
|
-
output += "\n" + "----------------------------------------"
|
69
68
|
|
70
69
|
report_path = report_file_name(path: @report_path)
|
71
70
|
File.open(report_path, 'w') { |file|
|
@@ -101,120 +100,98 @@ module AppPermissionStatistics
|
|
101
100
|
yaml_content
|
102
101
|
end
|
103
102
|
|
104
|
-
def
|
103
|
+
def analyze_diff(pre,cur)
|
105
104
|
output = ""
|
106
105
|
cur_capabilities_summary = cur['Capabilities_Summary']
|
107
106
|
pre_capabilities_summary = pre['Capabilities_Summary']
|
108
|
-
|
109
|
-
|
110
|
-
|
107
|
+
|
108
|
+
cur_usage_descs_summary = cur['PermissionsUsageDescription_Summary']
|
109
|
+
pre_usage_descs_summary = pre['PermissionsUsageDescription_Summary']
|
110
|
+
|
111
|
+
# cur_capabilities = cur['Capabilities']
|
112
|
+
# pre_capabilities = pre['Capabilities']
|
113
|
+
|
114
|
+
# cur_usage_descs = cur['PermissionsUsageDescription']
|
115
|
+
# pre_usage_descs = pre['PermissionsUsageDescription']
|
116
|
+
|
111
117
|
# 修改
|
112
118
|
comm_capabilities = cur_capabilities_summary.keys & pre_capabilities_summary.keys
|
113
|
-
|
119
|
+
modifyed_rows = []
|
114
120
|
comm_capabilities.each do |key|
|
115
121
|
if cur_capabilities_summary[key] != pre_capabilities_summary[key]
|
116
|
-
|
117
|
-
modifys_pre += "\n" + '- ' + key + ': ' + pre_capabilities[key].to_s
|
122
|
+
modifyed_rows << [ '- ' + key ]
|
118
123
|
end
|
119
124
|
end
|
120
125
|
|
121
|
-
modifys += "\n" + @versions[0] unless modifys_cur.empty?
|
122
|
-
modifys += modifys_cur unless modifys_cur.empty?
|
123
|
-
modifys += "\n" + @versions[1] unless modifys_pre.empty?
|
124
|
-
modifys += modifys_pre unless modifys_pre.empty?
|
125
|
-
|
126
|
-
#新增
|
127
|
-
add_capabilities = cur_capabilities_summary.keys - pre_capabilities_summary.keys
|
128
|
-
adds = ""
|
129
|
-
add_capabilities.each do |key|
|
130
|
-
adds += "\n" + '- ' + key + ': ' + cur_capabilities[key].to_s
|
131
|
-
end
|
132
|
-
|
133
|
-
#移除
|
134
|
-
remove_capabilities = pre_capabilities_summary.keys - cur_capabilities_summary.keys
|
135
|
-
removes = ""
|
136
|
-
remove_capabilities.each do |key|
|
137
|
-
removes += "\n" + '- ' + key + ': ' + pre_capabilities[key].to_s
|
138
|
-
end
|
139
|
-
|
140
|
-
if !modifys.empty?
|
141
|
-
output += "\n" + "modify capabilitys : "
|
142
|
-
output += modifys
|
143
|
-
output += "\n------------------------------"
|
144
|
-
end
|
145
|
-
|
146
|
-
if !adds.empty?
|
147
|
-
output += "\n" + "add capabilitys : "
|
148
|
-
output += adds
|
149
|
-
output += "\n------------------------------"
|
150
|
-
end
|
151
|
-
|
152
|
-
if !removes.empty?
|
153
|
-
output += "\n" + "remove capabilitys : "
|
154
|
-
output += removes
|
155
|
-
output += "\n------------------------------"
|
156
|
-
end
|
157
|
-
|
158
|
-
output
|
159
|
-
end
|
160
|
-
|
161
|
-
def analyze_usage_descs_diff(pre,cur)
|
162
|
-
output = ""
|
163
|
-
cur_usage_descs_summary = cur['PermissionsUsageDescription_Summary']
|
164
|
-
pre_usage_descs_summary = pre['PermissionsUsageDescription_Summary']
|
165
|
-
|
166
|
-
cur_usage_descs = cur['PermissionsUsageDescription']
|
167
|
-
pre_usage_descs = pre['PermissionsUsageDescription']
|
168
|
-
|
169
|
-
# 修改
|
170
126
|
comm_usage_descs = cur_usage_descs_summary.keys & pre_usage_descs_summary.keys
|
171
|
-
modifys = modifys_cur = modifys_pre = ""
|
172
127
|
comm_usage_descs.each do |key|
|
173
128
|
if cur_usage_descs_summary[key] != pre_usage_descs_summary[key]
|
174
|
-
|
175
|
-
modifys_pre += "\n" + '- ' + key + ': ' + pre_usage_descs[key].to_s
|
129
|
+
modifyed_rows << [ '- ' + key ]
|
176
130
|
end
|
177
131
|
end
|
178
132
|
|
179
|
-
modifys += "\n" + @versions[0] unless modifys_cur.empty?
|
180
|
-
modifys += modifys_cur unless modifys_cur.empty?
|
181
|
-
modifys += "\n" + @versions[1] unless modifys_pre.empty?
|
182
|
-
modifys += modifys_pre unless modifys_pre.empty?
|
183
133
|
|
184
134
|
#新增
|
135
|
+
add_capabilities = cur_capabilities_summary.keys - pre_capabilities_summary.keys
|
136
|
+
added_rows = []
|
137
|
+
add_capabilities.each do |key|
|
138
|
+
added_rows << ['- ' + key ] #+ ': ' + cur_capabilities[key].to_s
|
139
|
+
end
|
140
|
+
|
185
141
|
add_usage_descs = cur_usage_descs_summary.keys - pre_usage_descs_summary.keys
|
186
|
-
adds = ""
|
187
142
|
add_usage_descs.each do |key|
|
188
|
-
|
143
|
+
added_rows << [ '- ' + key ] #+ ': ' + cur_usage_descs[key].to_s
|
189
144
|
end
|
190
145
|
|
191
146
|
#移除
|
147
|
+
remove_capabilities = pre_capabilities_summary.keys - cur_capabilities_summary.keys
|
148
|
+
removed_rows = []
|
149
|
+
remove_capabilities.each do |key|
|
150
|
+
removed_rows << ['- ' + key ] #+ ': ' + pre_capabilities[key].to_s
|
151
|
+
end
|
152
|
+
|
192
153
|
remove_usage_descs = pre_usage_descs_summary.keys - cur_usage_descs_summary.keys
|
193
|
-
removes = ""
|
194
154
|
remove_usage_descs.each do |key|
|
195
|
-
|
155
|
+
removed_rows << [ '- ' + key ] #+ ': ' + pre_usage_descs[key].to_s
|
196
156
|
end
|
197
157
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
output
|
158
|
+
# Summary
|
159
|
+
max_count = [modifyed_rows.size,added_rows.size,removed_rows.size].max
|
160
|
+
if max_count == 0
|
161
|
+
return output
|
202
162
|
end
|
203
163
|
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
164
|
+
table = Terminal::Table.new do |t|
|
165
|
+
t.title = "Compared #{@versions[0]} to #{@versions[1]} Summary"
|
166
|
+
t.add_row ["Modifyed", modifyed_rows.size ]
|
167
|
+
t.add_row ["New", added_rows.size ]
|
168
|
+
t.add_row ["Remove", removed_rows.size ]
|
208
169
|
end
|
170
|
+
output += table.to_s + "\n\n"
|
209
171
|
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
172
|
+
def get_value(arr,n)
|
173
|
+
return "" unless arr.length > n
|
174
|
+
return arr[n].first unless arr.length == 0
|
175
|
+
return ""
|
214
176
|
end
|
215
177
|
|
178
|
+
detail_table = Terminal::Table.new do |t|
|
179
|
+
t.headings = ['Modifyed', 'New', 'Remove']
|
180
|
+
(0..max_count-1).each do |n|
|
181
|
+
t.add_row [
|
182
|
+
get_value(modifyed_rows,n),
|
183
|
+
get_value(added_rows,n),
|
184
|
+
get_value(removed_rows,n),
|
185
|
+
]
|
186
|
+
end
|
187
|
+
end
|
188
|
+
output += detail_table.to_s + "\n\n"
|
216
189
|
output
|
217
|
-
end
|
190
|
+
end
|
191
|
+
|
218
192
|
end
|
219
193
|
|
220
|
-
end
|
194
|
+
end
|
195
|
+
|
196
|
+
# obj = AppPermissionStatistics::Analyzer.new('com.ola.chat')
|
197
|
+
# obj.analyze(["5.3.0","5.1.0"])
|
@@ -58,7 +58,8 @@ module AppPermissionStatistics
|
|
58
58
|
end
|
59
59
|
version = plistInfo.version
|
60
60
|
if !yaml_content.include?(version)
|
61
|
-
yaml_content.
|
61
|
+
yaml_content.push(version)
|
62
|
+
yaml_content.sort{|x,y| y<=>x } unless yaml_content.size < 2
|
62
63
|
File.open(yaml_name, "w") { |file| file.write(yaml_content.to_yaml) }
|
63
64
|
end
|
64
65
|
end
|
@@ -30,7 +30,7 @@ module AppPermissionStatistics
|
|
30
30
|
end
|
31
31
|
compare_extracter.extract_update
|
32
32
|
extracter.extract_update
|
33
|
-
analyzer.analyze
|
33
|
+
analyzer.analyze([extracter.plistInfo.version,compare_extracter.plistInfo.version])
|
34
34
|
extracter.clear!
|
35
35
|
compare_extracter.clear!
|
36
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: app_permission_statistics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yaml
|
@@ -72,6 +72,40 @@ dependencies:
|
|
72
72
|
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '1.12'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rubyzip
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '1.2'
|
82
|
+
- - "<"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '3.0'
|
85
|
+
type: :runtime
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '1.2'
|
92
|
+
- - "<"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '3.0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: terminal-table
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
75
109
|
description: app permission statistics from ipas
|
76
110
|
email:
|
77
111
|
- tang.bin@olaola.chat
|
@@ -86,7 +120,6 @@ files:
|
|
86
120
|
- Gemfile.lock
|
87
121
|
- README.md
|
88
122
|
- Rakefile
|
89
|
-
- analyze_report
|
90
123
|
- app_permission_statistics.gemspec
|
91
124
|
- bin/app_permission_statistics
|
92
125
|
- bin/setup
|
data/analyze_report
DELETED
@@ -1,481 +0,0 @@
|
|
1
|
-
|
2
|
-
compared 5.3.0 5.2.0
|
3
|
-
|
4
|
-
add capabilitys :
|
5
|
-
- ClassKit: {"com.apple.developer.ClassKit-environment"=>"development"}
|
6
|
-
- MDM Managed Associated Domains: {"com.apple.developer.associated-domains.mdm-managed"=>true}
|
7
|
-
- AutoFill Credential Provider: {"com.apple.developer.authentication-services.autofill-credential-provider"=>true}
|
8
|
-
- Data Protection: {"com.apple.developer.default-data-protection"=>"NSFileProtectionComplete"}
|
9
|
-
- App Attest: {"com.apple.developer.devicecheck.appattest-environment"=>"development"}
|
10
|
-
- Game Center: {"com.apple.developer.game-center"=>true}
|
11
|
-
- HealthKit: {"com.apple.developer.healthkit"=>true, "com.apple.developer.healthkit.access"=>["health-records"]}
|
12
|
-
- HomeKit: {"com.apple.developer.homekit"=>true}
|
13
|
-
- iCloud: {"com.apple.developer.icloud-services"=>["CloudKit"], "com.apple.developer.icloud-container-identifiers"=>[]}
|
14
|
-
- Apple Pay: {"com.apple.developer.in-app-payments"=>["merchant.xxxx"]}
|
15
|
-
- Extended Virtual Address Space: {"com.apple.developer.kernel.extended-virtual-addressing"=>true}
|
16
|
-
- Hotspot: {"com.apple.developer.networking.HotspotConfiguration"=>true}
|
17
|
-
- Multipath: {"com.apple.developer.networking.multipath"=>true}
|
18
|
-
- Network Extensions: {"com.apple.developer.networking.networkextension"=>["app-proxy-provider"]}
|
19
|
-
- Personal VPN: {"com.apple.developer.networking.vpn.api"=>["allow-vpn"]}
|
20
|
-
- Access WiFi Information: {"com.apple.developer.networking.wifi-info"=>true}
|
21
|
-
- NFC Tag Reading: {"com.apple.developer.nfc.readersession.formats"=>["TAG"]}
|
22
|
-
- Wallet: {"com.apple.developer.pass-type-identifiers"=>["$(TeamIdentifierPrefix)*"]}
|
23
|
-
- SiriKit: {"com.apple.developer.siri"=>true}
|
24
|
-
- Fonts: {"com.apple.developer.user-fonts"=>["system-installation"]}
|
25
|
-
- Wireless Accessory Configuration: {"com.apple.external-accessory.wireless-configuration"=>true}
|
26
|
-
- Inter-App Audio: {"inter-app-audio"=>true}
|
27
|
-
- Keychain sharing: {"keychain-access-groups"=>["$(AppIdentifierPrefix)com.ola.chat"]}
|
28
|
-
------------------------------
|
29
|
-
|
30
|
-
|
31
|
-
5.3.0 entitlements list:
|
32
|
-
|
33
|
-
---
|
34
|
-
|
35
|
-
Capabilities_Summary:
|
36
|
-
|
37
|
-
In-App Purchase: 6413cfeb7a89f7e0a8872f82b919c0d9
|
38
|
-
|
39
|
-
Push Notifications: 3250c7ff60c20cfc4aaf7f6791f621df
|
40
|
-
|
41
|
-
ClassKit: 0ab2c8bb2a021beda00a0d4e6a65093a
|
42
|
-
|
43
|
-
Sign In with Apple: 6642376617933be4ae31b129fe403e45
|
44
|
-
|
45
|
-
Associated Domains: fa57cad0e93096199dfdefff0b6e8b92
|
46
|
-
|
47
|
-
MDM Managed Associated Domains: d479f7996a4c3f82893b79d2361311f1
|
48
|
-
|
49
|
-
AutoFill Credential Provider: 316f5abc6e0273338046ebb32ed076db
|
50
|
-
|
51
|
-
Data Protection: b94eb6e40823b5c674de4ad4dd1c9734
|
52
|
-
|
53
|
-
App Attest: 3e66df09c974344e2c16c3e875ade176
|
54
|
-
|
55
|
-
Game Center: dd324a9aec2a55ca5573f5cb810b58e8
|
56
|
-
|
57
|
-
HealthKit: 94ab8d6e039b1c6b135cf70e0fa9240d
|
58
|
-
|
59
|
-
HomeKit: 68dfbc37633b4583a3c2ec50dc1c59c6
|
60
|
-
|
61
|
-
iCloud: 2f650c9ade273e460d54789666112ae8
|
62
|
-
|
63
|
-
Apple Pay: 2187796935490abf56a2ba4b93da459c
|
64
|
-
|
65
|
-
Extended Virtual Address Space: f88e975f4f6b323f956df612ca056eec
|
66
|
-
|
67
|
-
Hotspot: ee58dbfd5c0acc611961dc56f8219ddf
|
68
|
-
|
69
|
-
Multipath: 659f7b23b5dcbb1044502b01eac16dbd
|
70
|
-
|
71
|
-
Network Extensions: ce506e239bec78bd2ba9b26550fd4c4d
|
72
|
-
|
73
|
-
Personal VPN: ee79bdeedc8217160a331bc326034774
|
74
|
-
|
75
|
-
Access WiFi Information: e98b72e88cbd24b0639b7f9e684e0d8c
|
76
|
-
|
77
|
-
NFC Tag Reading: 60016cce4b8845b0f777a731f06c2ef1
|
78
|
-
|
79
|
-
Wallet: fefc7cf9c4f7b017d060ca5561215c9c
|
80
|
-
|
81
|
-
SiriKit: ce40d86d84b2e46b4158ba77c3170f12
|
82
|
-
|
83
|
-
Fonts: bfcebec5a589a962d019ef3a2755f1c8
|
84
|
-
|
85
|
-
Wireless Accessory Configuration: d9ce63e447005bf4a4c936e718597637
|
86
|
-
|
87
|
-
App Groups: 0b5c02cd472237b540efda80297cbe79
|
88
|
-
|
89
|
-
Inter-App Audio: 7abecaa3b35ccaf065573d44a34fc67c
|
90
|
-
|
91
|
-
Keychain sharing: e86942b735901fee337fc5f4a57401e3
|
92
|
-
|
93
|
-
BackgroundModes: d741c9bb5ce83f8ac40d365ae4a92c5b
|
94
|
-
|
95
|
-
DisableMinimumFrameDurationOnPhone: 00c4662d62ca111b7a420649beaf5bf7
|
96
|
-
|
97
|
-
RequiredDeviceCapabilities: ce80d3d730b0bea7ffd2bfc2f2d8f4a4
|
98
|
-
|
99
|
-
AppTransportSecurity: 931810d61eb28fc7e1b358fb592e7ecc
|
100
|
-
|
101
|
-
Capabilities:
|
102
|
-
|
103
|
-
In-App Purchase: true
|
104
|
-
|
105
|
-
Push Notifications:
|
106
|
-
|
107
|
-
aps-environment: development
|
108
|
-
|
109
|
-
ClassKit:
|
110
|
-
|
111
|
-
com.apple.developer.ClassKit-environment: development
|
112
|
-
|
113
|
-
Sign In with Apple:
|
114
|
-
|
115
|
-
com.apple.developer.applesignin:
|
116
|
-
|
117
|
-
- Default
|
118
|
-
|
119
|
-
Associated Domains:
|
120
|
-
|
121
|
-
com.apple.developer.associated-domains:
|
122
|
-
|
123
|
-
- applinks:partyhub.onelink.me
|
124
|
-
|
125
|
-
- applinks:partying-ios-alternate.app.link
|
126
|
-
|
127
|
-
- applinks:partying-ios.app.link
|
128
|
-
|
129
|
-
MDM Managed Associated Domains:
|
130
|
-
|
131
|
-
com.apple.developer.associated-domains.mdm-managed: true
|
132
|
-
|
133
|
-
AutoFill Credential Provider:
|
134
|
-
|
135
|
-
com.apple.developer.authentication-services.autofill-credential-provider: true
|
136
|
-
|
137
|
-
Data Protection:
|
138
|
-
|
139
|
-
com.apple.developer.default-data-protection: NSFileProtectionComplete
|
140
|
-
|
141
|
-
App Attest:
|
142
|
-
|
143
|
-
com.apple.developer.devicecheck.appattest-environment: development
|
144
|
-
|
145
|
-
Game Center:
|
146
|
-
|
147
|
-
com.apple.developer.game-center: true
|
148
|
-
|
149
|
-
HealthKit:
|
150
|
-
|
151
|
-
com.apple.developer.healthkit: true
|
152
|
-
|
153
|
-
com.apple.developer.healthkit.access:
|
154
|
-
|
155
|
-
- health-records
|
156
|
-
|
157
|
-
HomeKit:
|
158
|
-
|
159
|
-
com.apple.developer.homekit: true
|
160
|
-
|
161
|
-
iCloud:
|
162
|
-
|
163
|
-
com.apple.developer.icloud-services:
|
164
|
-
|
165
|
-
- CloudKit
|
166
|
-
|
167
|
-
com.apple.developer.icloud-container-identifiers: []
|
168
|
-
|
169
|
-
Apple Pay:
|
170
|
-
|
171
|
-
com.apple.developer.in-app-payments:
|
172
|
-
|
173
|
-
- merchant.xxxx
|
174
|
-
|
175
|
-
Extended Virtual Address Space:
|
176
|
-
|
177
|
-
com.apple.developer.kernel.extended-virtual-addressing: true
|
178
|
-
|
179
|
-
Hotspot:
|
180
|
-
|
181
|
-
com.apple.developer.networking.HotspotConfiguration: true
|
182
|
-
|
183
|
-
Multipath:
|
184
|
-
|
185
|
-
com.apple.developer.networking.multipath: true
|
186
|
-
|
187
|
-
Network Extensions:
|
188
|
-
|
189
|
-
com.apple.developer.networking.networkextension:
|
190
|
-
|
191
|
-
- app-proxy-provider
|
192
|
-
|
193
|
-
Personal VPN:
|
194
|
-
|
195
|
-
com.apple.developer.networking.vpn.api:
|
196
|
-
|
197
|
-
- allow-vpn
|
198
|
-
|
199
|
-
Access WiFi Information:
|
200
|
-
|
201
|
-
com.apple.developer.networking.wifi-info: true
|
202
|
-
|
203
|
-
NFC Tag Reading:
|
204
|
-
|
205
|
-
com.apple.developer.nfc.readersession.formats:
|
206
|
-
|
207
|
-
- TAG
|
208
|
-
|
209
|
-
Wallet:
|
210
|
-
|
211
|
-
com.apple.developer.pass-type-identifiers:
|
212
|
-
|
213
|
-
- "$(TeamIdentifierPrefix)*"
|
214
|
-
|
215
|
-
SiriKit:
|
216
|
-
|
217
|
-
com.apple.developer.siri: true
|
218
|
-
|
219
|
-
Fonts:
|
220
|
-
|
221
|
-
com.apple.developer.user-fonts:
|
222
|
-
|
223
|
-
- system-installation
|
224
|
-
|
225
|
-
Wireless Accessory Configuration:
|
226
|
-
|
227
|
-
com.apple.external-accessory.wireless-configuration: true
|
228
|
-
|
229
|
-
App Groups:
|
230
|
-
|
231
|
-
com.apple.security.application-groups:
|
232
|
-
|
233
|
-
- group.com.ola.chat.app
|
234
|
-
|
235
|
-
- group.com.ola.chat
|
236
|
-
|
237
|
-
Inter-App Audio:
|
238
|
-
|
239
|
-
inter-app-audio: true
|
240
|
-
|
241
|
-
Keychain sharing:
|
242
|
-
|
243
|
-
keychain-access-groups:
|
244
|
-
|
245
|
-
- "$(AppIdentifierPrefix)com.ola.chat"
|
246
|
-
|
247
|
-
BackgroundModes:
|
248
|
-
|
249
|
-
UIBackgroundModes:
|
250
|
-
|
251
|
-
- audio
|
252
|
-
|
253
|
-
- remote-notification
|
254
|
-
|
255
|
-
DisableMinimumFrameDurationOnPhone:
|
256
|
-
|
257
|
-
CADisableMinimumFrameDurationOnPhone: true
|
258
|
-
|
259
|
-
RequiredDeviceCapabilities:
|
260
|
-
|
261
|
-
UIRequiredDeviceCapabilities:
|
262
|
-
|
263
|
-
- arm64
|
264
|
-
|
265
|
-
AppTransportSecurity:
|
266
|
-
|
267
|
-
NSAppTransportSecurity:
|
268
|
-
|
269
|
-
NSAllowsArbitraryLoads: true
|
270
|
-
|
271
|
-
PermissionsUsageDescription_Summary:
|
272
|
-
|
273
|
-
NSLocationAlwaysUsageDescription: 4277cee74bdb7e834578f98269d61c83
|
274
|
-
|
275
|
-
NSCameraUsageDescription: bbeb85d0f3fd621d9714ffa815e13c3b
|
276
|
-
|
277
|
-
NSUserTrackingUsageDescription: 12cb2c4dff6b2542557e4c63788abe32
|
278
|
-
|
279
|
-
NSLocalNetworkUsageDescription: 25e593f988484c58666bc7e433939d15
|
280
|
-
|
281
|
-
NSAppleMusicUsageDescription: 374bb55b8c4d5af37fca0d78ccdbd01c
|
282
|
-
|
283
|
-
NSLocationUsageDescription: 4277cee74bdb7e834578f98269d61c83
|
284
|
-
|
285
|
-
NSMicrophoneUsageDescription: f872cbada940e9081aeb4119d2b33cda
|
286
|
-
|
287
|
-
NSLocationWhenInUseUsageDescription: 4277cee74bdb7e834578f98269d61c83
|
288
|
-
|
289
|
-
NSFaceIDUsageDescription: ac6a6855c7284a2abf6c2c2c443eb9b8
|
290
|
-
|
291
|
-
NSContactsUsageDescription: 134bc1e1ab2794bbe4211aa8e01df7ed
|
292
|
-
|
293
|
-
NSPhotoLibraryUsageDescription: adb704f39c8b7b5f80946ac67b238274
|
294
|
-
|
295
|
-
PermissionsUsageDescription:
|
296
|
-
|
297
|
-
NSLocationAlwaysUsageDescription: Access to your location is required to provide
|
298
|
-
|
299
|
-
results near your area and find friends around you
|
300
|
-
|
301
|
-
NSCameraUsageDescription: Access to your camera is required to take photos or videos
|
302
|
-
|
303
|
-
in Partying.
|
304
|
-
|
305
|
-
NSUserTrackingUsageDescription: 拒绝Partying将无法精准推送您喜欢的内容。
|
306
|
-
|
307
|
-
NSLocalNetworkUsageDescription: Allow Flutter tools on your computer to connect
|
308
|
-
|
309
|
-
and debug your application. This prompt will not appear on release builds.
|
310
|
-
|
311
|
-
NSAppleMusicUsageDescription: Access to your Apple Music is required to share music
|
312
|
-
|
313
|
-
files in Partying.
|
314
|
-
|
315
|
-
NSLocationUsageDescription: Access to your location is required to provide results
|
316
|
-
|
317
|
-
near your area and find friends around you
|
318
|
-
|
319
|
-
NSMicrophoneUsageDescription: Access to your microphone is required to join voice
|
320
|
-
|
321
|
-
chatroom, send voice message or make voice calls.
|
322
|
-
|
323
|
-
NSLocationWhenInUseUsageDescription: Access to your location is required to provide
|
324
|
-
|
325
|
-
results near your area and find friends around you
|
326
|
-
|
327
|
-
NSFaceIDUsageDescription: Turn on FaceID service to use FaceID to log in.
|
328
|
-
|
329
|
-
NSContactsUsageDescription: 若不允许,你将无法在伴伴中发现手机通讯录好友
|
330
|
-
|
331
|
-
NSPhotoLibraryUsageDescription: Access to your photo library is required to share
|
332
|
-
|
333
|
-
photos and save ones in Partying.
|
334
|
-
|
335
|
-
----------------------------------------
|
336
|
-
|
337
|
-
5.2.0 entitlements list:
|
338
|
-
|
339
|
-
---
|
340
|
-
|
341
|
-
Capabilities_Summary:
|
342
|
-
|
343
|
-
In-App Purchase: 6413cfeb7a89f7e0a8872f82b919c0d9
|
344
|
-
|
345
|
-
Push Notifications: 3250c7ff60c20cfc4aaf7f6791f621df
|
346
|
-
|
347
|
-
Sign In with Apple: 6642376617933be4ae31b129fe403e45
|
348
|
-
|
349
|
-
Associated Domains: fa57cad0e93096199dfdefff0b6e8b92
|
350
|
-
|
351
|
-
App Groups: 0b5c02cd472237b540efda80297cbe79
|
352
|
-
|
353
|
-
BackgroundModes: d741c9bb5ce83f8ac40d365ae4a92c5b
|
354
|
-
|
355
|
-
DisableMinimumFrameDurationOnPhone: 00c4662d62ca111b7a420649beaf5bf7
|
356
|
-
|
357
|
-
RequiredDeviceCapabilities: ce80d3d730b0bea7ffd2bfc2f2d8f4a4
|
358
|
-
|
359
|
-
AppTransportSecurity: 931810d61eb28fc7e1b358fb592e7ecc
|
360
|
-
|
361
|
-
Capabilities:
|
362
|
-
|
363
|
-
In-App Purchase: true
|
364
|
-
|
365
|
-
Push Notifications:
|
366
|
-
|
367
|
-
aps-environment: development
|
368
|
-
|
369
|
-
Sign In with Apple:
|
370
|
-
|
371
|
-
com.apple.developer.applesignin:
|
372
|
-
|
373
|
-
- Default
|
374
|
-
|
375
|
-
Associated Domains:
|
376
|
-
|
377
|
-
com.apple.developer.associated-domains:
|
378
|
-
|
379
|
-
- applinks:partyhub.onelink.me
|
380
|
-
|
381
|
-
- applinks:partying-ios-alternate.app.link
|
382
|
-
|
383
|
-
- applinks:partying-ios.app.link
|
384
|
-
|
385
|
-
App Groups:
|
386
|
-
|
387
|
-
com.apple.security.application-groups:
|
388
|
-
|
389
|
-
- group.com.ola.chat.app
|
390
|
-
|
391
|
-
- group.com.ola.chat
|
392
|
-
|
393
|
-
BackgroundModes:
|
394
|
-
|
395
|
-
UIBackgroundModes:
|
396
|
-
|
397
|
-
- audio
|
398
|
-
|
399
|
-
- remote-notification
|
400
|
-
|
401
|
-
DisableMinimumFrameDurationOnPhone:
|
402
|
-
|
403
|
-
CADisableMinimumFrameDurationOnPhone: true
|
404
|
-
|
405
|
-
RequiredDeviceCapabilities:
|
406
|
-
|
407
|
-
UIRequiredDeviceCapabilities:
|
408
|
-
|
409
|
-
- arm64
|
410
|
-
|
411
|
-
AppTransportSecurity:
|
412
|
-
|
413
|
-
NSAppTransportSecurity:
|
414
|
-
|
415
|
-
NSAllowsArbitraryLoads: true
|
416
|
-
|
417
|
-
PermissionsUsageDescription_Summary:
|
418
|
-
|
419
|
-
NSLocationAlwaysUsageDescription: 4277cee74bdb7e834578f98269d61c83
|
420
|
-
|
421
|
-
NSCameraUsageDescription: bbeb85d0f3fd621d9714ffa815e13c3b
|
422
|
-
|
423
|
-
NSUserTrackingUsageDescription: 12cb2c4dff6b2542557e4c63788abe32
|
424
|
-
|
425
|
-
NSLocalNetworkUsageDescription: 25e593f988484c58666bc7e433939d15
|
426
|
-
|
427
|
-
NSAppleMusicUsageDescription: 374bb55b8c4d5af37fca0d78ccdbd01c
|
428
|
-
|
429
|
-
NSLocationUsageDescription: 4277cee74bdb7e834578f98269d61c83
|
430
|
-
|
431
|
-
NSMicrophoneUsageDescription: f872cbada940e9081aeb4119d2b33cda
|
432
|
-
|
433
|
-
NSLocationWhenInUseUsageDescription: 4277cee74bdb7e834578f98269d61c83
|
434
|
-
|
435
|
-
NSFaceIDUsageDescription: ac6a6855c7284a2abf6c2c2c443eb9b8
|
436
|
-
|
437
|
-
NSContactsUsageDescription: 134bc1e1ab2794bbe4211aa8e01df7ed
|
438
|
-
|
439
|
-
NSPhotoLibraryUsageDescription: adb704f39c8b7b5f80946ac67b238274
|
440
|
-
|
441
|
-
PermissionsUsageDescription:
|
442
|
-
|
443
|
-
NSLocationAlwaysUsageDescription: Access to your location is required to provide
|
444
|
-
|
445
|
-
results near your area and find friends around you
|
446
|
-
|
447
|
-
NSCameraUsageDescription: Access to your camera is required to take photos or videos
|
448
|
-
|
449
|
-
in Partying.
|
450
|
-
|
451
|
-
NSUserTrackingUsageDescription: 拒绝Partying将无法精准推送您喜欢的内容。
|
452
|
-
|
453
|
-
NSLocalNetworkUsageDescription: Allow Flutter tools on your computer to connect
|
454
|
-
|
455
|
-
and debug your application. This prompt will not appear on release builds.
|
456
|
-
|
457
|
-
NSAppleMusicUsageDescription: Access to your Apple Music is required to share music
|
458
|
-
|
459
|
-
files in Partying.
|
460
|
-
|
461
|
-
NSLocationUsageDescription: Access to your location is required to provide results
|
462
|
-
|
463
|
-
near your area and find friends around you
|
464
|
-
|
465
|
-
NSMicrophoneUsageDescription: Access to your microphone is required to join voice
|
466
|
-
|
467
|
-
chatroom, send voice message or make voice calls.
|
468
|
-
|
469
|
-
NSLocationWhenInUseUsageDescription: Access to your location is required to provide
|
470
|
-
|
471
|
-
results near your area and find friends around you
|
472
|
-
|
473
|
-
NSFaceIDUsageDescription: Turn on FaceID service to use FaceID to log in.
|
474
|
-
|
475
|
-
NSContactsUsageDescription: 若不允许,你将无法在伴伴中发现手机通讯录好友
|
476
|
-
|
477
|
-
NSPhotoLibraryUsageDescription: Access to your photo library is required to share
|
478
|
-
|
479
|
-
photos and save ones in Partying.
|
480
|
-
|
481
|
-
----------------------------------------
|