فهرست منبع

Update Google Drive implementation to the current version of the SDK

Note that we currently show too many files and don't respect the file hierachy in a correct way - this needs fixing

(cherry picked from commit ef4ebaa48b8e1ad87662b337edfb2cef29583ec9)
Felix Paul Kühne 9 سال پیش
والد
کامیت
43cd786a6d

+ 3 - 1
Podfile

@@ -13,6 +13,8 @@ pod 'XKKeychain', '~>1.0'
 pod 'box-ios-sdk-v2', :git => 'git://github.com/fkuehne/box-ios-sdk-v2.git' #has a logout function added
 pod 'CocoaHTTPServer', :git => 'git://github.com/fkuehne/CocoaHTTPServer.git' # has our fixes
 pod 'RESideMenu', '~>4.0.7'
+pod 'GoogleAPIClient/Drive'
+pod 'GTMOAuth2'
 
 end
 post_install do |installer_representation|
@@ -30,7 +32,7 @@ pod 'XKKeychain', '~>1.0'
 pod 'box-ios-sdk-v2', :git => 'git://github.com/fkuehne/box-ios-sdk-v2.git' #has tvOS support added
 pod 'upnpx', '~>1.3.6'
 pod 'CocoaHTTPServer', :git => 'git://github.com/fkuehne/CocoaHTTPServer.git' # has our fixes
-pod 'MetaDataFetcherKit', :git => 'https://code.videolan.org/fkuehne/MetaDataFetcherKit.git', :commit => '81c45087'
+pod 'MetaDataFetcherKit', '~>0.1.8'
 pod "OROpenSubtitleDownloader", :git => 'https://github.com/orta/OROpenSubtitleDownloader.git', :commit => '0509eac2'
 pod 'GRKArrayDiff', '~> 2.1'
 

+ 38 - 28
Podfile.lock

@@ -1,28 +1,40 @@
 PODS:
-  - AFNetworking (3.0.0-beta.1):
-    - AFNetworking/NSURLSession (= 3.0.0-beta.1)
-    - AFNetworking/Reachability (= 3.0.0-beta.1)
-    - AFNetworking/Security (= 3.0.0-beta.1)
-    - AFNetworking/Serialization (= 3.0.0-beta.1)
-    - AFNetworking/UIKit (= 3.0.0-beta.1)
-  - AFNetworking/NSURLSession (3.0.0-beta.1):
+  - AFNetworking (3.1.0):
+    - AFNetworking/NSURLSession (= 3.1.0)
+    - AFNetworking/Reachability (= 3.1.0)
+    - AFNetworking/Security (= 3.1.0)
+    - AFNetworking/Serialization (= 3.1.0)
+    - AFNetworking/UIKit (= 3.1.0)
+  - AFNetworking/NSURLSession (3.1.0):
     - AFNetworking/Reachability
     - AFNetworking/Security
     - AFNetworking/Serialization
-  - AFNetworking/Reachability (3.0.0-beta.1)
-  - AFNetworking/Security (3.0.0-beta.1)
-  - AFNetworking/Serialization (3.0.0-beta.1)
-  - AFNetworking/UIKit (3.0.0-beta.1):
+  - AFNetworking/Reachability (3.1.0)
+  - AFNetworking/Security (3.1.0)
+  - AFNetworking/Serialization (3.1.0)
+  - AFNetworking/UIKit (3.1.0):
     - AFNetworking/NSURLSession
   - box-ios-sdk-v2 (1.2.3):
     - box-ios-sdk-v2/no-arc (= 1.2.3)
   - box-ios-sdk-v2/no-arc (1.2.3)
   - CocoaHTTPServer (2.3)
+  - GoogleAPIClient/Core (1.0.4):
+    - GTMSessionFetcher (~> 1.1)
+  - GoogleAPIClient/Drive (1.0.4):
+    - GoogleAPIClient/Core
+    - GTMSessionFetcher (~> 1.1)
   - GRKArrayDiff (2.1)
+  - GTMOAuth2 (1.1.1):
+    - GTMSessionFetcher (~> 1.1)
+  - GTMSessionFetcher (1.1.4):
+    - GTMSessionFetcher/Full (= 1.1.4)
+  - GTMSessionFetcher/Core (1.1.4)
+  - GTMSessionFetcher/Full (1.1.4):
+    - GTMSessionFetcher/Core (= 1.1.4)
   - HockeySDK (3.6.4)
   - InAppSettingsKit (2.2.2)
-  - MetaDataFetcherKit (0.2.0):
-    - AFNetworking (= 3.0.0-beta.1)
+  - MetaDataFetcherKit (0.1.8):
+    - AFNetworking (= 3.1.0)
     - OROpenSubtitleDownloader
   - NSData+Base64 (1.0.0)
   - OBSlider (1.1.0)
@@ -38,15 +50,14 @@ PODS:
 DEPENDENCIES:
   - box-ios-sdk-v2 (from `git://github.com/fkuehne/box-ios-sdk-v2.git`)
   - CocoaHTTPServer (from `git://github.com/fkuehne/CocoaHTTPServer.git`)
+  - GoogleAPIClient/Drive
   - GRKArrayDiff (~> 2.1)
+  - GTMOAuth2
   - HockeySDK (~> 3.6.4)
-  - InAppSettingsKit (from `git://github.com/fkuehne/InAppSettingsKit.git`, commit
-    `415ea6bb`)
-  - MetaDataFetcherKit (from `https://code.videolan.org/fkuehne/MetaDataFetcherKit.git`,
-    commit `81c45087`)
+  - InAppSettingsKit (from `git://github.com/fkuehne/InAppSettingsKit.git`, commit `415ea6bb`)
+  - MetaDataFetcherKit (~> 0.1.8)
   - OBSlider (= 1.1.0)
-  - OROpenSubtitleDownloader (from `https://github.com/orta/OROpenSubtitleDownloader.git`,
-    commit `0509eac2`)
+  - OROpenSubtitleDownloader (from `https://github.com/orta/OROpenSubtitleDownloader.git`, commit `0509eac2`)
   - RESideMenu (~> 4.0.7)
   - upnpx (~> 1.3.6)
   - XKKeychain (~> 1.0)
@@ -59,9 +70,6 @@ EXTERNAL SOURCES:
   InAppSettingsKit:
     :commit: 415ea6bb
     :git: git://github.com/fkuehne/InAppSettingsKit.git
-  MetaDataFetcherKit:
-    :commit: 81c45087
-    :git: https://code.videolan.org/fkuehne/MetaDataFetcherKit.git
   OROpenSubtitleDownloader:
     :commit: 0509eac2
     :git: https://github.com/orta/OROpenSubtitleDownloader.git
@@ -76,21 +84,21 @@ CHECKOUT OPTIONS:
   InAppSettingsKit:
     :commit: 415ea6bb
     :git: git://github.com/fkuehne/InAppSettingsKit.git
-  MetaDataFetcherKit:
-    :commit: 81c45087
-    :git: https://code.videolan.org/fkuehne/MetaDataFetcherKit.git
   OROpenSubtitleDownloader:
     :commit: 0509eac2
     :git: https://github.com/orta/OROpenSubtitleDownloader.git
 
 SPEC CHECKSUMS:
-  AFNetworking: 1100906802d9479aa0949e8e2cbc1d4e6beba327
+  AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
   box-ios-sdk-v2: 9423bd75373350ea40b92f3d2d6e89f81d96d634
   CocoaHTTPServer: 07df8b05a8bde406fe367d22c90a24a2fd4ca49f
+  GoogleAPIClient: 4dedb6af613eb7d171814c343f8a82ee5411e13b
   GRKArrayDiff: cf743e6b30f6b72a3763e1f16cc5d9da39af86a5
+  GTMOAuth2: bdb12f3e0d2110bfe585f6151230b883beb4d042
+  GTMSessionFetcher: 174bc61d5238f81f9ddb807b0b0170420f67de85
   HockeySDK: c07cdd580296737edcd0963e292c19885a53f563
   InAppSettingsKit: 76d5cfbaa3e3f8aa53fe3628516da7eb1aa6a5cb
