在遵循指南后,Xamarin iOS应用被UIWebView拒绝了

问题描述 投票:1回答:1

[我们有一个新应用正在尝试提交到应用商店(使用TestFlight进行预发布Beta测试),但是由于引用了UIWebView,因此收到了无效的二进制消息:

TMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability.

我们已遵循Xamarin在此处提供的指南:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/webview?tabs=macos#uiwebview-deprecation-and-app-store-rejection-itms-90809

我们有:

  1. 将Xamarin格式升级到4.6或更高版本-4.6.0.706
  2. 确保Xamarin.iOS 13.10.0.17或更高版本-13.16.0.13
  3. 删除对UIWebView的引用(首先没有)
  4. 已将确保的IOS构建设置为“仅Link Framework SDK”(已))>
  5. 添加了必需的mtouch参数:“-optimize = experimental-xforms-product-type”
  6. 更新了所有构建配置(发行版/ iphone,发行版/模拟器,调试/ iphone,调试/模拟器)
  7. 我还删除了我的软件包,bin和对象文件夹,以确保获得完整版本,但在上载时继续得到此响应。

编辑:我在MTOUCH中添加了警告标志,以查看它的使用位置,现在我确实看到了警告,因此它在...某处。

已添加警告代码:--warn-on-type-ref=UIKit.UIWebView

构建警告:Build with warning

我如何找到哪个包正在使用UIWebView而又不随意更新它们,并希望能做到这一点(没有其他意外的后果?)>

编辑#2:我按照以下建议操作了GREP搜索-这是我的结果

grep -r 'UIWebView' .
Binary file ./.vs/NorthernLights/xs/sqlite3/storage.ide matches
./iOS/NorthernLights.iOS.csproj:    <MtouchExtraArgs>--optimize=experimental-xforms-product-type --warn-on-type-ref=UIKit.UIWebView</MtouchExtraArgs>
Binary file ./packages/Xamarin.Forms.4.6.0.726/buildTransitive/XCODE10/Xamarin.Forms.Platform.iOS.dll matches
Binary file ./packages/Xamarin.Forms.4.6.0.726/buildTransitive/XCODE11/Xamarin.Forms.Platform.iOS.dll matches
Binary file ./packages/Xamarin.Forms.4.6.0.726/build/XCODE10/Xamarin.Forms.Platform.iOS.dll matches
Binary file ./packages/Xamarin.Forms.4.6.0.726/build/XCODE11/Xamarin.Forms.Platform.iOS.dll matches
Binary file ./packages/HockeySDK.Xamarin.5.2.0/lib/Xamarin.iOS10/HockeySDK.iOSBindings.dll matches

在我看来,像HockeyApp可能是我的罪魁祸首之一。我已经更新了程序包,但我确实知道HockeyApp已迁移到AppCenter,因此也许不再维护此代码。另请参阅参考SQLite,这是一组软件包,如果不破坏应用程序的其他部分,我将无法更新它们。

编辑#3

我们已经删除了HockeyApp,但仍然有两个参考警告。我删除了SQLIte PCL并将其重新添加到最新版本,但仍然看到对storage.ide文件的引用,我think

只是一个我可以忽略的本地数据库文件。看起来只剩下Xamarin.Forms引用了,但是所有这些都应该通过我的mtouch参数处理:

<MtouchExtraArgs>--optimize=experimental-xforms-product-type --warn-on-type-ref=UIKit.UIWebView</MtouchExtraArg

无法弄清楚我在想什么...

我们有一个新的应用程序正在尝试提交到应用程序商店(使用TestFlight进行预发布Beta测试),但是由于引用了UIWebView,因此收到了无效的二进制消息:TMS-90809:...

] >

[好,我想出了自己的实例。一旦我知道要寻找的内容和要忽略的内容,grep工具就很棒:

  1. 删除所有bin / obj文件夹以减少混乱。
  2. 打开终端,导航到项目文件夹,然后运行grep -r UIWebView .
  • 查看结果并查找引用它的第三方NuGet软件包。
  • 由于MTOUCH规则,我可以放心地忽略Xamarin.Forms引用,尽管我不知道SQLLite引用是什么,但这不是问题。就我而言,唯一重要的是HockeyApp,它是我们使用的崩溃日志记录工具,但已过时,已由Microsoft AppCenter取代。该代码似乎没有得到维护(不足为奇),并且其中仍然包含该引用。删除HockeyApp和相关代码后,我们便可以提交问题/警告。

    附带说明。我的开发环境仍然在Xamarin.Forms中显示引用。您只需要知道,如果按照原始文章使用适当的MTOUCH参数,就可以忽略它们。

    这是我的grep结果,唯一重要的是HockeyApp参考。

    Binary file ./.vs/NorthernLights/xs/sqlite3/storage.ide matches
    ./iOS/NorthernLights.iOS.csproj:    <MtouchExtraArgs>--optimize=experimental-xforms-product-type --warn-on-type-ref=UIKit.UIWebView</MtouchExtraArgs>
    Binary file ./packages/Xamarin.Forms.4.6.0.726/buildTransitive/XCODE10/Xamarin.Forms.Platform.iOS.dll matches
    Binary file ./packages/Xamarin.Forms.4.6.0.726/buildTransitive/XCODE11/Xamarin.Forms.Platform.iOS.dll matches
    Binary file ./packages/Xamarin.Forms.4.6.0.726/build/XCODE10/Xamarin.Forms.Platform.iOS.dll matches
    Binary file ./packages/Xamarin.Forms.4.6.0.726/build/XCODE11/Xamarin.Forms.Platform.iOS.dll matches
    Binary file ./packages/HockeySDK.Xamarin.5.2.0/lib/Xamarin.iOS10/HockeySDK.iOSBindings.dll matches```
    
    c# xamarin xamarin.forms xamarin.ios uiwebview
    1个回答
    0
    投票

    [好,我想出了自己的实例。一旦我知道要寻找的内容和要忽略的内容,grep工具就很棒:

    © www.soinside.com 2019 - 2024. All rights reserved.