【问题标题】:Phonegap App Store Submit: ITMS-90683: Missing Purpose String in Info.plist - NFCReaderUsageDescription - Not Using PluginPhonegap App Store 提交:ITMS-90683:Info.plist 中缺少目的字符串 - NFCReaderUsageDescription - 未使用插件
【发布时间】:2020-01-28 07:13:56
【问题描述】:

我在我的 Mac 上使用 Application Loader 上传由 Adob​​e Phonegap Build 构建的 ipa。不久后我从应用商店收到一封电子邮件:

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NFCReaderUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

我在网上搜索了答案并尝试了许多解决方案,例如将键/字符串添加到 info.plist 的不同方法,但没有任何效果。我唯一能想到的是 Phonegap Build 正在覆盖一些东西。疯狂的是,我晚上不使用cordova NFC阅读器插件!我查看了我的 project.pbxproj 文件,没有对任何 NFC 的引用。我非常沮丧和困惑。

这是我的全局 config.xml 文件:

<?xml version='1.0' encoding='utf-8'?>
<widget id="net.buildix.app" version="2.0.5" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>Buildix</name>
    <description>
        Building automation suite.
    </description>
    <author email="support@buildix.net" href="https://buildix.net">Cloudulus.Media</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <preference name="OverrideUserAgent" value="Buildix/2.0 Android" />
        <preference name="android-minSdkVersion" value="16" />
        <preference name="android-targetSdkVersion" value="28" />
        <allow-intent href="market:*" />
        <icon qualifier="ldpi" src="res/icons/android/drawable-ldpi-icon.png" />
        <icon qualifier="mdpi" src="res/icons/android/drawable-mdpi-icon.png" />
        <icon qualifier="hdpi" src="res/icons/android/drawable-hdpi-icon.png" />
        <icon qualifier="xhdpi" src="res/icons/android/drawable-xhdpi-icon.png" />
        <icon qualifier="xxhdpi" src="res/icons/android/drawable-xxhdpi-icon.png" />
        <icon qualifier="xxxhdpi" src="res/icons/android/drawable-xxxhdpi-icon.png" />
        <splash qualifier="land-ldpi" src="res/screens/android/drawable-land-ldpi-screen.png" />
        <splash qualifier="land-mdpi" src="res/screens/android/drawable-land-mdpi-screen.png" />
        <splash qualifier="land-hdpi" src="res/screens/android/drawable-land-hdpi-screen.png" />
        <splash qualifier="land-xhdpi" src="res/screens/android/drawable-land-xhdpi-screen.png" />
        <splash qualifier="land-xxhdpi" src="res/screens/android/drawable-land-xxhdpi-screen.png" />
        <splash qualifier="land-xxxhdpi" src="res/screens/android/drawable-land-xxxhdpi-screen.png" />
        <splash qualifier="port-ldpi" src="res/screens/android/drawable-port-ldpi-screen.png" />
        <splash qualifier="port-mdpi" src="res/screens/android/drawable-port-mdpi-screen.png" />
        <splash qualifier="port-hdpi" src="res/screens/android/drawable-port-hdpi-screen.png" />
        <splash qualifier="port-xhdpi" src="res/screens/android/drawable-port-xhdpi-screen.png" />
        <splash qualifier="port-xxhdpi" src="res/screens/android/drawable-port-xxhdpi-screen.png" />
        <splash qualifier="port-xxxhdpi" src="res/screens/android/drawable-port-xxxhdpi-screen.png" />
    </platform>
    <platform name="ios">
        <preference name="OverrideUserAgent" value="Buildix/2.0 iOS" />
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <icon height="57" platform="ios" src="res/icons/ios/icon.png" width="57" />
        <icon height="114" platform="ios" src="res/icons/ios/icon@2x.png" width="114" />
        <icon height="40" platform="ios" src="res/icons/ios/icon-40.png" width="40" />
        <icon height="80" platform="ios" src="res/icons/ios/icon-40@2x.png" width="80" />
        <icon height="50" platform="ios" src="res/icons/ios/icon-50.png" width="50" />
        <icon height="100" platform="ios" src="res/icons/ios/icon-50@2x.png" width="100" />
        <icon height="60" platform="ios" src="res/icons/ios/icon-60.png" width="60" />
        <icon height="120" platform="ios" src="res/icons/ios/icon-60@2x.png" width="120" />
        <icon height="180" platform="ios" src="res/icons/ios/icon-60@3x.png" width="180" />
        <icon height="72" platform="ios" src="res/icons/ios/icon-72.png" width="72" />
        <icon height="144" platform="ios" src="res/icons/ios/icon-72@2x.png" width="144" />
        <icon height="76" platform="ios" src="res/icons/ios/icon-76.png" width="76" />
        <icon height="152" platform="ios" src="res/icons/ios/icon-76@2x.png" width="152" />
        <icon height="29" platform="ios" src="res/icons/ios/icon-small.png" width="29" />
        <icon height="58" platform="ios" src="res/icons/ios/icon-small@2x.png" width="58" />
        <icon height="87" platform="ios" src="res/icons/ios/icon-small@3x.png" width="87" />
        <splash height="1136" platform="ios" src="res/screens/ios/Default-568h@2x~iphone.png" width="640" />
        <splash height="1334" platform="ios" src="res/screens/ios/Default-667h.png" width="750" />
        <splash height="2208" platform="ios" src="res/screens/ios/Default-736h.png" width="1242" />
        <splash height="1242" platform="ios" src="res/screens/ios/Default-Landscape-736h.png" width="2208" />
        <splash height="1536" platform="ios" src="res/screens/ios/Default-Landscape@2x~ipad.png" width="2048" />
        <splash height="768" platform="ios" src="res/screens/ios/Default-Landscape~ipad.png" width="1024" />
        <splash height="2048" platform="ios" src="res/screens/ios/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="1024" platform="ios" src="res/screens/ios/Default-Portrait~ipad.png" width="768" />
        <splash height="960" platform="ios" src="res/screens/ios/Default@2x~iphone.png" width="640" />
        <splash height="480" platform="ios" src="res/screens/ios/Default~iphone.png" width="320" />
        <config-file parent="NFCReaderUsageDescription" target="*-Info.plist">
            <string>Reading NFC tags is used as an additional layer of multi-factor authentication.</string>
        </config-file>
    </platform>
    <platform name="winphone">
        <preference name="windows-identity-name" value="59705Cloudulus.Media.Buildix" />
        <preference name="windows-target-version" value="10.0" />
    </platform>
    <plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
    <plugin name="cordova-plugin-splashscreen" spec="~5.0.2" />
    <engine name="android" spec="^7.1.4" />
    <engine name="windows" spec="^6.0.1" />
    <engine name="browser" spec="^5.0.4" />