-  MetaDataFetcherKit: 6cbb2f651c56e16015ec08535e090bc923deb6cb
+  MetaDataFetcherKit: 44c90defa89b3a72cef60e07ad9de37821dd7c5d
   NSData+Base64: 4e84902c4db907a15673474677e57763ef3903e4
   OBSlider: 490f108007bfdd5414a38650b211fe403a95b8a0
   OROpenSubtitleDownloader: 154b8c08acbf8836b77ac259018dc8b5baef907e
@@ -99,4 +107,6 @@ SPEC CHECKSUMS:
   XKKeychain: 852ef663c56a7194c73d3c68e8d9d4f07b121d4f
   xmlrpc: 109bb21d15ed6d108b2c1ac5973a6a223a50f5f4
 
-COCOAPODS: 0.39.0
+PODFILE CHECKSUM: 5a16df7669cc9e55408512296a5fc97d61d9888c
+
+COCOAPODS: 1.0.1

+ 3 - 3
Sources/VLCCloudStorageTableViewCell.m

@@ -102,13 +102,13 @@
     else if(_driveFile != nil){
         BOOL isDirectory = [self.driveFile.mimeType isEqualToString:@"application/vnd.google-apps.folder"];
         if (isDirectory) {
-            self.folderTitleLabel.text = self.driveFile.title;
+            self.folderTitleLabel.text = self.driveFile.name;
             self.titleLabel.hidden = self.subtitleLabel.hidden = YES;
             self.folderTitleLabel.hidden = NO;
         } else {
-            NSString *title = self.driveFile.title;
+            NSString *title = self.driveFile.name;
             self.titleLabel.text = title;
-            self.subtitleLabel.text = (self.driveFile.fileSize > 0) ? [NSByteCountFormatter stringFromByteCount:[self.driveFile.fileSize longLongValue] countStyle:NSByteCountFormatterCountStyleFile]: @"";
+            self.subtitleLabel.text = (self.driveFile.size > 0) ? [NSByteCountFormatter stringFromByteCount:[self.driveFile.size longLongValue] countStyle:NSByteCountFormatterCountStyleFile]: @"";
             self.titleLabel.hidden = self.subtitleLabel.hidden = NO;
             self.folderTitleLabel.hidden = YES;
 

+ 0 - 1
Sources/VLCGoogleDriveController.h

@@ -12,7 +12,6 @@
  *****************************************************************************/
 
 #import "GTLDrive.h"
-#import "GTMOAuth2ViewControllerTouch.h"
 #import "VLCCloudStorageController.h"
 #import "VLCGoogleDriveConstants.h"
 

+ 33 - 25
Sources/VLCGoogleDriveController.m

@@ -17,6 +17,9 @@
 #import "VLCMediaFileDiscoverer.h"
 #import <XKKeychain/XKKeychain.h>
 
+#import "GTMOAuth2ViewControllerTouch.h"
+#import "GTMOAuth2SignIn.h"
+
 @interface VLCGoogleDriveController ()
 {
     GTLDriveFileList *_fileList;
@@ -179,8 +182,11 @@
 
     query = [GTLQueryDrive queryForFilesList];
     query.pageToken = _nextPageToken;
-    //the results don't come in alphabetical order when paging. So the maxresult (default 100) is set to INT_max in order to get all files at once.
-    query.maxResults = INT_MAX;
+    //the results don't come in alphabetical order when paging. So the maxresult (default 100) is set to 1000 in order to get a few more files at once.
+    //query.pageSize = 1000;
+    query.includeDeleted = NO;
+    query.includeRemoved = NO;
+    query.restrictToMyDrive = YES;
     if (![_folderId isEqualToString:@""]) {
         query.q = [NSString stringWithFormat:@"'%@' in parents", [_folderId lastPathComponent]];
     }
@@ -202,9 +208,11 @@
 - (void)streamFile:(GTLDriveFile *)file
 {
     NSString *token = ((GTMOAuth2Authentication *)self.driveService.authorizer).accessToken;
-    NSString *downloadString = [file.downloadUrl stringByAppendingString:[NSString stringWithFormat:@"&access_token=%@",token]];
+    NSString *urlString = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?alt=media&access_token=%@",
+                     file.identifier, token];
+
     VLCPlaybackController *vpc = [VLCPlaybackController sharedInstance];
-    [vpc playURL:[NSURL URLWithString:downloadString] successCallback:nil errorCallback:nil];
+    [vpc playURL:[NSURL URLWithString:urlString] successCallback:nil errorCallback:nil];
 }
 
 - (void)_triggerNextDownload
@@ -243,20 +251,19 @@
 {
     NSMutableArray *listOfGoodFilesAndFolders = [[NSMutableArray alloc] init];
 
-    for (GTLDriveFile *driveFile in _fileList.items)
-    {
-        BOOL isDirectory = [driveFile.mimeType isEqualToString:@"application/vnd.google-apps.folder"];
+    for (GTLDriveFile *iter in _fileList.files) {
+        BOOL isDirectory = [iter.mimeType isEqualToString:@"application/vnd.google-apps.folder"];
         BOOL inDirectory = NO;
-        if (driveFile.parents.count > 0) {
-            GTLDriveParentReference *parent = (GTLDriveParentReference *)driveFile.parents[0];
+        if (iter.parents.count > 0) {
+            GTLDriveFile *parent = [iter.parents firstObject];
             //since there is no rootfolder display the files right away
-            if (![parent.isRoot boolValue])
+            if (parent.parents == nil)
                 inDirectory = ![parent.identifier isEqualToString:[_folderId lastPathComponent]];
         }
-        BOOL supportedFile = [self _supportedFileExtension:[NSString stringWithFormat:@".%@",driveFile.fileExtension]];
+        BOOL supportedFile = [self _supportedFileExtension:iter.name];
 
         if ((isDirectory || supportedFile) && !inDirectory)
-            [listOfGoodFilesAndFolders addObject:driveFile];
+            [listOfGoodFilesAndFolders addObject:iter];
     }
     _currentFileList = [_currentFileList count] ? [_currentFileList arrayByAddingObjectsFromArray:listOfGoodFilesAndFolders] : [NSArray arrayWithArray:listOfGoodFilesAndFolders];
 
@@ -269,8 +276,8 @@
 
     //the files come in a chaotic order so we order alphabetically
      NSArray *sortedArray = [_currentFileList sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
-        NSString *first = [(GTLDriveFile *)a title];
-        NSString *second = [(GTLDriveFile *)b title];
+        NSString *first = [(GTLDriveFile *)a name];
+        NSString *second = [(GTLDriveFile *)b name];
         return [first compare:second];
     }];
     _currentFileList = sortedArray;
@@ -281,27 +288,28 @@
 
 - (void)loadFile:(GTLDriveFile*)file intoPath:(NSString*)destinationPath
 {
-    NSString *exportURLStr = file.downloadUrl;
+    NSString *exportURLStr =  [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?alt=media",
+                           file.identifier];
 
     if ([exportURLStr length] > 0) {
-        NSURL *url = [NSURL URLWithString:exportURLStr];
-        NSURLRequest *request = [NSURLRequest requestWithURL:url];
-        GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
-
+        GTMSessionFetcher *fetcher = [self.driveService.fetcherService fetcherWithURLString:exportURLStr];
         fetcher.authorizer = self.driveService.authorizer;
-        fetcher.downloadPath = destinationPath;
+
+        fetcher.destinationFileURL = [NSURL fileURLWithPath:destinationPath isDirectory:YES];
 
         // Fetcher logging can include comments.
-        [fetcher setCommentWithFormat:@"Downloading \"%@\"", file.title];
-        __weak GTMHTTPFetcher *weakFetcher = fetcher;
+        [fetcher setCommentWithFormat:@"Downloading \"%@\"", file.name];
+        __weak GTMSessionFetcher *weakFetcher = fetcher;
         _startDL = [NSDate timeIntervalSinceReferenceDate];
-        fetcher.receivedDataBlock = ^(NSData *receivedData) {
+        fetcher.downloadProgressBlock = ^(int64_t bytesWritten,
+                                          int64_t totalBytesWritten,
+                                          int64_t totalBytesExpectedToWrite) {
             if ((_lastStatsUpdate > 0 && ([NSDate timeIntervalSinceReferenceDate] - _lastStatsUpdate > .5)) || _lastStatsUpdate <= 0) {
-                [self calculateRemainingTime:weakFetcher.downloadedLength expectedDownloadSize:[file.fileSize floatValue]];
+                [self calculateRemainingTime:totalBytesWritten expectedDownloadSize:totalBytesExpectedToWrite];
                 _lastStatsUpdate = [NSDate timeIntervalSinceReferenceDate];
             }
 
-            CGFloat progress = (CGFloat)weakFetcher.downloadedLength / (CGFloat)[file.fileSize unsignedLongValue];
+            CGFloat progress = (CGFloat)weakFetcher.downloadedLength / (CGFloat)[file.size unsignedLongValue];
             if ([self.delegate respondsToSelector:@selector(currentProgressInformation:)])
                 [self.delegate currentProgressInformation:progress];
         };

+ 13 - 10
Sources/VLCGoogleDriveTableViewController.m

@@ -13,11 +13,13 @@
 
 #import "VLCGoogleDriveTableViewController.h"
 #import "VLCAppDelegate.h"
-#import "GTMOAuth2ViewControllerTouch.h"
 #import "VLCGoogleDriveController.h"
 #import "UIDevice+VLC.h"
 #import "VLCCloudStorageTableViewCell.h"
 
+#import "GTMOAuth2ViewControllerTouch.h"
+#import "GTMOAuth2SignIn.h"
+
 @interface VLCGoogleDriveTableViewController () <VLCCloudStorageTableViewCell>
 {
     VLCGoogleDriveController *_googleDriveController;
@@ -66,12 +68,13 @@
 
 - (GTMOAuth2ViewControllerTouch *)createAuthController
 {
-    _authController = [[GTMOAuth2ViewControllerTouch alloc] initWithScope:kGTLAuthScopeDrive
-                                                                clientID:kVLCGoogleDriveClientID
-                                                            clientSecret:kVLCGoogleDriveClientSecret
-                                                        keychainItemName:kKeychainItemName
-                                                                delegate:self
-                                                        finishedSelector:@selector(viewController:finishedWithAuth:error:)];
+    _authController = [GTMOAuth2ViewControllerTouch controllerWithScope:kGTLAuthScopeDrive
+                                                               clientID:kVLCGoogleDriveClientID
+                                                           clientSecret:kVLCGoogleDriveClientSecret
+                                                       keychainItemName:kKeychainItemName
+                                                               delegate:self
+                                                       finishedSelector:@selector(viewController:finishedWithAuth:error:)];
+
     return _authController;
 }
 
@@ -147,17 +150,17 @@
 {
     _selectedFile = _googleDriveController.currentListFiles[[self.tableView indexPathForCell:cell].row];
 
-    if (_selectedFile.fileSize.longLongValue < [[UIDevice currentDevice] freeDiskspace].longLongValue) {
+    if (_selectedFile.size.longLongValue < [[UIDevice currentDevice] freeDiskspace].longLongValue) {
         /* selected item is a proper file, ask the user if s/he wants to download it */
         VLCAlertView *alert = [[VLCAlertView alloc] initWithTitle:NSLocalizedString(@"DROPBOX_DOWNLOAD", nil)
-                                                          message:[NSString stringWithFormat:NSLocalizedString(@"DROPBOX_DL_LONG", nil), _selectedFile.title, [[UIDevice currentDevice] model]]
+                                                          message:[NSString stringWithFormat:NSLocalizedString(@"DROPBOX_DL_LONG", nil), _selectedFile.name, [[UIDevice currentDevice] model]]
                                                          delegate:self
                                                 cancelButtonTitle:NSLocalizedString(@"BUTTON_CANCEL", nil)
                                                 otherButtonTitles:NSLocalizedString(@"BUTTON_DOWNLOAD", nil), nil];
         [alert show];
     } else {
         VLCAlertView *alert = [[VLCAlertView alloc] initWithTitle:NSLocalizedString(@"DISK_FULL", nil)
-                                                          message:[NSString stringWithFormat:NSLocalizedString(@"DISK_FULL_FORMAT", nil), _selectedFile.title, [[UIDevice currentDevice] model]]
+                                                          message:[NSString stringWithFormat:NSLocalizedString(@"DISK_FULL_FORMAT", nil), _selectedFile.name, [[UIDevice currentDevice] model]]
                                                          delegate:self
                                                 cancelButtonTitle:NSLocalizedString(@"BUTTON_OK", nil)
                                                 otherButtonTitles:nil];

+ 63 - 132
VLC for iOS.xcodeproj/project.pbxproj

@@ -24,7 +24,6 @@
 		41B93C081A53853B00102E8B /* VLCCloudServiceCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41B93C071A53853B00102E8B /* VLCCloudServiceCell.xib */; };
 		41CD695C1A29D72600E60BCE /* VLCBoxController.m in Sources */ = {isa = PBXBuildFile; fileRef = 41CD69591A29D72600E60BCE /* VLCBoxController.m */; };
 		41CD695D1A29D72600E60BCE /* VLCBoxTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 41CD695B1A29D72600E60BCE /* VLCBoxTableViewController.m */; };
-		690D0AB5E34F29B46839C92E /* libPods-VLC-TV.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C12FD7AD79D78B13860606CE /* libPods-VLC-TV.a */; };
 		6B4E33D11BF2A39400A35255 /* playerControl.css in Resources */ = {isa = PBXBuildFile; fileRef = 6B4E33CF1BF2A39400A35255 /* playerControl.css */; };
 		6B4E33D21BF2A39400A35255 /* playerControl.js in Resources */ = {isa = PBXBuildFile; fileRef = 6B4E33D01BF2A39400A35255 /* playerControl.js */; };
 		7AC8629D1765DC560011611A /* style.css in Resources */ = {isa = PBXBuildFile; fileRef = 7AC8629B1765DC560011611A /* style.css */; };
@@ -68,7 +67,6 @@
 		7D2AC5CD1B67737C00A8D9DD /* libLiveSDK-static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2AC5CC1B67737C00A8D9DD /* libLiveSDK-static.a */; };
 		7D2AC5D01B67746700A8D9DD /* LiveAuthDialog_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D2AC5CE1B67746700A8D9DD /* LiveAuthDialog_iPad.xib */; };
 		7D2DF7BF1B67757700FB78AB /* libMediaLibraryKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7BE1B67757700FB78AB /* libMediaLibraryKit.a */; };
-		7D2DF7C11B67760100FB78AB /* libGTLTouchStaticLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7C01B67760100FB78AB /* libGTLTouchStaticLib.a */; };
 		7D2DF7C31B67777D00FB78AB /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7C21B67777D00FB78AB /* libc++.tbd */; };
 		7D30F3C2183AB24C00FFC021 /* VLCHTTPConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D30F3BD183AB24C00FFC021 /* VLCHTTPConnection.m */; };
 		7D30F3C3183AB24C00FFC021 /* VLCHTTPFileDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D30F3BF183AB24C00FFC021 /* VLCHTTPFileDownloader.m */; };
@@ -143,7 +141,6 @@
 		7D655D891BF4C14A00C61ED2 /* VLC for watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = DD3567641B6760BF00338947 /* VLC for watchOS.app */; };
 		7D6B08FA174D716200A05173 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D6B08F9174D716200A05173 /* MessageUI.framework */; };
 		7D6B08FC174D773C00A05173 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7D6B08FB174D773C00A05173 /* Settings.bundle */; };
