app_permission_statistics 0.1.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6cf028216ad0a5eb9e5db38cc608dfa4c52ff7df9cd4a3edbbb9e34a1c56af96
4
+ data.tar.gz: 0c2556087ea1bae27ddb2f0f175f34f503fff720c9bae41c6810f23cf24f9cb2
5
+ SHA512:
6
+ metadata.gz: 624c434805872eeb40a78bdea1e743b5c62e71dc30f21577736efa06b2ab7af17c446c664aae43a6c6e8dbf41224fcaba60a9a39229b3e633f1596a56be33e1f
7
+ data.tar.gz: 6846d46f81aa9ce88667948dd379c19b3562356811898028fb9f1906fe5d9309caa72468067faba8f6d9dcbcb7352383ca336483a8a3f9a652199fbd41dbf3c2
data/.DS_Store ADDED
Binary file
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in app_permission_statistics.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+ gem 'crimp'
10
+ gem 'zip'
data/Gemfile.lock ADDED
@@ -0,0 +1,33 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ app_permission_statistics (0.1.0)
5
+ CFPropertyList (>= 2.3.4, < 3.1.0)
6
+ crimp
7
+ yaml
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ CFPropertyList (3.0.5)
13
+ rexml
14
+ crimp (1.0.0)
15
+ deepsort
16
+ deepsort (0.4.5)
17
+ rake (13.0.6)
18
+ rexml (3.2.4)
19
+ yaml (0.1.1)
20
+ zip (2.0.2)
21
+
22
+ PLATFORMS
23
+ x86_64-darwin-21
24
+
25
+ DEPENDENCIES
26
+ app_permission_statistics!
27
+ bundler (>= 1.12)
28
+ crimp
29
+ rake (~> 13.0)
30
+ zip
31
+
32
+ BUNDLED WITH
33
+ 2.2.3
data/README.md ADDED
@@ -0,0 +1,124 @@
1
+ # AppPermissionStatistics
2
+
3
+ 传入两个IPA包路径,统计分析权限,并输出报告文件
4
+
5
+ ## Installation
6
+
7
+ ```shell
8
+ $ sudo gem install app_permission_statistics
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```shell
14
+ # 命令行输入
15
+ $ app_permission_statistics path/to/file1.ipa path/to/file2.ipa
16
+ # 支持自定义报告输出路径
17
+ # app_permission_statistics path/to/file1.ipa path/to/file2.ipa path/to/report
18
+ ```
19
+
20
+ > 也可以作为cocoapods插件,集成进打包流程
21
+ >
22
+ > 仓库地址:https://github.com/olaola-chat/cli-cocoapods-entitlements-statistics
23
+
24
+ ## 说明
25
+
26
+ ##### 版本权限统计
27
+
28
+ 默认会在 ~/appInfo-#{app_bundle_id}/ 下为每个版本建立权限统计文件
29
+
30
+ ```yaml
31
+
32
+ ├── appInfo-com.ola.chat
33
+ │   ├── entitlements_5.2.0.yml
34
+ │   ├── entitlements_5.3.0.yml
35
+ │   └── entitlements_versions.yml
36
+ ```
37
+
38
+ ##### 报告内容如下:
39
+
40
+ * 权限变化对比分析(增、删、改)
41
+ * (对比的各)版本权限列表详情
42
+
43
+ ```yaml
44
+
45
+ compared 5.3.0 5.2.0
46
+
47
+ modify capabilitys :
48
+ 5.3.0
49
+ - items ..
50
+ 5.2.0
51
+ - items ..
52
+ ------------------------------
53
+ add capabilitys :
54
+ - items ..
55
+ ------------------------------
56
+ remove capabilitys :
57
+ - items ..
58
+ ------------------------------
59
+
60
+ 5.3.0 entitlements list:
61
+ ...
62
+
63
+ 5.2.0 entitlements list:
64
+ ...
65
+
66
+ ```
67
+
68
+ ## iOS 项目权限
69
+
70
+ #### 大致分类 Capabilitys、info.plist(Cocoa Keys)
71
+
72
+ * Capabilitys
73
+
74
+ > Xcode->Target->Signing&Capabilitys->Capabilitys 下添加和删除 Capabilitys , 这里不是随便添加的,需要首先在苹果开发者后台注册或者声明对应Capabilitys. 更新的Provisioning Profile文件,其中包含Entitlements 字段包含(几乎所有的)已注册Capabilitys, Xcode中添加Capabilitys后会同Profile文件校验。不匹配则无法通过编译签名。
75
+
76
+ Supported capabilities (iOS):
77
+ https://developer.apple.com/help/account/reference/supported-capabilities-ios
78
+
79
+ * info.plist (Cocoa Key-Values)
80
+ * NS{Permissions}UsageDescription
81
+ > info.plist 中声明使用相机、麦克风、摄像头..等权限的说明
82
+
83
+ * 其它权限声明Keys
84
+ > info.plist 中也会包含一些权限的详细设置、声明,比如屏幕高刷、代理、后台模式...
85
+
86
+ info.plist 涉及的所有 Cocoa Keys
87
+ https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW1
88
+
89
+ #### 涉及的文件
90
+
91
+ * info.plist
92
+ * Runner.entitlements
93
+ * {embedded/xxx-xx-xx}.mobileprovision
94
+ embedded.mobileprovision 存在于IPA包中,被发送到Appstore,真正安装的app 却没有这个文件
95
+ xxx-xx-xx.mobileprovision 在打包成IPA前用于工程签名的描述文件
96
+ 两者基本一致,包括里面的Entitlements字段, 保存一些 Capabilitys被添加后的 声明、设置
97
+ * Runner.xcodeproj
98
+ 工程文件SystemCapabilities字段包含了一些Capabilitys声明
99
+
100
+
101
+ #### 文件说明:
102
+
103
+ xx.mobileprovision
104
+ https://developer.apple.com/forums/thread/685723
105
+
106
+ Runner.entitlements
107
+ https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html#//apple_ref/doc/uid/TP40011195-CH1-SW1
108
+
109
+ #### 问题
110
+
111
+ * IPA包中找不到 In-App Purchase 功能标记
112
+
113
+ > 一般Capabilitys添加后会在Runner.entitlements、xx.mobileprovision找到对应key:value声明、设置
114
+
115
+ 添加 In-App Purchase后, 仅在Runner.xcodeproj中有 "com.apple.InAppPurchase"=>{"enabled"=>"1"} 声明
116
+
117
+ * Background Modes 属于 Capabilitys 中的异类
118
+
119
+ > 一般Capabilitys添加后会在Runner.entitlements、xx.mobileprovision找到对应key:value声明、设置, 而Background Modes在这里没有任何记录
120
+
121
+ Background Modes的声明位置:
122
+ * Runner.xcodeproj : "com.apple.BackgroundModes"=>{"enabled"=>"1"}
123
+ * info.plist : "UIBackgroundModes"=>{"audio"、"remote-notification" ...}
124
+
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ task default: %i[]
data/analyze_report ADDED
@@ -0,0 +1,481 @@
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
+ ----------------------------------------