2016-03-02 2 views
2

При запуске AlipaySDK демо от https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1 произошли некоторые странные вещи.Почему так много 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 не открытая исходный код от того, что я вижу, так что нет никакого способа для вас, чтобы заглянуть в их код, код находится внутри статичного LIBS *.a файлов

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

Это ничего сп Если вы пишете проект и строите его как статическую библиотеку, вы получите скомпилированный источник в файлах .a, которые вы можете импортировать в другие проекты и использовать там, если у вас есть соответствующие файлы заголовков, это точно так же AliPay делает это

Надеюсь, это очистит путаницу, я рекомендую оставить его как есть, не позволяйте им снимать трюки.

Вы всегда можете добавить список этих схем в свой info.plist, но тогда вам нужно будет объяснить, почему Apple должна открыть так много приложений, опять же, очень плохая идея, просто проигнорируйте ее, и вы хорошо пойти!

+0

Еще один вопрос: любой вопрос безопасности, который может быть отклонен Apple? – Forrest

+0

Это действительно сложно сказать, но до тех пор, пока вы не вручную включаете эти приложения в права, вы, вероятно, хорошо поедете, но в какой-то момент яблоко может включить это в процесс обзора, но из моей работы у меня есть но чтобы это произошло! –