如果 App 因在代码中使用 UIWebView 而被拒绝,如何解决?
Posted
技术标签:
【中文标题】如果 App 因在代码中使用 UIWebView 而被拒绝,如何解决?【英文标题】:How to fix if App rejected for using UIWebView in code? 【发布时间】:2020-05-07 08:49:35 【问题描述】:我一直在尝试将 ios 应用上传到 Appstore,但它只出现在“Activity”标签上 3-5 分钟,然后然后消失。 然后我收到一封来自 Apple 的电子邮件,说我的应用程序被拒绝,因为它在一个视图控制器中使用 UIWebView。我删除了那个特定的屏幕并重新上传了应用程序并收到了相同的错误电子邮件。 然后我检查了我的第三方 sdks,如 FacebookLoginSDK 和 GoogleSignInSDK 并更新了这些,然后检查了应用程序是否没有 UIWebView,它没有。然后我重新上传了应用程序,但这一次我又收到了同样的错误电子邮件。我已经搜索了整个故事板源代码和整个应用程序代码,看看是否有任何 UIWebView 的迹象,但什么也没有,但我仍然收到这封电子邮件。 我还尝试多次删除“Derived Data”文件夹并清理构建文件夹,但没有任何帮助。 另一方面,我今天上传了一个不同的应用程序,它有 UIWebView 并且它获得了批准,但我也收到了相同的电子邮件,因为我没有使用 UIWebView。 有没有人有过这样的经历或者谁能告诉我这是怎么回事?
【问题讨论】:
没有看到任何代码,任何人都很难知道您是否确实设法删除了 UIWebView 的任何使用。 只要做一个全局搜索并检查项目是否有任何“UIWeb”关键字,如果有,使用代码将 UIWebView 转换为 WKWebView。还需要检查是否有任何情节提要。 ***.com/a/59562051/1780632 ....这是解决方案...如果它解决了您的问题,请告诉我 @Frankenstein 我已经完成了全局搜索,但找不到任何 UIWebView。 【参考方案1】:我之前也遇到过同样的问题。 如果您已上传构建并在活动选项卡中显示了几分钟,那么这并不意味着问题仅与 UIWebview 有关,但也可能存在其他问题。
我已经上传了我的应用程序 n 收到了与 UIWebview 相关的邮件,所以我将 UIWebview 转换为 WKWebView 并再次上传,但同样的事情发生了。 我没能解决这个问题。
然后我给 Apple Developer Support 发邮件,他们回复说 任何第三方库在内部使用一些隐私数据,您都应该获得相同的许可。
然后我检查了Info.plist,我已经授予了列表中的每个权限,但我们不明白它是如何产生的。 最后,在内部搜索一个第三方库后,未经许可使用运动相关数据,所以发生了这种情况。 然后我在 plist 中添加了它,然后再次上传并获得批准。
所以请您检查您的 info.plist 并检查您的第三方库是否在未经许可的情况下使用任何隐私敏感数据。 可能会在某个时候对您有所帮助。
【讨论】:
我一定会检查的,谢谢。 兄弟你的问题解决了吗?你能给我一个想法吗?我面临同样的问题【参考方案2】:确保将所有插件更新到最新版本!
检查:https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation,您可以在其中找到存在与旧 WebView 使用有关的已知问题的插件。
但请注意,卸载并重新安装某些插件不会不会安装该插件的最新可用版本!
因此,为了确保您重新安装了最新版本的插件,请转到 cordova 插件的 github 存储库并搜索 plugin.xml
文件并打开它。然后,复制根 xml 元素中的版本字符串。
最后,像这样安装插件:ionic cordova plugin add plugin_name@copied_version
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-firebase" version="2.0.5"
xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>Google Firebase Plugin</name>
...
...
...
</plugin>
【讨论】:
【参考方案3】:您在使用 AdMob 插件吗?
仅检查“UIWebView”字符串是否缺失是不够的!
您必须确保所有第三方插件都是最新的。
我遇到的最棘手的情况之一是,在 Apple 开始使用 UIWebView 拒绝应用程序之后,我尝试在 AppStore 上更新应用程序(使用 AdMob)。
生成的iOS源代码没有UIWebView引用,但还是被拒绝了!
头疼了好久,我发现我使用的 Google AdMob SDK 版本已经过时了,知道我已经从 CLI 更新了 AdMob 插件,但似乎 SDK从 npm 更新时不更新。
最后,我从这个链接https://developers.google.com/admob/ios/download 下载了最新的 AdMob SDK,并将其替换为 AdMob SDK 插件的源代码。然后我按照此链接https://developers.google.com/admob/ios/quick-start 中的说明更新了 xCode 中的代码。
【讨论】:
以上是关于如果 App 因在代码中使用 UIWebView 而被拒绝,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UIWebView 打开 safari.app 中的外部链接?
UIWebView中JS与OC交互 WebViewJavascriptBridge的使用