我正在使用一个库(Zoom Meeting SDK)来开发可以执行多项任务的 iOS 应用程序。 其中之一需要访问联系人,但我没有在我的应用程序中使用此特定功能。
不幸的是,Apple 开始拒绝我的应用程序并出现以下错误:
ITMS-90683:Info.plist 中缺少目的字符串 - 您的应用程序的代码引用了一个或多个访问敏感用户数据的 API,或者应用程序具有允许此类访问的一项或多项权利。 “MyApp.app”包的 Info.plist 文件应包含一个 NSContactsUsageDescription 键,其中包含一个面向用户的目的字符串,清楚、完整地解释您的应用程序需要数据的原因。
如何避免这个问题?
我已暂时将 NSContactsUsageDescription 添加到我的 beta 应用程序的 Info.plist 文件中以继续我的测试,但这不是发布版本的真正解决方案,因为我无法给出此权限请求的充分理由。我的应用程序不以任何方式使用联系人。 请记住,Apple 可能会要求我提供一种测试方法,或者提供一段视频来展示我的应用程序如何使用通讯录。
所以这是发布我的应用程序新版本的一个阻碍问题。
有类似的吗
用户权限删除
可以在 iOS 应用程序的 Android 应用程序清单中使用吗?
<uses-permission
android:name="android.permission.SPECIFIC_PERMISSION"
tools:node="remove" />
从 Zoom SDK 6.0.2 开始,可以在应用程序清单中指定 foregroundServiceType,并且 SDK 将遵循此设置。 它不适用于较旧的 SDK。
<service
android:name="com.zipow.videobox.share.ScreenShareServiceForSDK"
android:exported="false"
android:foregroundServiceType="microphone|connectedDevice"
tools:replace="android:foregroundServiceType"
android:label="Zoom"/>
默认情况下 Zoom SDK 使用以下前台服务功能:
前景_服务_媒体_投影
前景_服务_媒体_播放
前景_服务_麦克风
FOREGROUND_SERVICE_PHONE_CALL
FOREGROUND_SERVICE_CONNECTED_DEVICE
但是由于我的应用程序没有使用所有功能,我可以从应用程序清单中删除其中一些功能。
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" tools:node="remove" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" tools:node="remove" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" tools:node="remove" />
只保留实际使用的功能:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
这使我能够在应用程序发布审核期间提供所有必要的视频和信息。