-		7D711ADA18227A490094E4F0 /* GTMOAuth2ViewTouch.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D711AD918227A490094E4F0 /* GTMOAuth2ViewTouch.xib */; };
 		7D74177A1AE2D3CE001F1997 /* VLCNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D7417791AE2D3CE001F1997 /* VLCNavigationController.m */; };
 		7D7EF3DA1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D7EF3D81BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m */; };
 		7D7EF3DB1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D7EF3D91BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib */; };
@@ -221,7 +218,6 @@
 		7DC54FC71C046615007B4E42 /* VLCProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B93C001A53833B00102E8B /* VLCProgressView.m */; };
 		7DC54FC81C046615007B4E42 /* VLCCloudServicesTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 417CDA211A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.m */; };
 		7DC54FC91C046615007B4E42 /* UIImage+Blur.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D168F7318D4A33F003FAF59 /* UIImage+Blur.m */; };
-		7DC54FCA1C046615007B4E42 /* GTLDrive_Sources.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5BEF2717FBAEA50016F9CB /* GTLDrive_Sources.m */; };
 		7DC54FCB1C046615007B4E42 /* VLCFirstStepsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19ADD1868C7BB00810BF7 /* VLCFirstStepsViewController.m */; };
 		7DC54FCC1C046615007B4E42 /* VLCLocalNetworkServiceBrowserMediaDiscoverer.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EFEF91BDEBCE500B68579 /* VLCLocalNetworkServiceBrowserMediaDiscoverer.m */; };
 		7DC54FCD1C046615007B4E42 /* VLCPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE56C191AD93F9100E8CA00 /* VLCPlaybackController.m */; };