</widget>

此版本的配置文件反映了我最近(失败)尝试让应用商店查看我的描述字符串的尝试,但没有任何效果。我什至尝试直接编辑 Buildix-Info.plist 以手动添加它......什么都没有!

有人可以对此有所了解吗,给我任何其他选择来尝试。我想我可以 a.) 让应用商店“看到”我的描述字符串,或者 b.) 删除对 NFC 阅读器的任何引用,这对我没有用处。

任何帮助将不胜感激。我想我以后不会再使用phonegap了……

【问题讨论】:

    标签: ios cordova phonegap-plugins phonegap-build


    【解决方案1】:

    您的描述字符串必须包含描述良好的文本,以便向最终用户清楚地表明使用 NFC 的目的。用户应该清楚地了解他授予您权限的功能。

    从用户的角度来看,您当前的文本并不详细

    【讨论】:

    • 可能是这样,我会给出更详细的解释,但我认为我的提交正在被 AI 筛选,因为它很快就会被拒绝。你认为他们的人工智能足够聪明,可以理解我的目的字符串吗?
    • 另外,电子邮件说我“缺少目的字符串”,并不是说我提供的目的字符串不够......
    • 您是否尝试直接从项目的 info.plist 添加 NFCReaderUsageDescription?
    • 并将其从 config.xml 中删除?
    猜你喜欢
    • 2020-12-09
    • 2020-12-18
    • 2019-10-21
    • 1970-01-01
    • 2020-10-25
    • 2023-02-01
    • 2020-09-02
    • 2019-09-04
    • 2021-09-13
    相关资源
    最近更新 更多