在没有ATS例外的iOS上播放HLS

时间:2016-07-08 22:34:42

标签: ios https hls app-transport-security

随着2016年底(ATS)应用程序传输安全实施iOS应用程序的到来,我试图创建一个基于AVPlayer的非常简单的iOS应用程序,能够显示通过HTTP流式传输的加密HLS,而不是HTTPS。

我发现Apple的一个示例应用程序描述了如何在AVPlayer上使用Delegates:https://developer.apple.com/library/ios/samplecode/sc1791/Introduction/Intro.html#//apple_ref/doc/uid/DTS40014357-Intro-DontLinkElementID_2

示例应用程序说明了如何使用自定义方案“拦截”来自AVPlayer的媒体请求。例如,初始播放列表URL是 的 CPLP ://devimages.apple.com/samplecode/AVARLDelegateDemo/BipBop_gear3_segmented/redirect_prog_index.m3u8

而不是通过http连接实际请求.m3u8播放列表内容,AVPlayer请求最终在代理代码中生成内容并将其返回给AVPlayer。 尽管如此,密钥的http请求实际上一直持续到Apple服务器

我在我的应用程序中尝试了相同的委托代码,但密钥的http请求被ATS阻止。

在他们的项目中,以下调用将通过:

[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString: @"http://devimages.apple.com/samplecode/AVARLDelegateDemo/BipBop_gear3_segmented/crypt0.key"]

在我的作品中,被ATS封锁:

[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://127.0.0.1:50548/proxy/session-key/?&session-id=937903260"]

我到处检查过,Apple示例应用程序没有任何ATS例外。

知道为什么我的http请求被阻止了吗?

0 个答案:

没有答案