@@ -311,7 +307,6 @@
 		7DC550221C046615007B4E42 /* LocalAuthentication.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D8968701BD3058800F4EAAD /* LocalAuthentication.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		7DC550231C046615007B4E42 /* WatchConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD2789E31B67A88600CED769 /* WatchConnectivity.framework */; };
 		7DC550241C046615007B4E42 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7C21B67777D00FB78AB /* libc++.tbd */; };
-		7DC550251C046615007B4E42 /* libGTLTouchStaticLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7C01B67760100FB78AB /* libGTLTouchStaticLib.a */; };
 		7DC550261C046615007B4E42 /* libLiveSDK-static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2AC5CC1B67737C00A8D9DD /* libLiveSDK-static.a */; };
 		7DC550271C046615007B4E42 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4DF2171B55209200739326 /* CoreSpotlight.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		7DC550281C046615007B4E42 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D84E4C81B41ABCE00EA7D1F /* CoreMedia.framework */; };
@@ -338,7 +333,6 @@
 		7DC5503D1C046615007B4E42 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D94FCDE16DE7D1000F2623B /* UIKit.framework */; };
 		7DC5503E1C046615007B4E42 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D94FCE016DE7D1000F2623B /* Foundation.framework */; };
 		7DC5503F1C046615007B4E42 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D94FCE216DE7D1000F2623B /* CoreGraphics.framework */; };
-		7DC550401C046615007B4E42 /* libPods-vlc-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAF8927B0BE9C328466C0EA7 /* libPods-vlc-ios.a */; };
 		7DC550411C046615007B4E42 /* libMediaLibraryKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7BE1B67757700FB78AB /* libMediaLibraryKit.a */; };
 		7DC550431C046615007B4E42 /* main.js in Resources */ = {isa = PBXBuildFile; fileRef = 7D00161A17704DAC00649F27 /* main.js */; };
 		7DC550441C046615007B4E42 /* jquery-1.10.1.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 7AC8629E1765E90C0011611A /* jquery-1.10.1.min.js */; };
@@ -384,7 +378,6 @@
 		7DC5506E1C046615007B4E42 /* VLCFirstStepsSecondPageViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D27EC2919DF310300EF0370 /* VLCFirstStepsSecondPageViewController~ipad.xib */; };
 		7DC5506F1C046615007B4E42 /* VLCPlaylistCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF18B183AB4300009A339 /* VLCPlaylistCollectionViewCell.xib */; };
 		7DC550701C046615007B4E42 /* VLCMovieViewControlPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = DDAD5C2A1BB999CA006AFD3B /* VLCMovieViewControlPanel.xib */; };
-		7DC550711C046615007B4E42 /* GTMOAuth2ViewTouch.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D711AD918227A490094E4F0 /* GTMOAuth2ViewTouch.xib */; };
 		7DC550721C046615007B4E42 /* VLCCloudServicesTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 417CDA221A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.xib */; };
 		7DC550731C046615007B4E42 /* papasscode_failed_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D9870611A3E03D5009CF27D /* papasscode_failed_bg@2x.png */; };
 		7DC550741C046615007B4E42 /* VLCCone512x512.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DDFF4241BDFD23300913BD1 /* VLCCone512x512.png */; };
@@ -443,11 +436,11 @@
 		8F91EC79195CEC7900F5BCBA /* VLCOpenInActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F91EC78195CEC7900F5BCBA /* VLCOpenInActivity.m */; };
 		8F91EC7F195E1DAB00F5BCBA /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F91EC7E195E1DAB00F5BCBA /* AssetsLibrary.framework */; };
 		9B088308183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */; };
-		9B5BEF2917FBAEA50016F9CB /* GTLDrive_Sources.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5BEF2717FBAEA50016F9CB /* GTLDrive_Sources.m */; };
 		9B9231C4185A703700F89498 /* VLCNetworkLoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9B9231C3185A703700F89498 /* VLCNetworkLoginViewController.xib */; };
 		9BADAF45185FBD9D00108BD8 /* VLCFrostedGlasView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BADAF44185FBD9D00108BD8 /* VLCFrostedGlasView.m */; };
 		9BE4D1CE183D76950006346C /* VLCCloudStorageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784B0183A990F009EE944 /* VLCCloudStorageTableViewCell.m */; };
 		A79246C8170F11DF0036AAF2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A79246C6170F11DF0036AAF2 /* Localizable.strings */; };
+		C7E12487F4C2ADB76385245B /* libPods-vlc-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DEAD87A672248D0A6790405 /* libPods-vlc-ios.a */; };
 		CC1BBC461704938300A20CBF /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC451704938300A20CBF /* libiconv.dylib */; };
 		CC1BBC4C1704939B00A20CBF /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4B1704939B00A20CBF /* libsqlite3.dylib */; };
 		CC1BBC4E170493A300A20CBF /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4D170493A300A20CBF /* libbz2.dylib */; };
@@ -459,7 +452,6 @@
 		CCE2A22E17A5859E00D9EAAD /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCE2A22D17A5859E00D9EAAD /* CoreText.framework */; };
 		D6E034ED1CC284FC0037F516 /* VLCStreamingHistoryCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E034EC1CC284FC0037F516 /* VLCStreamingHistoryCell.m */; };
 		D6E034F71CC287760037F516 /* VLCStreamingHistoryCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E034EC1CC284FC0037F516 /* VLCStreamingHistoryCell.m */; };
-		D9C52A9E9D4D5AFA7EF1B45A /* libPods-vlc-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAF8927B0BE9C328466C0EA7 /* libPods-vlc-ios.a */; };
 		DD13A37B1BEE2FAA00A35554 /* VLCMaskView.m in Sources */ = {isa = PBXBuildFile; fileRef = DD13A37A1BEE2FAA00A35554 /* VLCMaskView.m */; };
 		DD1A45FD1B676BAC00086F57 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DDE1BCE41B676B8800A4B9CE /* Localizable.strings */; };
 		DD1B31F41BF637D500A369B6 /* VLCPlaybackInfoTracksTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1B31F21BF637D500A369B6 /* VLCPlaybackInfoTracksTVViewController.m */; };
@@ -577,6 +569,7 @@
 		DDEAECF11BDFE9E800756C83 /* VLCServerListTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEAECEC1BDFE99200756C83 /* VLCServerListTVViewController.m */; };
 		DDEAECFE1BDFFAEE00756C83 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784E6183A99E1009EE944 /* Reachability.m */; };
 		E0C04F951A25B4410080331A /* VLCDocumentPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = E0C04F941A25B4410080331A /* VLCDocumentPickerController.m */; };
+		E81F552E7F32B4E830915E29 /* libPods-VLC-TV.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8939257D0D04F9AFF766DEA5 /* libPods-VLC-TV.a */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -774,10 +767,13 @@
 /* End PBXCopyFilesBuildPhase section */
 
 /* Begin PBXFileReference section */
