app_permission_statistics 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ ----------------------------------------