From 9c31948dbf435e83e2f1ddf9fdb2d9ce266d9464 Mon Sep 17 00:00:00 2001 From: Jens Andersson Date: Thu, 11 Jun 2020 16:53:14 +0200 Subject: [PATCH] Always set headers for iOS (#2014) --- CHANGELOG.md | 1 + README.md | 2 -- ios/Video/RCTVideo.m | 11 ++++------- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 832cae61..cd7a97c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - Added `currentPlaybackTime` (Android ExoPlayer, iOS) - when playing an HLS live stream with a `EXT-X-PROGRAM-DATE-TIME` tag configured, then this property will contain the epoch value in msec. (#1944) - Added `trackId` (Android ExoPlayer) - Configure an identifier for the video stream to link the playback context to the events emitted. (#1944) - Reverted the JS fullscreening for Android. [#2013](https://github.com/react-native-community/react-native-video/pull/2013) +- Set iOS request headers without needing to edit RCTVideo.m. [#2014](https://github.com/react-native-community/react-native-video/pull/2014) ### Version 5.1.0-alpha5 diff --git a/README.md b/README.md index c8043377..29a20e70 100644 --- a/README.md +++ b/README.md @@ -473,8 +473,6 @@ Platforms: iOS #### headers Pass headers to the HTTP client. Can be used for authorization. Headers must be a part of the source object. -To enable this on iOS, you will need to manually edit RCTVideo.m and uncomment the header code in the playerItemForSource function. This is because the code used a private API and may cause your app to be rejected by the App Store. Use at your own risk. - Example: ``` source={{ diff --git a/ios/Video/RCTVideo.m b/ios/Video/RCTVideo.m index 8bfe702b..a24a33de 100644 --- a/ios/Video/RCTVideo.m +++ b/ios/Video/RCTVideo.m @@ -497,13 +497,10 @@ static int const RCTVideoUnset = -1; NSMutableDictionary *assetOptions = [[NSMutableDictionary alloc] init]; if (isNetwork) { - /* Per #1091, this is not a public API. - * We need to either get approval from Apple to use this or use a different approach. - NSDictionary *headers = [source objectForKey:@"requestHeaders"]; - if ([headers count] > 0) { - [assetOptions setObject:headers forKey:@"AVURLAssetHTTPHeaderFieldsKey"]; - } - */ + NSDictionary *headers = [source objectForKey:@"requestHeaders"]; + if ([headers count] > 0) { + [assetOptions setObject:headers forKey:@"AVURLAssetHTTPHeaderFieldsKey"]; + } NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; [assetOptions setObject:cookies forKey:AVURLAssetHTTPCookiesKey];