+		018698905AC809BE4496D84D /* Pods-vlc-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-vlc-ios.debug.xcconfig"; path = "Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios.debug.xcconfig"; sourceTree = "<group>"; };
 		268BDA7D1B4FE1E200D622DD /* backArrow_black.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backArrow_black.png; path = ImportedSources/OneDrive/src/LiveSDK/Library/Internal/Resources/backArrow_black.png; sourceTree = SOURCE_ROOT; };
 		26F1BFCF1A770408001DF30C /* libMediaVLC.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = libMediaVLC.xml; sourceTree = "<group>"; };
 		29125E5417492219003F03E5 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
 		2915544217490D4A00B86CAD /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+		31BBF816A2507AA02CD551A5 /* Pods-vlc-ios.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-vlc-ios.distribution.xcconfig"; path = "Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios.distribution.xcconfig"; sourceTree = "<group>"; };
+		39DA271F3BEEFE045489B542 /* Pods-VLC-TV.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-TV.release.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV.release.xcconfig"; sourceTree = "<group>"; };
 		41273A391A955C4100A2EF77 /* VLCMigrationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMigrationViewController.h; path = Sources/VLCMigrationViewController.h; sourceTree = SOURCE_ROOT; };
 		41273A3A1A955C4100A2EF77 /* VLCMigrationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMigrationViewController.m; path = Sources/VLCMigrationViewController.m; sourceTree = SOURCE_ROOT; };
 		41273A3B1A955C4100A2EF77 /* VLCMigrationViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCMigrationViewController.xib; path = Sources/VLCMigrationViewController.xib; sourceTree = SOURCE_ROOT; };
@@ -800,10 +796,6 @@
 		41CD69591A29D72600E60BCE /* VLCBoxController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCBoxController.m; path = Sources/VLCBoxController.m; sourceTree = SOURCE_ROOT; };
 		41CD695A1A29D72600E60BCE /* VLCBoxTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCBoxTableViewController.h; path = Sources/VLCBoxTableViewController.h; sourceTree = SOURCE_ROOT; };
 		41CD695B1A29D72600E60BCE /* VLCBoxTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCBoxTableViewController.m; path = Sources/VLCBoxTableViewController.m; sourceTree = SOURCE_ROOT; };
-		4C4A6D2751DCA7AD1BE2F573 /* Pods-VLC-TV.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-TV.distribution.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV.distribution.xcconfig"; sourceTree = "<group>"; };
-		521108CBC3CAA0810AF3CBA8 /* Pods-vlc-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-vlc-ios.debug.xcconfig"; path = "Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios.debug.xcconfig"; sourceTree = "<group>"; };
-		6104D285EA8F1AEDA6136FCF /* Pods-VLC-TV.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-TV.release.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV.release.xcconfig"; sourceTree = "<group>"; };
-		6AB5E0853B398B35369938EC /* Pods-vlc-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-vlc-ios.release.xcconfig"; path = "Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios.release.xcconfig"; sourceTree = "<group>"; };
 		6B4E33CF1BF2A39400A35255 /* playerControl.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; name = playerControl.css; path = Resources/web/playerControl.css; sourceTree = SOURCE_ROOT; };
 		6B4E33D01BF2A39400A35255 /* playerControl.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; name = playerControl.js; path = Resources/web/playerControl.js; sourceTree = SOURCE_ROOT; };
 		7AC8629B1765DC560011611A /* style.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = style.css; sourceTree = "<group>"; };
@@ -1170,22 +1162,22 @@
 		7DF90B491BE7A8110059C0E3 /* IASKSpecifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IASKSpecifier.m; path = Pods/InAppSettingsKit/InAppSettingsKit/Models/IASKSpecifier.m; sourceTree = SOURCE_ROOT; };
 		7DF9352D1958AB0600E60FD4 /* UIColor+Presets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+Presets.h"; path = "Sources/UIColor+Presets.h"; sourceTree = SOURCE_ROOT; };
 		7DF9352E1958AB0600E60FD4 /* UIColor+Presets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+Presets.m"; path = "Sources/UIColor+Presets.m"; sourceTree = SOURCE_ROOT; };
+		8939257D0D04F9AFF766DEA5 /* libPods-VLC-TV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VLC-TV.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		8B9DD09C453D2346D109D586 /* Pods-VLC-TV.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-TV.debug.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV.debug.xcconfig"; sourceTree = "<group>"; };
+		8DEAD87A672248D0A6790405 /* libPods-vlc-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-vlc-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; };
 		8F91EC77195CEC7900F5BCBA /* VLCOpenInActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCOpenInActivity.h; path = Sources/VLCOpenInActivity.h; sourceTree = SOURCE_ROOT; };
 		8F91EC78195CEC7900F5BCBA /* VLCOpenInActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCOpenInActivity.m; path = Sources/VLCOpenInActivity.m; sourceTree = SOURCE_ROOT; };
 		8F91EC7E195E1DAB00F5BCBA /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
 		9B088306183D7BEC004B5C2A /* VLCCloudStorageTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCCloudStorageTableViewController.h; path = Sources/VLCCloudStorageTableViewController.h; sourceTree = SOURCE_ROOT; };
 		9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCCloudStorageTableViewController.m; path = Sources/VLCCloudStorageTableViewController.m; sourceTree = SOURCE_ROOT; };
-		9B5BEF2717FBAEA50016F9CB /* GTLDrive_Sources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GTLDrive_Sources.m; path = ImportedSources/GDrive/Services/Drive/Generated/GTLDrive_Sources.m; sourceTree = SOURCE_ROOT; };
-		9B5BEF2817FBAEA50016F9CB /* GTLDrive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTLDrive.h; path = ImportedSources/GDrive/Services/Drive/Generated/GTLDrive.h; sourceTree = SOURCE_ROOT; };
 		9B9231C3185A703700F89498 /* VLCNetworkLoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCNetworkLoginViewController.xib; path = Resources/VLCNetworkLoginViewController.xib; sourceTree = SOURCE_ROOT; };
 		9BADAF43185FBD9D00108BD8 /* VLCFrostedGlasView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFrostedGlasView.h; path = Sources/VLCFrostedGlasView.h; sourceTree = SOURCE_ROOT; };
 		9BADAF44185FBD9D00108BD8 /* VLCFrostedGlasView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFrostedGlasView.m; path = Sources/VLCFrostedGlasView.m; sourceTree = SOURCE_ROOT; };
+		9BC31F457BAC87454DB3F7CC /* Pods-VLC-TV.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-TV.distribution.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV.distribution.xcconfig"; sourceTree = "<group>"; };
 		A7035BBD174519600057DFA7 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = "<group>"; };
 		A7924695170F0BA90036AAF2 /* libMediaLibraryKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMediaLibraryKit.a; path = External/MediaLibraryKit/libMediaLibraryKit.a; sourceTree = "<group>"; };
 		A79246C7170F11DF0036AAF2 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; lineEnding = 0; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
 		A79246C9170F11E40036AAF2 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
-		C12FD7AD79D78B13860606CE /* libPods-VLC-TV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VLC-TV.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-		C9A248E2523A01F4AA281B41 /* Pods-VLC-TV.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-TV.debug.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV.debug.xcconfig"; sourceTree = "<group>"; };
 		CC1BBC451704938300A20CBF /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
 		CC1BBC471704938B00A20CBF /* libstdc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.dylib"; path = "usr/lib/libstdc++.dylib"; sourceTree = SDKROOT; };
 		CC1BBC491704939300A20CBF /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
@@ -1203,9 +1195,9 @@
 		CC87148317A56C85003C7383 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; lineEnding = 0; name = ca; path = ca.lproj/Localizable.strings; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
 		CCAF837E17DE46D800E3578F /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = "<group>"; };
 		CCE2A22D17A5859E00D9EAAD /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
+		D0BB9293AAFE75CF15A6C8BC /* Pods-vlc-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-vlc-ios.release.xcconfig"; path = "Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios.release.xcconfig"; sourceTree = "<group>"; };
 		D6E034EB1CC284FC0037F516 /* VLCStreamingHistoryCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCStreamingHistoryCell.h; path = Sources/VLCStreamingHistoryCell.h; sourceTree = SOURCE_ROOT; };
 		D6E034EC1CC284FC0037F516 /* VLCStreamingHistoryCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCStreamingHistoryCell.m; path = Sources/VLCStreamingHistoryCell.m; sourceTree = SOURCE_ROOT; };
-		DAF8927B0BE9C328466C0EA7 /* libPods-vlc-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-vlc-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; };
 		DD13A3791BEE2FAA00A35554 /* VLCMaskView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMaskView.h; path = "UI Elements/VLCMaskView.h"; sourceTree = "<group>"; };
 		DD13A37A1BEE2FAA00A35554 /* VLCMaskView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMaskView.m; path = "UI Elements/VLCMaskView.m"; sourceTree = "<group>"; };
 		DD1A45FC1B676BAC00086F57 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -1390,7 +1382,6 @@
 		DDEAECEB1BDFE99200756C83 /* VLCServerListTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCServerListTVViewController.h; sourceTree = "<group>"; };
 		DDEAECEC1BDFE99200756C83 /* VLCServerListTVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCServerListTVViewController.m; sourceTree = "<group>"; };
 		DDF157B31ACB169B00AAFBC6 /* WatchKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchKit.framework; path = System/Library/Frameworks/WatchKit.framework; sourceTree = SDKROOT; };
-		E09EACF57CDD22ABAE66CDD0 /* Pods-vlc-ios.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-vlc-ios.distribution.xcconfig"; path = "Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios.distribution.xcconfig"; sourceTree = "<group>"; };
 		E0C04F931A25B4410080331A /* VLCDocumentPickerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCDocumentPickerController.h; path = Sources/VLCDocumentPickerController.h; sourceTree = SOURCE_ROOT; };
 		E0C04F941A25B4410080331A /* VLCDocumentPickerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCDocumentPickerController.m; path = Sources/VLCDocumentPickerController.m; sourceTree = SOURCE_ROOT; };
 /* End PBXFileReference section */
