1、上架审核被苹果直接拒绝,要求替换项目中所有的UIWebview
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.
2、修改项目中的UIWebview
项目中全局搜索UIWebview,自己代码及一些开源第三方用各种方法替换后,准备上架,结果直接被打回还是如下图.
3、深层次排查
排查项目包含uiwebview的文件与静态库
打开终端控制台,cd 到项目目录,使用脚本排查 grep -r UIWebView . (脚本包含最后一个标点符号)
执行以上代码,会得到项目中具体包含uiwebview 静态库或者文件的名称及相关代码。
可以直接拍查出哪些静态文件包含uiwebview,发现项目中分享库shareSDK依赖的微信、QQ、微博静态库均包含.
4、替换分享库
替换好后发现,新的分享库需要使用universalLink,
(1)支持Universal Link(通用链接)
登录苹果开发者中心找到对应的APPID,配置Associated Domains,如下:
(2)配置指定文件(apple-app-site-association)
创建一个内容为json格式的文件,苹果将会在合适的时候,从我们在项目中填入的域名请求这个文件。这个文件名必须为apple-app-site-association,切记没有后缀名,文件内容大概是这样子:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TeamID.BundleID",
"paths": [ "/app/*", "/qq_conn/2222222/*"]
}
]
}
}
appID:组成方式是TeamID.BundleID。TeamID和BundleID就是第一步中的1和2。
paths:设定你的app支持的路径列表,只有这些指定路径的链接,才能被app所处理。的写法代表了可识别域名下所有链接。
"/app/"是自己定义的路径;
"/qq_conn/22222222/*"需要根据QQ互联平台设置,22222222是QQ互联后台对应应用的APPID。
ps:可先配置微信开放平台和QQ互联平台。
如果上传人员给你的访问路径是:
https://www.baidu.com/.well-known/apple-app-site-association 或
https://www.baidu.com/apple-app-site-association则:
微信开放平台的Universal Link填写是:https://www.baidu.com/app/
QQ互联平台的Universal Link填写是:https://www.baidu.com/qq_conn/22222222/
如设置:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "KV6556Y123.com.bitech.BiPark-E01-Mobile.alpha",
"paths": [ "/bitechiparkalpha/*"]
}
]
}
}
applinks:dev.bitechdevelop.com
使用
https://dev.bitechdevelop.com/bitechiparkalpha/就可以跳转
(3)上传该文件
配置好文件后,把该文件给后台开发人员上传就可以了。上传到域名所对应的 根目录或者.well-known目录下,这是为了苹果能获取到你上传的文件。上传完后,让上传人员给你一个访问路径,先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后, 出现下图或者将文件下载下来就可以了或者使用苹果提供的校验校验地址:
IIS服务器上apple-app-site-association文件报404、403解决
拓展名:.
MIME类型:application/octet-stream
(4)在Xcode开发工具配置Associated Domains
在其中的Domains中填入你想支持的域名,必须以applinks:为前缀,如:applinks:domain
如果上传人员给你的访问路径是:
https://www.baidu.com/.well-known/apple-app-site-association 或
https://www.baidu.com/apple-app-site-association
则Domains中填入:applinks:www.baidu.com
配置好后run起来。
(5)shareSDK官网后台自动创建apple-app-site-association,节省我们很多工作量和维护工作
按照他官网配置shareSDK自动创建后,在qq互联里上传报错如下分享到qq报错QQ互联验证Universal Link 状态提示应用的universallink配置中不含互联信息
按如下配置好后即可解决
5、shareSDK微信分享报错
Error Domain=ShareSDKErrorDomain Code=200300 "(null)" UserInfo={SEL=registerApp:universalLink:, error_code=200300}
设置好universal link后微信分享无法拉起,并报错如上…
需要增加一个白名单的配置LSApplicationQueriesSchemes:weixinULAPI