iOS开发--使用友盟快速分享与第三方登录注意事项

iOS开发--使用友盟快速分享与第三方登录注意事项,第1张

官方说的比较详细,但是就是有些重复,而且有很多坑

在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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11907675.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存