解决 ipa 上传 App Store 邮箱报错问题 UIWebView不支持解决办法
解决 ipa 上传 App Store 邮箱报错问题 UIWebView不支持解决办法问题:ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn
解决 ipa 上传 App Store 邮箱报错问题 UIWebView不支持解决办法
问题:
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).
Best regards,
The App Store Team
解决:
使用Xcode 9以上 打开项目
- 更新iOS到6.1.0
(1)更新前先备份一份。
(2)更新 : build > src 右键命令行启动 输入以下命令
cordova platform remove ios
cordova platform add ios (或者 ios@6.1.0)
(3)更新后,选择项目 > Singing&Capabilities > Siging 选择正确的自己的文件,发布或开发签名文件
(4)将更新后Classes中缺少的文件从备份的文件中拷贝过来。

参考:
https://ask.csdn.net/questions/5873051
-
更新CDVWKinAppBrowser.h系列文件。更新后的文件去除了userAnget的使用,因为userAnget是UIWebView的内容
下载
https://github.com/apache/cordova-plugin-inappbrowser/pull/635
将这里的src > iOS 下的文件替换项目目录Plugins中的文件
-
替换CordovaLib文件
网盘下载链接
链接:https://pan.baidu.com/s/1qv84XtoK0yDDY4iFs1GDWg
提取码:ejx0
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享
GET下载链接:https://github.com/apache/cordova-ios/commit/20248c196d35c9b8390dbbd2953f9bc1191b6c6d

(4)删除CordovaLib.xcodeproj > private > Plugins 下的 CDVUIWebViewEngine 文件夹(如果有的话)
参考:
https://blog.csdn.net/qq_38904099/article/details/107559724
- 在项目的ios目录下执行命令
cordova plugin add cordova-plugin-wkwebview-engine
(1)解决跨域问题
打开Xcode找到CDVWKWebViewEngine.m 正常在Plugins目录中
找到这个方法,里面添加代码
- (WKWebViewConfiguration*) createConfigurationFromSettings:(NSDictionary*)settings
{
WKWebViewConfiguration* configuration = [[WKWebViewConfiguration alloc] init];
…
这里还有一部分代码,不用删除
…
//在return上面添加下面两行代码
[configuration.preferences setValue:@YES forKey:@“allowFileAccessFromFileURLs”];
[configuration setValue:@YES forKey:@"_allowUniversalAccessFromFileURLs"];
return configuration;
}
(2)修改config.xml文件
设置只支持WKWebView设置
-
搜索UIWebView全部替换为WKWebView
在项目上右键
搜索全部替换,基本上是一些注释的地方
-
最后Archive 将报错的地方注释掉。
错误的地方基本上是userAgent 的地方,前面已经将userAgent换掉了。成功后就可以上传了。 -
如果没有Archive
(1)选择Any ios Device
(2)然后product > Archive
可能问题:
头文件找不着问题
我们需要在Targets下面的Build Settings中的Search Paths中的Paths配置下,将静态库,和静态库下的Headers拖进去,添加路径即可。
即下面标注部分:
(1)
target->Build Settings-> Rez Search Path填写的路径是${SRCROOT},User Header Search Path处同样也写${SRCROOT}。
(2)
在工程target->Build Phrases->Compile Sources->Link Binary With Libraries添加对应的静态库
在工程target->Build Settings-> Rez Search Path 设置
$(PROJECT)
在工程target->Build Settings-> Header Search Path 设置$(PROJECT)
参考链接:
https://blog.csdn.net/Silence723/article/details/80064043
模拟真机运行
- 选择要运行的手机

- 更改编译运行方式为release

- 选择release执行

- 更改选择项目 > Build&Setting > Architectures > Build Active Architecture Only 的Release 为yes

完成。
以上纯属根据自己的操作经历编写,如有问题还望指正。
补充:查看项目中是否含有UIWebView主要有两处
第一处是上面提到的在项目中全局搜索,这只能找到项目中使用到的UIWebView。
第二部是使用命令查看所有位置包括第三方库中是否引用UIWebView,打开命令框,进入项目目录,输入命:
grep -r UIWebView .
如果没有,那就是没有使用到的了。如果还有查看那写地方使用了。
如果是第三方插件,那就更新这些插件。使用输入命令:
pod update
全部更新。也可指定更新某一个 ,在命令后面加插件名
更新后使用 xxx.xcworkspace 启动项目
如果pod命令没有,参考:https://www.jianshu.com/p/6d51362b7e64
至此差不多就可以上架了。
更多推荐

所有评论(0)