Ionic Angular 部署到 Apple 时出现 90809 错误
Ionic Angular 90809 error when deploying to Apple
我对此做了很多研究,尽管这是一个非常常见的问题 none 对我有用的解决方案,所以我一直感到害怕:
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability
我的配置是这样的:
Ionic:
Ionic CLI : 6.10.1 (/usr/local/lib/node_modules/@ionic/cli)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.4
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 8.1.0, ios 4.2.0, windows 4.4.2
Cordova Plugins : cordova-plugin-ionic-webview 5.0.0, (and 13 other plugins)
Utility:
cordova-res : not installed
native-run : not installed
System:
NodeJS : v10.16.2 (/usr/local/bin/node)
npm : 6.14.5
OS : macOS Catalina
Xcode : Xcode 11.5 Build version 11E608c
插件:
com.verso.cordova.clipboard 0.1.0 "Clipboard"
cordova-clipboard 1.3.0 "Clipboard"
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-crop 0.3.1 "CropPlugin"
cordova-plugin-device 1.1.4 "Device"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-ionic-webview 5.0.0 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.1 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
cordova-plugin-x-socialsharing 5.6.3 "SocialSharing"
cordova-plugin-x-toast 2.6.0 "Toast"
cordova-sqlite-storage 2.2.0 "Cordova sqlite storage plugin"
es6-promise-plugin 4.2.2 "Promise"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-barcodescanner 7.0.2 "BarcodeScanner"
uk.co.workingedge.cordova.plugin.sqliteporter 1.1.1 "sqlite porter"
谁能认出尖叫的东西 "this one uses UIWebView and you should change it!"?
更新:
为了解决这个问题,我遵循了以下步骤:
- 确保
cordova-plugin-ionic-webview
的版本 >= 5.0.0
- 已添加
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
...
</platform>
到config.xml
- 更新离子
npm install -g ionic@latest
- 更新了 cordova
npm install -g cordova@latest
- 更新离子脚本
npm install @ionic/app-scripts@latest
- 然后删除iOS平台
ionic cordova platform rm ios
- 重新添加了iOS平台
ionic cordova platform add ios
- 并重建它
ionic cordova prepare ios
我最近已针对确切问题修复了我的应用程序,以下是我为修复该问题所遵循的步骤:
1) 确保您的 cordova-plugin-ionic-webview
已更新到最新版本 5.0.0
。您需要 运行 这两个命令来执行此操作。
ionic cordova plugin remove cordova-plugin-ionic-webview
ionic cordova plugin add cordova-plugin-ionic-webview@latest
2) 确保您的 cordova-ios
已更新到最新版本 6.0.0
。 运行 这个命令更新它。
npm install cordova-ios@latest --save
3) 检查您的 package.json
以查看 cordova-ios
和 cordova-plugin-ionic-webview
的版本是否更新。
4) 确保将 WKWebViewOnly
首选项添加到 config.xml
文件。
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
...
</platform>
5) 这是最重要的一步。确保删除 ios
平台并重新添加。 运行 这些命令用于删除和添加 ios 平台。
ionic cordova platform rm ios
ionic cordova platform add ios
现在,当您构建 ios 应用程序并将其发布到应用程序商店时,您会发现问题已得到解决。
我对此做了很多研究,尽管这是一个非常常见的问题 none 对我有用的解决方案,所以我一直感到害怕:
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability
我的配置是这样的:
Ionic:
Ionic CLI : 6.10.1 (/usr/local/lib/node_modules/@ionic/cli)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.4
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 8.1.0, ios 4.2.0, windows 4.4.2
Cordova Plugins : cordova-plugin-ionic-webview 5.0.0, (and 13 other plugins)
Utility:
cordova-res : not installed
native-run : not installed
System:
NodeJS : v10.16.2 (/usr/local/bin/node)
npm : 6.14.5
OS : macOS Catalina
Xcode : Xcode 11.5 Build version 11E608c
插件:
com.verso.cordova.clipboard 0.1.0 "Clipboard"
cordova-clipboard 1.3.0 "Clipboard"
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-crop 0.3.1 "CropPlugin"
cordova-plugin-device 1.1.4 "Device"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-ionic-webview 5.0.0 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.1 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
cordova-plugin-x-socialsharing 5.6.3 "SocialSharing"
cordova-plugin-x-toast 2.6.0 "Toast"
cordova-sqlite-storage 2.2.0 "Cordova sqlite storage plugin"
es6-promise-plugin 4.2.2 "Promise"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-barcodescanner 7.0.2 "BarcodeScanner"
uk.co.workingedge.cordova.plugin.sqliteporter 1.1.1 "sqlite porter"
谁能认出尖叫的东西 "this one uses UIWebView and you should change it!"?
更新:
为了解决这个问题,我遵循了以下步骤:
- 确保
cordova-plugin-ionic-webview
的版本 >= 5.0.0 - 已添加
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
...
</platform>
到config.xml
- 更新离子
npm install -g ionic@latest
- 更新了 cordova
npm install -g cordova@latest
- 更新离子脚本
npm install @ionic/app-scripts@latest
- 然后删除iOS平台
ionic cordova platform rm ios
- 重新添加了iOS平台
ionic cordova platform add ios
- 并重建它
ionic cordova prepare ios
我最近已针对确切问题修复了我的应用程序,以下是我为修复该问题所遵循的步骤:
1) 确保您的 cordova-plugin-ionic-webview
已更新到最新版本 5.0.0
。您需要 运行 这两个命令来执行此操作。
ionic cordova plugin remove cordova-plugin-ionic-webview
ionic cordova plugin add cordova-plugin-ionic-webview@latest
2) 确保您的 cordova-ios
已更新到最新版本 6.0.0
。 运行 这个命令更新它。
npm install cordova-ios@latest --save
3) 检查您的 package.json
以查看 cordova-ios
和 cordova-plugin-ionic-webview
的版本是否更新。
4) 确保将 WKWebViewOnly
首选项添加到 config.xml
文件。
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
...
</platform>
5) 这是最重要的一步。确保删除 ios
平台并重新添加。 运行 这些命令用于删除和添加 ios 平台。
ionic cordova platform rm ios
ionic cordova platform add ios
现在,当您构建 ios 应用程序并将其发布到应用程序商店时,您会发现问题已得到解决。