代码之家  ›  专栏  ›  技术社区  ›  IKKA

由于appstore的Info.plist文件中缺少目的字符串,已拒绝react native iOS应用程序

  •  0
  • IKKA  · 技术社区  · 6 年前

    由于在中缺少目的字符串,我从appstore收到了以下邮件 info.plist 文件。

    这是一个React本地应用程序,同时支持iOS和Android。

    我的应用程序没有请求访问用户的日历。

    我认为只有在您实际请求权限时,描述才是必需的,或者即使我从未请求查看用户日历,这些描述也是必需的。

    Info.plist文件中缺少目的字符串-应用程序的代码引用了一个或多个访问敏感用户数据的API。应用程序的Info.plist文件应包含一个NSCalendarsUsageDescription密钥,其中包含一个面向用户的目的字符串,该字符串清楚、完整地解释了应用程序需要数据的原因。从2019年春季开始,提交到应用程序商店的所有访问用户数据的应用程序都需要包含目的字符串。如果您使用外部库或sdk,它们可能会引用需要目的字符串的api。虽然您的应用程序可能不使用这些api,但仍然需要一个目的字符串。您可以联系库或SDK的开发人员,请求他们发布不包含api的代码版本。了解更多( https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy ).

    1 回复  |  直到 6 年前
        1
  •  8
  •   Sandy    6 年前

    有时候,你安装的软件包会引用你并不真正需要的api。例如, react-native-permissions 这样做,您必须为它们使用的所有api添加使用说明。

    这个 反应本机权限 包在此解释: https://github.com/yonahforst/react-native-permissions#app-store-submission-disclaimer

    如果需要将应用程序提交到AppStore,则需要向Info.plist all*UsageDescription key添加一个字符串值,向用户解释应用程序如何使用此数据。即使你不使用它们。

    这是Info.plist文件的外观示例:

    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>Some description</string>
    <key>NSCalendarsUsageDescription</key>
    <string>Some description</string>
    <key>NSCameraUsageDescription</key>
    <string>Some description</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Some description</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>Some description</string>
    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>Some description</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Some description</string>
    <key>NSSpeechRecognitionUsageDescription</key>
    <string>Some description</string>
    <key>NSAppleMusicUsageDescription</key>
    <string>Some description</string>
    <key>NSMotionUsageDescription</key>
    <string>Some description</string>