2016-03-02 110 views
2

https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1运行AlipaySDK演示时,发生了一些奇怪的事情。为什么这么多canOpenURL?

从Xcode中的日志输出,有超过10个日志说

-canOpenURL: failed for URL: "momochs://" - error: "This app is not allowed to query for scheme momochs

有在演示没有源代码,通过简单的搜索,打印出这样的事情。而静态lib只是付款,不应该根据我的理解做这样的检查。

这里的问题是找出为什么会发生这种情况或演示或其他设置的错误吗?

2016-03-02 15:58:55.998 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "momochs://" - error: "This app is not allowed to query for scheme momochs" 2016-03-02 15:58:55.999 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "tenpay://" - error: "This app is not allowed to query for scheme tenpay" 2016-03-02 15:58:55.999 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "com.icbc.iphoneclient://" - error: "This app is not allowed to query for scheme com.icbc.iphoneclient" 2016-03-02 15:58:56.000 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "wx2654d9155d70a468://" - error: "This app is not allowed to query for scheme wx2654d9155d70a468" 2016-03-02 15:58:56.000 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "meituan0000://" - error: "This app is not allowed to query for scheme meituan0000" 2016-03-02 15:58:56.000 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "sinaweibo://" - error: "This app is not allowed to query for scheme sinaweibo" 2016-03-02 15:58:56.001 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "dianping://" - error: "This app is not allowed to query for scheme dianping" 2016-03-02 15:58:56.001 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "diditaxi://" - error: "This app is not allowed to query for scheme diditaxi" 2016-03-02 15:58:56.002 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "cn.12306://" - error: "This app is not allowed to query for scheme cn.12306" 2016-03-02 15:58:56.002 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "mtxx://" - error: "This app is not allowed to query for scheme mtxx" 2016-03-02 15:58:56.002 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "youku://" - error: "This app is not allowed to query for scheme youku" 2016-03-02 15:58:56.003 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "baidumap://" - error: "This app is not allowed to query for scheme baidumap" 2016-03-02 15:58:56.003 AliSDKDemo[4491:1610409] -canOpenURL: failed for URL: "iosamap://" - error: "This app is not allowed to query for scheme iosamap"

+0

看到这一次,它可以帮助你http://stackoverflow.com/questions/30731785/how-do-i-load-an-http-url-with-app-transport-security-enabled-in-ios-9 –

+0

那么SDK是开源的? – SmokeDispenser

+0

演示是开源的,但SDK不是。但是SDK没有这个意义。它有点病毒? – Forrest

回答

2

Why so many canOpenURL ?

因为他们想知道哪些应用程序被安装,最多iOS8上,这是一个丑陋的伎俩知道哪些程序已安装,他们基本上都有他们想知道关于应用方案的列表,因此他们会为每个应用方案连续拨打canOpenURL,然后收集数据并将其发送回服务器,以满足他们需要的任何目的。

值得庆幸的是这iOS9不再是允许的,因为你需要提供方案列表中的程序将会做对canOpenURL调用,调用一个URL方案,这不是在你的info.plist将导致日志警告你看到

The odd thing is I got log information as below, but can't find any source code to print out such things.

的SDK没有打开,从我所看到的来源,所以没有办法让你窥视到他们的代码,代码的静态库里面*.a文件

Just wonder how can they do this without source code ? Any technology to >achieve this ? thanks

没什么SPE cial,如果你编写一个项目并将其构建为一个静态库,那么你将在.a文件中获得编译后的源代码,只要你有适当的头文件,你就可以导入到其他项目并在那里使用,这正是支付宝支付

希望这个清除了困惑,我建议保持现状,不要让他们脱离这样的特技。

您可以随时添加这些计划的清单到您的info.plist,但随后你必须到苹果自己解释为什么你需要打开这么多的应用程序,再次,非常糟糕的主意,干脆不理它,你很好去!

+0

还有一个问题:Apple可能会拒绝的任何安全问题? – Forrest

+0

确实很难说,但只要你没有手动将这些应用程序包含在应用程序中,你可能会很好,但在某些时候,苹果可能会在评论过程中包含这些内容,但从我的工作中还没有看到发生! –