@@ -1410,7 +1401,7 @@
 				7DF28AD71BA31C150030C944 /* AudioToolbox.framework in Frameworks */,
 				7D1FEBD41BA3184A00D1058E /* libTVVLCKit.a in Frameworks */,
 				7D29C7AA1C08C84C00AEC5C4 /* HockeySDK.framework in Frameworks */,
-				690D0AB5E34F29B46839C92E /* libPods-VLC-TV.a in Frameworks */,
+				E81F552E7F32B4E830915E29 /* libPods-VLC-TV.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1422,7 +1413,6 @@
 				7D8968711BD3058800F4EAAD /* LocalAuthentication.framework in Frameworks */,
 				DD2789E41B67A88600CED769 /* WatchConnectivity.framework in Frameworks */,
 				7D2DF7C31B67777D00FB78AB /* libc++.tbd in Frameworks */,
-				7D2DF7C11B67760100FB78AB /* libGTLTouchStaticLib.a in Frameworks */,
 				7D2AC5CD1B67737C00A8D9DD /* libLiveSDK-static.a in Frameworks */,
 				7D4DF2181B55209200739326 /* CoreSpotlight.framework in Frameworks */,
 				7D84E4C91B41ABCE00EA7D1F /* CoreMedia.framework in Frameworks */,
@@ -1449,8 +1439,8 @@
 				7D94FCDF16DE7D1000F2623B /* UIKit.framework in Frameworks */,
 				7D94FCE116DE7D1000F2623B /* Foundation.framework in Frameworks */,
 				7D94FCE316DE7D1000F2623B /* CoreGraphics.framework in Frameworks */,
-				D9C52A9E9D4D5AFA7EF1B45A /* libPods-vlc-ios.a in Frameworks */,
 				7D2DF7BF1B67757700FB78AB /* libMediaLibraryKit.a in Frameworks */,
+				C7E12487F4C2ADB76385245B /* libPods-vlc-ios.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1462,7 +1452,6 @@
 				7DC550221C046615007B4E42 /* LocalAuthentication.framework in Frameworks */,
 				7DC550231C046615007B4E42 /* WatchConnectivity.framework in Frameworks */,
 				7DC550241C046615007B4E42 /* libc++.tbd in Frameworks */,
-				7DC550251C046615007B4E42 /* libGTLTouchStaticLib.a in Frameworks */,
 				7DC550261C046615007B4E42 /* libLiveSDK-static.a in Frameworks */,
 				7DC550271C046615007B4E42 /* CoreSpotlight.framework in Frameworks */,
 				7DC550281C046615007B4E42 /* CoreMedia.framework in Frameworks */,
@@ -1489,7 +1478,6 @@
 				7DC5503D1C046615007B4E42 /* UIKit.framework in Frameworks */,
 				7DC5503E1C046615007B4E42 /* Foundation.framework in Frameworks */,
 				7DC5503F1C046615007B4E42 /* CoreGraphics.framework in Frameworks */,
-				7DC550401C046615007B4E42 /* libPods-vlc-ios.a in Frameworks */,
 				7DC550411C046615007B4E42 /* libMediaLibraryKit.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1501,6 +1489,13 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		CE42178D31A8866534B95F77 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		DD35676D1B6760BF00338947 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -1560,19 +1555,6 @@
 			path = AspenProject;
 			sourceTree = "<group>";
 		};
-		5BC7EE378D444805CA59B5BA /* Pods */ = {
-			isa = PBXGroup;
-			children = (
-				521108CBC3CAA0810AF3CBA8 /* Pods-vlc-ios.debug.xcconfig */,
-				6AB5E0853B398B35369938EC /* Pods-vlc-ios.release.xcconfig */,
-				E09EACF57CDD22ABAE66CDD0 /* Pods-vlc-ios.distribution.xcconfig */,
-				C9A248E2523A01F4AA281B41 /* Pods-VLC-TV.debug.xcconfig */,
-				6104D285EA8F1AEDA6136FCF /* Pods-VLC-TV.release.xcconfig */,
-				4C4A6D2751DCA7AD1BE2F573 /* Pods-VLC-TV.distribution.xcconfig */,
-			);
-			name = Pods;
-			sourceTree = "<group>";
-		};
 		6B4E33CC1BF2A35A00A35255 /* web */ = {
 			isa = PBXGroup;
 			children = (
@@ -1933,7 +1915,7 @@
 				7DDEB2C31C2D57E200028F27 /* VLC for iOS UITests */,
 				7D94FCDD16DE7D1000F2623B /* Frameworks */,
 				7D94FCDC16DE7D1000F2623B /* Products */,
-				5BC7EE378D444805CA59B5BA /* Pods */,
+				A77803FFDA800BD6A3DAED0C /* Pods */,
 			);
 			sourceTree = "<group>";
 			usesTabs = 0;
@@ -2009,8 +1991,8 @@
 				7D94FCDE16DE7D1000F2623B /* UIKit.framework */,
 				7D94FCE016DE7D1000F2623B /* Foundation.framework */,
 				7D94FCE216DE7D1000F2623B /* CoreGraphics.framework */,
-				DAF8927B0BE9C328466C0EA7 /* libPods-vlc-ios.a */,
-				C12FD7AD79D78B13860606CE /* libPods-VLC-TV.a */,
+				8939257D0D04F9AFF766DEA5 /* libPods-VLC-TV.a */,
+				8DEAD87A672248D0A6790405 /* libPods-vlc-ios.a */,
 			);
 			name = Frameworks;
 			sourceTree = "<group>";
@@ -2092,7 +2074,6 @@
 			isa = PBXGroup;
 			children = (
 				4171D35518A2D90200A16EF9 /* LXReorderableCollectionViewFlowLayout */,
-				9B2E0CED17FB5B3F0098E3DF /* GoogleDrive */,
 				A7A0E9EB174BA66000162F25 /* PAPasscode */,
 				7DC72D6517B7ED36008A26D0 /* Reachability */,
 				7DC72D6417B7ED2A008A26D0 /* WhiteRaccoon */,
@@ -2378,15 +2359,6 @@
 			path = AspenProject;
 			sourceTree = "<group>";
 		};
