ionic 3 ITMS-90809:不建议使用的API使用-iOS 5.1.1

时间:2020-05-02 05:09:51

标签: ios uiwebview ionic3 wkwebview

  1. 将构建文件上传到AppStoreConnect时(通过
    对其进行测试) 例如TestFlight),我就知道了众所周知的弃用方法
    讯息:

    ITMS-90809:不赞成使用API​​-使用新应用程序
    不再接受UIWebView。而是将WKWebView用于 提高了安全性和可靠性。了解更多
    https://developer.apple.com/documentation/uikit/uiwebview)。

我做了什么: 1)删除ios平台并添加V5.1.0 ios平台。

2)在config.xml中添加以下内容

3)冉离子科尔多瓦建立iOS

我正在使用的cordova插件列表:

cordova-plugin-add-swift-support 2.0.2“ AddSwiftSupport”

cordova-plugin-camera 4.1.0“相机”

cordova-plugin-chooser 1.2.6“选择器”

cordova-plugin-contacts 3.0.1“联系人”

cordova-plugin-device 2.0.2“设备”

cordova-plugin-file 6.0.2“文件”

cordova-plugin-file-transfer 1.7.1“文件传输”

cordova-plugin-filepath 1.5.8“ cordova-plugin-filepath”

cordova-plugin-googleplus 5.2.1 "Google SignIn"   

cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard" 

cordova-plugin-ionic-webview 4.2.1 "cordova-plugin-ionic-webview"   

cordova-plugin-media-capture 3.0.3 "Capture"   

cordova-plugin-splashscreen 5.0.2 "Splashscreen"   

cordova-plugin-statusbar 2.4.2 "StatusBar" 

cordova-plugin-stripe 1.5.3 "cordova-plugin-stripe" 

cordova-plugin-telerik-imagepicker 2.3.3 "ImagePicker" 

cordova-plugin-video-editor 1.1.3 "VideoEditor" 

cordova-plugin-whitelist 1.3.3 "Whitelist" 

ionic-plugin-deeplinks 1.0.20 "Ionic Deeplink Plugin"

离子信息: 离子性: ionic(Ionic CLI):4.10.3(/ usr / local / lib / node_modules / ionic)Ionic框架: 在此处输入代码 离子角3.9.9 @ ionic / app-scripts:3.2.4

       Cordova:
      cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)    

科尔多瓦

平台:ios 5.1.0

Cordova插件:
cordova-plugin-ionic-keyboard 2.2.0,cordova-plugin-ionic-webview 4.2.1(和其他17个插件)

系统: ios-deploy:1.9.4 ios-sim:8.0.2

NodeJS:v10.15.1(/ usr / local / bin / node)
npm:6.4.1

OS:macOS Mojave

Xcode:Xcode 11.3.1 Build 11C504

有人知道什么可能导致此问题吗?

非常感谢您!

3 个答案:

答案 0 :(得分:1)

正如他们在Understanding ITMS-90809: UIWebView API Deprecation中所说:

  • 添加cordova plugin add cordova-plugin-ionic-webview@latest
  • 检查所有插件。更新已使用的(例如InAppBrowser 3.2.0)或删除未使用的插件。

另外,使用Cordova iOS 5.1.1

此修补程序版本中最值得注意的修复是使 等待平台添加步骤完成的步骤。 这解决了 添加之前设置WKWebViewOnly标志时看到的错误 平台

ionic cordova platform remove ios
ionic cordova platform add ios@5.1.1

config.xml 中添加:

<platform name="ios">
    <preference name="WKWebViewOnly" value="true" />

    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>

    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</platform>

有关此内容的更多信息,请参见文章How To Use 'WKWebViewOnly'

上面的示例使用了cordova-plugin-wkwebview-engine插件:

  • 添加插件cordova-plugin-wkwebview-engine,最好是最新版本1.2.1
  • preference属性CordovaWebViewEngine添加到config.xml
  • feature属性CDVWKWebViewEngine添加到config.xml
  • preference WKWebViewOnly添加到config.xml

最后但并非最不重要的:

 ionic cordova prepare ios

我希望这会有所帮助。我已经按照这些步骤操作,并且 App Store 的更新没有任何问题。

答案 1 :(得分:0)

检查CordovaLib目标-> Build Stettings->项目的用户定义(非常底部)。您在此处找到WK_WEB_VIEW_ONLY = 0将此设置为WK_WEB_VIEW_ONLY = 1不能通过GCC_PREPROCESSOR_DEFINITIONS设置宏。您还可以使用Xcode搜索WK_WEB_VIEW_ONLY,如果将Flag设置为0,它将快速显示。

仅当configure.xml包含<preference name="WKWebViewOnly" value="true" /> 在创建新的ios项目时时,Cordova才会更改此标志。因此,除了添加首选项外,还可以在XCode中手动将其更改为1。

答案 2 :(得分:0)

最新更新苹果删除了 UIWebView 使用,因此使用此 UIWebView 提交的应用将被拒绝,他们希望使用 WKWebView 构建应用以提高安全性和可靠性。

注意:如果您添加了此插件“cordova-plugin-wkwebview-engine”并运行“npm i cordova-plugin-wkwebview-engine”,请撤消这些步骤,即(删除插件和npm 卸载它)。因为这将导致构建 ios 步骤失败并出现错误 65。

为了在我们现有的项目中实现这一点,我们需要按顺序执行这些步骤,以便我们的应用程序在 App Store 中部署。

1). ionic cordova platform remove ios

2). ionic cordova plugin remove cordova-plugin-ionic-webview

3). ionic cordova plugin add cordova-plugin-ionic-webview@latest

4). npm install @ionic-native/ionic-webview@latest

5). Add following XML code in config.xml file under platform ios
        // These preferences and feature will automatically replace UIWebView to WKWebView in all the places of code during compile time.
        <preference name="WKWebViewOnly" value="true" />
        <feature name="CDVWKWebViewEngine">
            <param name="ios-package" value="CDVWKWebViewEngine" />
        </feature>
        <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

6). Check in package.json file under dependencies key "cordova-ios": "5.1.1" should exist, if not exist then add "cordova-ios": "5.1.1"

7). ionic cordova platform add ios

8). ionic cordova prepare ios

9). ionic cordova build ios

现在这些步骤将成功构建 ios 应用并准备部署。

注意:我在离子 3 和离子 4 中测试了这些步骤。

希望这对您或其他人有所帮助!

谢谢!