
在info.plist中加入安全域名白名单(右键info.plist用source code打开)
在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求 http://dev.umeng.com/social/ios/ios9
打开app,用第三方登录,发现没有sso授权页面,或打开QQ失败、微信失败、微博失败等
info.plist增加:
在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。
AndResGuard不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中输入签名信息,可自动重签名并对齐,得到可直接发布的apk)以及对应资源ID的mapping文件。
可以减小apk包体大小。
开源地址 https://github.com/shwenzhang/AndResGuard
a、在项目更目录下build.gradle文件中引入
b、然后在app目录下新建and-res-guard.gradle文件,在build.gradle下配置如下
c、完成以上配置,基本上已配置完毕
and-res-guard.gradle 文件内容如下
所有使用getIdentifier访问的资源都需要加入白名单。
友盟、极光、sharesdk、个推等第三方sdk资源文件需要加入白名单。
glide加载资源文图片需要加入白名单或者处理下
遍历查询所有通过getIdentifier访问的资源,然后统统加入白名单
可使用命令 ./gradlew resguard[BuildType | Flavor] 或者直接执行下列task任务
我们可得到以下output路径得到以下7个有用的文件说明如下:
开源地址 https://github.com/shwenzhang/AndResGuard
AndResGuard和walle多渠道打包
https://blog.csdn.net/cto_1649900265/article/details/107456522
https://blog.csdn.net/mylike_45/article/details/124303785
史上最全canOpenURL: failed问题解决办法
由于苹果在IOS9.0开始规定在App中使用Https协议与服务器进行数据交互,导致很多原本正常的功能,莫名的就崩掉了。查看控制台 就会看到各种错误提示,例如: -canOpenURL: failed for URL: "weixin://" - error:This app is not allowed to query for scheme weixin" canOpenURL: failed for URL: "wechat://" - error:This app is not allowed to query for scheme wechat" App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file 等!
不要慌张,既然有提示按照提示处理即可,对症下药方能药到病除。
1、开启Http 支持,添加ATS配置
2、canOpenURL: failed 问题处理
这里是本文的核心,请认真细看。App中常见的 使用QQ、微博等第三方登录或者分享到 朋友圈、QQ空间等,经常会遇到 canOpenURL: failed 问题,这个问题其实就是 sso白名单设置问题。在友盟官方有章节着重描述这个问题。可参考友盟 《配置sso白名单》 ,看到这里有人就笑了。这么简单按照上面配置好了,分分钟妥妥的拿下。确实,在一般情况下按照上面两个步骤之
我需要一把羽毛扇保持冷静!!!大胆猜想,小心求证。一阵抓狂后,又仔仔细细检查了项目配置果不然,发现了几个平时基本没注意的问题。第一个坑 Info.plist 在 Target Membership 中没有勾选,如下图:
一定要勾选,否则配置不会生效。勾选后,运行发现还是没屌用。此刻心中一万头草泥马奔腾而过……但问题还的解决啊。排查继续中,见证奇迹的时刻到了:居然是 Info.plist File 中文件路径是空的,是空的,空的,空,的……
只能说运气太差,这种问题也会被我碰到。正常情况这里是 Info.plist 的文件路径,新建项目默认就有了不需要去手动填写。万一是空的,你需要填写对应的地址,格式为: 项目名/Info.plist 或者 项目根目录/项目名/Info.plist 。 例如:Anthropometry/Info.plist 或者 $(SRCROOT)/Anthropometry/Info.plist 注意:Anthropometry 是我的项目,此处需要根据各自项目做修改。正确后可以 在 General 选项卡看到配置的信息,没有显示则说明地址不对。两者对比图如下:
都配置完成后,终于大功告成。运行下,看看效果。神马???还是不行!。。。我快要奔溃了,左思右想莫非哪里还有问题!突然看到 Info 选项 里面 没有 配置sos白名单。如下图核对后,加上相应配置。终于。。。终于。。OK了,我可以下班回家了!
参考:
https://blog.csdn.net/yimiyuangguang/article/details/72743025
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)