-		9B2E0CED17FB5B3F0098E3DF /* GoogleDrive */ = {
-			isa = PBXGroup;
-			children = (
-				9B5BEF2717FBAEA50016F9CB /* GTLDrive_Sources.m */,
-				9B5BEF2817FBAEA50016F9CB /* GTLDrive.h */,
-			);
-			name = GoogleDrive;
-			sourceTree = "<group>";
-		};
 		9B51719A17EDEC8900F8FBA7 /* GoogleDrive */ = {
 			isa = PBXGroup;
 			children = (
@@ -2400,6 +2372,19 @@
 			path = AspenProject;
 			sourceTree = "<group>";
 		};
+		A77803FFDA800BD6A3DAED0C /* Pods */ = {
+			isa = PBXGroup;
+			children = (
+				8B9DD09C453D2346D109D586 /* Pods-VLC-TV.debug.xcconfig */,
+				39DA271F3BEEFE045489B542 /* Pods-VLC-TV.release.xcconfig */,
+				9BC31F457BAC87454DB3F7CC /* Pods-VLC-TV.distribution.xcconfig */,
+				018698905AC809BE4496D84D /* Pods-vlc-ios.debug.xcconfig */,
+				D0BB9293AAFE75CF15A6C8BC /* Pods-vlc-ios.release.xcconfig */,
+				31BBF816A2507AA02CD551A5 /* Pods-vlc-ios.distribution.xcconfig */,
+			);
+			name = Pods;
+			sourceTree = "<group>";
+		};
 		A7924697170F0ED20036AAF2 /* iOS Resources */ = {
 			isa = PBXGroup;
 			children = (
@@ -2723,13 +2708,13 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 7D1329541BA1F10100BE647E /* Build configuration list for PBXNativeTarget "VLC-TV" */;
 			buildPhases = (
-				A94CB618CE58A4766B4A0B74 /* Check Pods Manifest.lock */,
+				CEAC60B72FF5CB91256BC99B /* [CP] Check Pods Manifest.lock */,
 				7D1329391BA1F10100BE647E /* Sources */,
 				7D13293A1BA1F10100BE647E /* Frameworks */,
 				7D13293B1BA1F10100BE647E /* Resources */,
 				7D5278E11BD7DF1800D0CA0E /* Embed Frameworks */,
-				B59BF52D7592970355AF1DF4 /* Embed Pods Frameworks */,
-				90E479A81E88C3B5BE981A80 /* Copy Pods Resources */,
+				12FBF6B8DF68C968D9AD05E3 /* [CP] Embed Pods Frameworks */,
+				0452CD613294910CB73B58CB /* [CP] Copy Pods Resources */,
 			);
 			buildRules = (
 			);
@@ -2748,14 +2733,14 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 7D94FD0A16DE7D1100F2623B /* Build configuration list for PBXNativeTarget "vlc-ios" */;
 			buildPhases = (
-				1674E6FD23580CE308961687 /* Check Pods Manifest.lock */,
+				23B425DEB65EA5C88D873ED2 /* [CP] Check Pods Manifest.lock */,
 				7D94FCD716DE7D1000F2623B /* Sources */,
 				7D94FCD816DE7D1000F2623B /* Frameworks */,
 				7D94FCD916DE7D1000F2623B /* Resources */,
-				F2C5CAE560C074258A574B08 /* Copy Pods Resources */,
 				DD3567881B6760BF00338947 /* Embed Watch Content */,
-				1C53C7C2A8D7B3028FC77EF3 /* Embed Pods Frameworks */,
 				7D14C3551BF4E498003DDC41 /* Embed App Extensions */,
+				50F88350D33999B9CF48A5E2 /* [CP] Embed Pods Frameworks */,
+				9706D52A0CDF446E336826A6 /* [CP] Copy Pods Resources */,
 			);
 			buildRules = (
 			);
@@ -2773,12 +2758,9 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 7DC550821C046615007B4E42 /* Build configuration list for PBXNativeTarget "vlc-ios-no-watch" */;
 			buildPhases = (
-				7DC54FAC1C046615007B4E42 /* Check Pods Manifest.lock */,
 				7DC54FAD1C046615007B4E42 /* Sources */,
 				7DC550201C046615007B4E42 /* Frameworks */,
 				7DC550421C046615007B4E42 /* Resources */,
-				7DC5507D1C046615007B4E42 /* Copy Pods Resources */,
-				7DC550801C046615007B4E42 /* Embed Pods Frameworks */,
 			);
 			buildRules = (
 			);
@@ -2814,6 +2796,7 @@
 			buildPhases = (
 				DD3567621B6760BF00338947 /* Resources */,
 				DD3567861B6760BF00338947 /* Embed App Extensions */,
+				CE42178D31A8866534B95F77 /* Frameworks */,
 			);
 			buildRules = (
 			);
@@ -3135,7 +3118,6 @@
 				7D27EC2B19DF310300EF0370 /* VLCFirstStepsSecondPageViewController~ipad.xib in Resources */,
 				7DBBF1A0183AB4300009A339 /* VLCPlaylistCollectionViewCell.xib in Resources */,
 				DDAD5C2B1BB999CA006AFD3B /* VLCMovieViewControlPanel.xib in Resources */,
-				7D711ADA18227A490094E4F0 /* GTMOAuth2ViewTouch.xib in Resources */,
 				417CDA241A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.xib in Resources */,
 				7D9870671A3E03D5009CF27D /* papasscode_failed_bg@2x.png in Resources */,
 				7DDFF4251BDFD23300913BD1 /* VLCCone512x512.png in Resources */,
@@ -3198,7 +3180,6 @@
 				7DC5506E1C046615007B4E42 /* VLCFirstStepsSecondPageViewController~ipad.xib in Resources */,
 				7DC5506F1C046615007B4E42 /* VLCPlaylistCollectionViewCell.xib in Resources */,
 				7DC550701C046615007B4E42 /* VLCMovieViewControlPanel.xib in Resources */,
-				7DC550711C046615007B4E42 /* GTMOAuth2ViewTouch.xib in Resources */,
 				7DC550721C046615007B4E42 /* VLCCloudServicesTableViewController.xib in Resources */,
 				7DC550731C046615007B4E42 /* papasscode_failed_bg@2x.png in Resources */,
 				7DC550741C046615007B4E42 /* VLCCone512x512.png in Resources */,
@@ -3241,44 +3222,44 @@
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXShellScriptBuildPhase section */
-		1674E6FD23580CE308961687 /* Check Pods Manifest.lock */ = {
+		0452CD613294910CB73B58CB /* [CP] Copy Pods Resources */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			inputPaths = (
 			);
-			name = "Check Pods Manifest.lock";
+			name = "[CP] Copy Pods Resources";
 			outputPaths = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
+			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV-resources.sh\"\n";
 			showEnvVarsInLog = 0;
 		};
-		1C53C7C2A8D7B3028FC77EF3 /* Embed Pods Frameworks */ = {
+		12FBF6B8DF68C968D9AD05E3 /* [CP] Embed Pods Frameworks */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			inputPaths = (
 			);
-			name = "Embed Pods Frameworks";
+			name = "[CP] Embed Pods Frameworks";
 			outputPaths = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios-frameworks.sh\"\n";
+			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV-frameworks.sh\"\n";
 			showEnvVarsInLog = 0;
 		};
-		7DC54FAC1C046615007B4E42 /* Check Pods Manifest.lock */ = {
+		23B425DEB65EA5C88D873ED2 /* [CP] Check Pods Manifest.lock */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			inputPaths = (
 			);
-			name = "Check Pods Manifest.lock";
+			name = "[CP] Check Pods Manifest.lock";
 			outputPaths = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -3286,29 +3267,14 @@
 			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
 			showEnvVarsInLog = 0;
 		};
-		7DC5507D1C046615007B4E42 /* Copy Pods Resources */ = {
+		50F88350D33999B9CF48A5E2 /* [CP] Embed Pods Frameworks */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			inputPaths = (
 			);
-			name = "Copy Pods Resources";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios-resources.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
-		7DC550801C046615007B4E42 /* Embed Pods Frameworks */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Embed Pods Frameworks";
+			name = "[CP] Embed Pods Frameworks";
 			outputPaths = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -3316,29 +3282,29 @@
 			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios-frameworks.sh\"\n";
 			showEnvVarsInLog = 0;
 		};
-		90E479A81E88C3B5BE981A80 /* Copy Pods Resources */ = {
+		9706D52A0CDF446E336826A6 /* [CP] Copy Pods Resources */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			inputPaths = (
 			);
-			name = "Copy Pods Resources";
+			name = "[CP] Copy Pods Resources";
 			outputPaths = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV-resources.sh\"\n";
+			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios-resources.sh\"\n";
 			showEnvVarsInLog = 0;
 		};
-		A94CB618CE58A4766B4A0B74 /* Check Pods Manifest.lock */ = {
+		CEAC60B72FF5CB91256BC99B /* [CP] Check Pods Manifest.lock */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			inputPaths = (
 			);
-			name = "Check Pods Manifest.lock";
+			name = "[CP] Check Pods Manifest.lock";
 			outputPaths = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -3346,36 +3312,6 @@
 			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
 			showEnvVarsInLog = 0;
 		};
-		B59BF52D7592970355AF1DF4 /* Embed Pods Frameworks */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Embed Pods Frameworks";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VLC-TV/Pods-VLC-TV-frameworks.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
-		F2C5CAE560C074258A574B08 /* Copy Pods Resources */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Copy Pods Resources";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios-resources.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
@@ -3511,7 +3447,6 @@
 				41B93C011A53833B00102E8B /* VLCProgressView.m in Sources */,
 				417CDA231A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.m in Sources */,
 				7D168F7418D4A33F003FAF59 /* UIImage+Blur.m in Sources */,
-				9B5BEF2917FBAEA50016F9CB /* GTLDrive_Sources.m in Sources */,
 				7DC19ADF1868C7BB00810BF7 /* VLCFirstStepsViewController.m in Sources */,
 				DD3EFF331BDEBCE500B68579 /* VLCLocalNetworkServiceBrowserMediaDiscoverer.m in Sources */,
 				7DE56C1A1AD93F9100E8CA00 /* VLCPlaybackController.m in Sources */,
@@ -3635,7 +3570,6 @@
 				7DC54FC71C046615007B4E42 /* VLCProgressView.m in Sources */,
 				7DC54FC81C046615007B4E42 /* VLCCloudServicesTableViewController.m in Sources */,
 				7DC54FC91C046615007B4E42 /* UIImage+Blur.m in Sources */,
-				7DC54FCA1C046615007B4E42 /* GTLDrive_Sources.m in Sources */,
 				7DC54FCB1C046615007B4E42 /* VLCFirstStepsViewController.m in Sources */,
 				7DC54FCC1C046615007B4E42 /* VLCLocalNetworkServiceBrowserMediaDiscoverer.m in Sources */,
 				7DC54FCD1C046615007B4E42 /* VLCPlaybackController.m in Sources */,
@@ -3898,7 +3832,7 @@
 /* Begin XCBuildConfiguration section */
 		7D1329511BA1F10100BE647E /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = C9A248E2523A01F4AA281B41 /* Pods-VLC-TV.debug.xcconfig */;
+			baseConfigurationReference = 8B9DD09C453D2346D109D586 /* Pods-VLC-TV.debug.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -3957,7 +3891,7 @@
 		};
 		7D1329521BA1F10100BE647E /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 6104D285EA8F1AEDA6136FCF /* Pods-VLC-TV.release.xcconfig */;
+			baseConfigurationReference = 39DA271F3BEEFE045489B542 /* Pods-VLC-TV.release.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -4017,7 +3951,7 @@
 		};
 		7D1329531BA1F10100BE647E /* Distribution */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 4C4A6D2751DCA7AD1BE2F573 /* Pods-VLC-TV.distribution.xcconfig */;
+			baseConfigurationReference = 9BC31F457BAC87454DB3F7CC /* Pods-VLC-TV.distribution.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -4137,7 +4071,7 @@
 		};
 		7D94FD0B16DE7D1100F2623B /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 521108CBC3CAA0810AF3CBA8 /* Pods-vlc-ios.debug.xcconfig */;
+			baseConfigurationReference = 018698905AC809BE4496D84D /* Pods-vlc-ios.debug.xcconfig */;
 			buildSettings = {
 				ARCHS = (
 					"$(ARCHS_STANDARD)",
@@ -4190,7 +4124,7 @@
 		};
 		7D94FD0C16DE7D1100F2623B /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 6AB5E0853B398B35369938EC /* Pods-vlc-ios.release.xcconfig */;
+			baseConfigurationReference = D0BB9293AAFE75CF15A6C8BC /* Pods-vlc-ios.release.xcconfig */;
 			buildSettings = {
 				ARCHS = (
 					"$(ARCHS_STANDARD)",
@@ -4244,7 +4178,6 @@
 		};
 		7DC550831C046615007B4E42 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 521108CBC3CAA0810AF3CBA8 /* Pods-vlc-ios.debug.xcconfig */;
 			buildSettings = {
 				ARCHS = (
 					"$(ARCHS_STANDARD)",
@@ -4297,7 +4230,6 @@
 		};
 		7DC550841C046615007B4E42 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 6AB5E0853B398B35369938EC /* Pods-vlc-ios.release.xcconfig */;
 			buildSettings = {
 				ARCHS = (
 					"$(ARCHS_STANDARD)",
@@ -4351,7 +4283,6 @@
 		};
 		7DC550851C046615007B4E42 /* Distribution */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = E09EACF57CDD22ABAE66CDD0 /* Pods-vlc-ios.distribution.xcconfig */;
 			buildSettings = {
 				ARCHS = (
 					"$(ARCHS_STANDARD)",
@@ -4522,7 +4453,7 @@
 		};
 		A7035BC0174519E40057DFA7 /* Distribution */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = E09EACF57CDD22ABAE66CDD0 /* Pods-vlc-ios.distribution.xcconfig */;
+			baseConfigurationReference = 31BBF816A2507AA02CD551A5 /* Pods-vlc-ios.distribution.xcconfig */;
 			buildSettings = {
 				ARCHS = (
 					"$(ARCHS_STANDARD)",

+ 0 - 3
VLC for iOS.xcworkspace/contents.xcworkspacedata

@@ -14,9 +14,6 @@
       location = "group:ImportedSources/Dropbox/DropboxSDK/DropboxSDK.xcodeproj">
    </FileRef>
    <FileRef
-      location = "group:ImportedSources/GDrive/GTL.xcodeproj">
-   </FileRef>
-   <FileRef
       location = "group:ImportedSources/OneDrive/src/LiveSDK.xcodeproj">
    </FileRef>
    <FileRef

+ 0 - 14
compileVLCforiOS.sh

@@ -120,20 +120,6 @@ git pull --rebase
 git reset --hard ${TESTEDVLCKITHASH}
 cd ..
 fi
-if ! [ -e GDrive ]; then
-svn checkout http://google-api-objectivec-client.googlecode.com/svn/trunk/Source GDrive
-cd GDrive
-patch -p0 < ../../patches/gdrive/gdrive-base.diff
-cd ..
-cd GDrive/HTTPFetcher && patch -p0 < ../../../patches/gdrive/gdrive-session-fetcher.diff
-cd ../..
-cd GDrive/OAuth2 && patch -p0 < ../../../patches/gdrive/gdrive-oauth.diff
-cd ../..
-else
-cd GDrive
-svn up
-cd ..
-fi
 if ! [ -e LXReorderableCollectionViewFlowLayout ]; then
 git clone git://github.com/fkuehne/LXReorderableCollectionViewFlowLayout.git
 else