【问题标题】:iOS: How to remove the reference to API that is not in use?iOS:如何删除对未使用的 API 的引用?
【发布时间】:2019-09-19 06:54:19
【问题描述】:

我已向 App Store 提交了 ionic 应用程序,但它要求我添加对 info.plist 文件的引用。以下是错误。

ITMS-90683:Info.plist 中缺少用途字符串 - 您的应用代码引用了一个或多个访问敏感用户数据的 API。应用程序的 Info.plist 文件应包含一个 NSBluetoothAlwaysUsageDescription 键和一个面向用户的目的字符串,清楚而完整地解释您的应用程序需要数据的原因。从 2019 年春季开始,所有提交到 App Store 的访问用户数据的应用程序都必须包含目的字符串。如果您使用的是外部库或 SDK,它们可能会引用需要目的字符串的 API。虽然您的应用可能不使用这些 API,但仍需要使用目的字符串。您可以联系库或 SDK 的开发人员,要求他们发布不包含 API 的代码版本。

但我的项目不使用蓝牙。

如何摆脱此错误以及如何删除未使用的 api 引用。我是 xcode 和 iOS 的新手。

【问题讨论】:

  • 您是否在使用任何与蓝牙相关的插件?如果是,请删除该插件。否则添加使用说明。
  • 类似的问题和答案可以在这里找到stackoverflow.com/questions/57987863/…
  • 由于cordova.plugins.diagnostic 插件,这个问题在ios 13 上发生。我也想知道如何摆脱这个。您已经找到解决方案了吗?

标签: ios xcode ionic-framework


【解决方案1】:

检查您的任何外部库是否正在使用蓝牙。在整个项目中搜索“NSBluetoothAlwaysUsageDescription”,通常如果一个库使用蓝牙,你会在它的Info.plist中找到它

如果您必须使用该库,只需将该目的字符串添加到主项目的 Info.plist 中即可让 Apple 满意。

【讨论】:

    【解决方案2】:

    我的应用程序也有同样的问题,并添加了 NSBluetoothAlwaysUsageDescription;苹果随后拒绝了它,称他们无法识别应用程序中的任何蓝牙功能并删除了许可密钥。所以现在我被卡住了。

    【讨论】:

      【解决方案3】:

      在我的例子中(一个 Ionic 3 应用程序),尽管没有明确包含 cordova.plugins.diagnostic,但它的蓝牙依赖项被引入了我的 iOS 版本,并在提交给苹果时产生了同样的警告。

      为了更正,我首先在 config.xml 中添加了这一行(基本上是说我们不想引入任何诊断模块):

      <preference name="cordova.plugins.diagnostic.modules" value="" />

      然后运行以下命令将其添加到我的项目中:

      ionic cordova plugin add cordova.plugins.diagnostic

      在移除并重新添加 ios 平台后,生成的 Xcode 项目不再具有蓝牙依赖项,我能够毫无问题地提交给 Apple。

      【讨论】:

        猜你喜欢
        • 2010-12-19
        • 1970-01-01
        • 1970-01-01
        • 2012-10-03
        • 1970-01-01
        • 1970-01-01
        • 2012-08-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多