From 71a9573b829be48e71522f8e3ab78ef1c0c1768c Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 6 Sep 2017 17:25:41 -0400 Subject: [PATCH 001/149] Updated bullet points so they each appear on a newline. --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index cd1abeb5..1606681a 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,19 @@ This library is under active development. We're shooting for a v1.0 release soon ## Contents * [Design Considerations](#design-considerations) - * [Old Upload, New Upload 👴👶](#old-upload-new-upload) - * [Constraints](#constraints) - * [Goals](#goals) - * [Anatomy](#anatomy) + * [Old Upload, New Upload 👴👶](#old-upload-new-upload) + * [Constraints](#constraints) + * [Goals](#goals) + * [Anatomy](#anatomy) * [NSURLSession](#nsurlsession) * [AFNetworking](#afnetworking) * [VimeoUpload](#vimeoupload) * [Getting Started](#getting-started) - * [Prerequisites](#prerequisites) - * [Example Projects](#example-projects) - * [CocoaPods](#cocoapods) - * [Submodule](#submodule) - * [Initialization](#initialization) + * [Prerequisites](#prerequisites) + * [Example Projects](#example-projects) + * [CocoaPods](#cocoapods) + * [Submodule](#submodule) + * [Initialization](#initialization) * [Uploading Videos](#uploading-videos) * [Starting an Upload](#starting-an-upload) * [Obtaining a File URL For a PHAsset](#obtaining-a-file-url-for-a-phasset) From 80e3f867ad5a340d384ef2f83f3fb6c085f5b3bd Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 6 Sep 2017 17:39:11 -0400 Subject: [PATCH 002/149] Removed references to ALAsset as iOS 7 support has been removed. --- README.md | 55 ++++++------------------------------------------------- 1 file changed, 6 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 1606681a..5951f977 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,6 @@ This library is under active development. We're shooting for a v1.0 release soon * [Uploading Videos](#uploading-videos) * [Starting an Upload](#starting-an-upload) * [Obtaining a File URL For a PHAsset](#obtaining-a-file-url-for-a-phasset) - * [Obtaining a File URL For an ALAsset](#obtaining-a-file-url-for-an-alasset) * [Obtaining a File URL For an Asset That You Manage](#obtaining-a-file-url-for-an-asset-that-you-manage) * [Start Your Upload](#start-your-upload) * [Inspecting Upload State and Progress](#inspecting-upload-state-and-progress) @@ -47,19 +46,15 @@ A simplified flow that eliminates steps 3 and 4 above is in private beta right n We affectionately refer to this 2-step flow as New Upload. -VimeoUpload is designed to accommodate a variety of [background task workflows](#custom-workflows) including Old Upload and New Upload. The library currently contains support for both. However, New Upoad classes are currently marked as "private" and will not work for the general public until they are released from private beta. +VimeoUpload is designed to accommodate a variety of [background task workflows](#custom-workflows) including Old Upload and New Upload. The library currently contains support for both. However, New Upload classes are currently marked as "private" and will not work for the general public until they are released from private beta. -The VimeoUpload APIs for New and Old Upload are very similar. The Old Upload API is documented below. Old upload will be deprecated as soon as possible and the README will be updated to reflec the New Upload API at that time. +The VimeoUpload APIs for New and Old Upload are very similar. The Old Upload API is documented below. Old upload will be deprecated as soon as possible and the README will be updated to reflect the New Upload API at that time. ### Constraints -* **iOS 7 Support Required** +* **No Direct Access to PHAsset Source Files** - Because the Vimeo iOS app supports iOS7, and because a bunch of other apps out there do too, we must support both the [ALAsset](https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/) and [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) APIs. - -* **No Direct Access to PHAsset or ALAsset Source Files** - - Because of how the Apple APIs are designed, we cannot upload directly from [ALAsset](https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/) and [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) source files. So we must export a copy of the asset using an [AVAssetExportSession](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVAssetExportSession_Class/index.html) before starting the upload process. Asset export must happen when the app is in the foreground. + Because of how the Apple APIs are designed, we cannot upload directly from [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) source files. So we must export a copy of the asset using an [AVAssetExportSession](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVAssetExportSession_Class/index.html) before starting the upload process. Asset export must happen when the app is in the foreground. * **iCloud Photos** @@ -177,9 +172,9 @@ You can obtain an OAuth token by using the authentication methods provided by [V In order to start an upload, you need a file URL pointing to the video file on disk that you would like to upload. -The steps required to obtain the file URL will vary depending on whether you are uploading a [PHAsset](#obtaining-a-file-url-for-a-phasset), an [ALAsset](#obtaining-a-file-url-for-an-alasset), or an [asset that you manage](#obtaining-a-file-url-for-an-asset-that-you-manage) outside of the device Photos environment. Once you have a valid file URL, you will use it to [start your upload](#start-your-upload). +The steps required to obtain the file URL will vary depending on whether you are uploading a [PHAsset](#obtaining-a-file-url-for-a-phasset) or an [asset that you manage](#obtaining-a-file-url-for-an-asset-that-you-manage) outside of the device Photos environment. Once you have a valid file URL, you will use it to [start your upload](#start-your-upload). -Unfortunately, because of how Apple's [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) and [ALAsset](https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/) APIs are designed uploading directly from a [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) or [ALAsset](https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/) resource URL is not possible. In order to upload [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html)s and [ALAsset](https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/)s you will need to first create a copy of the asset itself and upload from that copy. See below for instructions on how to do this. +Unfortunately, because of how Apple's [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) APIs are designed, uploading directly from a [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) resource URL is not possible. In order to upload [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html)s you will need to first create a copy of the asset itself and upload from that copy. See below for instructions on how to do this. #### Obtaining a File URL For a PHAsset @@ -251,44 +246,6 @@ Next, use VimeoUpload's `ExportOperation` to export a copy of the [PHAsset](http operation.start() ``` -#### Obtaining a File URL For an ALAsset - -Use VimeoUpload's `ExportOperation` to export a copy of the [ALAsset](https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/) you intend to upload. You can then use the resulting `url` to [start your upload](#start-your-upload). - -```Swift - let alAsset = ... // The ALAsset you intend to upload - let url = alAsset.defaultRepresentation().url() // For example - let avAsset = AVURLAsset(URL: url) - let operation = ExportOperation(asset: avAsset) - - // Optionally set a progress block - operation.progressBlock = { (progress: Double) -> Void in - // Do something with progress - } - - operation.completionBlock = { - guard operation.cancelled == false else - { - return - } - - if let error = operation.error - { - // Do something with the error - } - else if let url = operation.outputURL - { - // Use the url to start your upload (see below) - } - else - { - assertionFailure("error and outputURL are mutually exclusive, this should never happen.") - } - } - - operation.start() -``` - #### Obtaining a File URL For an Asset That You Manage This is quite a bit simpler: From 54f73342b65ff76b50ed71e2a289fb6dd8a8fb46 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 17:12:14 -0400 Subject: [PATCH 003/149] Moved getting started section to top but added specifics on build target. --- README.md | 104 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 5951f977..a27f7c34 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,13 @@ # VimeoUpload [![](https://circleci.com/gh/vimeo/VimeoUpload.png?style=shield&circle-token=2e7f762969ca311fc851e32d6ef2038f797f7e23)](https://circleci.com/gh/vimeo/VimeoUpload) -This library is under active development. We're shooting for a v1.0 release soon. All comments, questions, pull requests, and issues are welcome. See below for details. +This library is under active development. All comments, questions, pull requests, and issues are welcome. See below for details. ## Contents +* [Getting Started](#getting-started) + * [Prerequisites](#prerequisites) + * [Example Projects](#example-projects) + * [CocoaPods](#cocoapods) + * [Submodule](#submodule) + * [Initialization](#initialization) * [Design Considerations](#design-considerations) * [Old Upload, New Upload 👴👶](#old-upload-new-upload) * [Constraints](#constraints) @@ -10,12 +16,6 @@ This library is under active development. We're shooting for a v1.0 release soon * [NSURLSession](#nsurlsession) * [AFNetworking](#afnetworking) * [VimeoUpload](#vimeoupload) -* [Getting Started](#getting-started) - * [Prerequisites](#prerequisites) - * [Example Projects](#example-projects) - * [CocoaPods](#cocoapods) - * [Submodule](#submodule) - * [Initialization](#initialization) * [Uploading Videos](#uploading-videos) * [Starting an Upload](#starting-an-upload) * [Obtaining a File URL For a PHAsset](#obtaining-a-file-url-for-a-phasset) @@ -29,6 +29,52 @@ This library is under active development. We're shooting for a v1.0 release soon * [Questions](#questions) * [License](#license) + +## Getting Started + +We recommend you read the the entire `ReadMe` to gain a full understanding of this library. However, the following steps are what you need to get up and running ASAP. + +### Prerequisites + +1. Ensure that you've verified your Vimeo account. When you create an account, you'll receive an email asking that you verify your account. **Until you verify your account you will not be able to upload videos using the API**. +2. Ensure you have been granted permission to use the "upload" scope. This permission must explicitly be granted by Vimeo API admins. You can request this permission on your "My Apps" page under "Request upload access". Visit [developer.vimeo.com](https://developer.vimeo.com/). +3. Ensure that the OAuth token that you're using to make your requests has the "upload" scope included. + +### Example Projects + +1. If you would like to get started using an example project, **you must set your build target to be `VimeoUpload-iOS-OldUpload`**. + +2. In order to run this project, **you will have to insert a valid OAuth token into the `init` method of the class called `OldVimeoUploader`** where it says `"YOUR_OAUTH_TOKEN"`. You can obtain an OAuth token by visiting [developer.vimeo.com](https://developer.vimeo.com/apps) and creating a new "app" and associated OAuth token. Without a valid OAuth token, you will be presented with a "Request failed: unauthorized (401)" error alert when you try to upload a video. + + +### Setup your Submodules + +If you are adding this library to your own project, follow the steps outlined in [Getting Started with Submodules as Development Pods](https://paper.dropbox.com/doc/Getting-Started-with-Submodules-as-Development-Pods-yRpNbPxIOjzGlcEbecuOC). + +### Initialization + +Create an instance of `VimeoUpload`, or modify `VimeoUpload` to act as a singleton: + +```Swift + let backgroundSessionIdentifier = "YOUR_BACKGROUND_SESSION_ID" + let authToken = "YOUR_OAUTH_TOKEN" + + let vimeoUpload = VimeoUpload(backgroundSessionIdentifier: backgroundSessionIdentifier, authToken: authToken) +``` + +If your OAuth token can change during the course of a session, use the constructor whose second argument is an `authTokenBlock`: + +```Swift + let backgroundSessionIdentifier = "YOUR_BACKGROUND_SESSION_ID" + var authToken = "YOUR_OAUTH_TOKEN" + + let vimeoUpload = VimeoUpload(backgroundSessionIdentifier: backgroundSessionIdentifier, authTokenBlock: { () -> String? in + return authToken + }) +``` + +You can obtain an OAuth token by using the authentication methods provided by [VIMNetworking](https://github.com/vimeo/VIMNetworking) or by visiting [developer.vimeo.com](https://developer.vimeo.com/apps) and creating a new "app" and associated OAuth token. + ## Design Considerations ### Old Upload, New Upload @@ -122,50 +168,6 @@ TODO TODO -## Getting Started - -### Prerequisites - -1. Ensure that you've verified your Vimeo account. When you create an account, you'll receive an email asking that you verify your account. Until you verify your account you will not be able to upload videos using the API. -2. Ensure you have been granted permission to use the "upload" scope. This permission must explicitly be granted by Vimeo API admins. You can request this permission on your app page under "Request upload access". Visit [developer.vimeo.com](https://developer.vimeo.com/). -3. Ensure that the OAuth token that you're using to make your requests has the "upload" scope included. - -### Example Projects - -There's an example project for New Upload and one for Old Upload. In order to run them you'll have to drop a valid OAuth token into the example project's `VimeoUpload` subclass' `init` method where it says `"YOUR_OAUTH_TOKEN"`. You can obtain an OAuth token by visiting [developer.vimeo.com](https://developer.vimeo.com/apps) and creating a new "app" and associated OAuth token. - -### CocoaPods - -TODO - -### Submodule - -TODO - -### Initialization - -Create an instance of `VimeoUpload`, or modify `VimeoUpload` to act as a singleton: - -```Swift - let backgroundSessionIdentifier = "YOUR_BACKGROUND_SESSION_ID" - let authToken = "YOUR_OAUTH_TOKEN" - - let vimeoUpload = VimeoUpload(backgroundSessionIdentifier: backgroundSessionIdentifier, authToken: authToken) -``` - -If your OAuth token can change during the course of a session, use the constructor whose second argument is an `authTokenBlock`: - -```Swift - let backgroundSessionIdentifier = "YOUR_BACKGROUND_SESSION_ID" - var authToken = "YOUR_OAUTH_TOKEN" - - let vimeoUpload = VimeoUpload(backgroundSessionIdentifier: backgroundSessionIdentifier, authTokenBlock: { () -> String? in - return authToken - }) -``` - -You can obtain an OAuth token by using the authentication methods provided by [VIMNetworking](https://github.com/vimeo/VIMNetworking) or by visiting [developer.vimeo.com](https://developer.vimeo.com/apps) and creating a new "app" and associated OAuth token. - ## Uploading Videos ### Starting an Upload From 6205ce2d6486c1306d923b00b9493f06c4a23873 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 17:15:01 -0400 Subject: [PATCH 004/149] Moved design consideratins down. --- README.md | 185 +++++++++++++++++++++++++++--------------------------- 1 file changed, 93 insertions(+), 92 deletions(-) diff --git a/README.md b/README.md index a27f7c34..fdb6c772 100644 --- a/README.md +++ b/README.md @@ -75,98 +75,6 @@ If your OAuth token can change during the course of a session, use the construct You can obtain an OAuth token by using the authentication methods provided by [VIMNetworking](https://github.com/vimeo/VIMNetworking) or by visiting [developer.vimeo.com](https://developer.vimeo.com/apps) and creating a new "app" and associated OAuth token. -## Design Considerations - -### Old Upload, New Upload - -The current (public) server-side Vimeo upload API is comprised of 4 separate requests that must be made in sequence. This is more complex than we'd like it to be, and this complexity is not ideal for native mobile clients. More requests means more failure points. More requests means a process that's challenging to communicate to the developer and in turn to the user. The 4 requests are: - -1. Create a video object -2. Upload the video file -3. Activate the video object -4. Optionally set the video object's metadata (e.g. title, description, privacy, etc.) - -We affectionately refer to this 4-step flow as Old Upload. - -A simplified flow that eliminates steps 3 and 4 above is in private beta right now. It's being used in the current [Vimeo iOS](https://itunes.apple.com/app/id425194759) and [Vimeo Android](https://play.google.com/store/apps/details?id=com.vimeo.android.videoapp) apps and it's slated to be made available to the public later this year. - -We affectionately refer to this 2-step flow as New Upload. - -VimeoUpload is designed to accommodate a variety of [background task workflows](#custom-workflows) including Old Upload and New Upload. The library currently contains support for both. However, New Upload classes are currently marked as "private" and will not work for the general public until they are released from private beta. - -The VimeoUpload APIs for New and Old Upload are very similar. The Old Upload API is documented below. Old upload will be deprecated as soon as possible and the README will be updated to reflect the New Upload API at that time. - -### Constraints - -* **No Direct Access to PHAsset Source Files** - - Because of how the Apple APIs are designed, we cannot upload directly from [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) source files. So we must export a copy of the asset using an [AVAssetExportSession](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVAssetExportSession_Class/index.html) before starting the upload process. Asset export must happen when the app is in the foreground. - -* **iCloud Photos** - - If a [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) is in iCloud and not resident on device we need to download it to the device before asset export. Download must happen when the app is in the foreground. - -* **Background Sessions** - - Because an upload can take a significant amount of time, we must design for the user potentially backgrounding the application at any point in the process. Therefore all requests must be handled by an [NSURLSession](https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/) configured with a background [NSURLSessionConfiguration](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionConfiguration_class/index.html). This means we must rely exclusively on the [NSURLSessionDelegate](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionDelegate_protocol/index.html), [NSURLSessionTaskDelegate](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionTaskDelegate_protocol/index.html#//apple_ref/occ/intf/NSURLSessionTaskDelegate), and [NSURLSessionDownloadDelegate](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionDownloadDelegate_protocol/index.html#//apple_ref/occ/intf/NSURLSessionDownloadDelegate) protocols. We cannot rely on an [NSURLSessionTask](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionTask_class/index.html) subclasses' completion blocks. - -* **Resumable Uploads** - - The [NSURLSession](https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/) API does not support resuming an interrupted background upload from an offset. The initial release of this library will use these APIs exclusively and therefore will also not support resuming an upload from an offset. - -* **Fault Tolerance** - - The app process could be backgrounded, terminated, or crash at any time. This means that we need to persist the state of the upload system to disk so that it can be reconstructed as needed. Crashes should not adversely impact uploads or the upload system. - -* **Concurrent File Uploads** - - We want to be able to conduct concurrent uploads. - -* **State Introspection** - - We want to be able to communicate upload progress and state to the user in a variety of locations. Including communicating state for uploads initiated on other devices and other platforms. - -* **Reachability Awareness** - - The app could lose connectivity at any time. We want to be able to pause and resume the upload system when we lose connectivity. And we want to be able to allow the user to restrict uploads to wifi. - -* **Upload Quotas** - - We need to be able to communicate information to users about their [upload quota](https://vimeo.com/help/faq/uploading-to-vimeo/uploading-basics). - -* **iOS SDK Quirks** - - NSURLSessionTask's `suspend` method doesn't quite do what we want it to `TODO: Provide details` - - NSURLRequest's and NSURLSessionConfiguration's `allowsCellularAccess` properties don't quite do what we want them to `TODO: provide details` - - AFURLSessionManager's `tasks` property behaves differently on iOS7 vs. iOS8+ `TODO: provide details` - - And more... - -### Goals - -1. A simplified server-side upload API - -1. An upload system that addresses each [constraint](#constraints) listed above - -1. Clear and concise upload system initialization, management, and introspection - -1. An upload system that accommodates as many UX futures as possible - -### Anatomy - -#### NSURLSession - -TODO - -#### AFNetworking - -TODO - -#### VimeoUpload - -TODO ## Uploading Videos @@ -389,6 +297,99 @@ Or by using the `identifier` of the `OldUploadDescriptor` in question: vimeoUpload.cancelUpload(identifier: identifier) ``` +## Design Considerations + +### Old Upload, New Upload + +The current (public) server-side Vimeo upload API is comprised of 4 separate requests that must be made in sequence. This is more complex than we'd like it to be, and this complexity is not ideal for native mobile clients. More requests means more failure points. More requests means a process that's challenging to communicate to the developer and in turn to the user. The 4 requests are: + +1. Create a video object +2. Upload the video file +3. Activate the video object +4. Optionally set the video object's metadata (e.g. title, description, privacy, etc.) + +We affectionately refer to this 4-step flow as Old Upload. + +A simplified flow that eliminates steps 3 and 4 above is in private beta right now. It's being used in the current [Vimeo iOS](https://itunes.apple.com/app/id425194759) and [Vimeo Android](https://play.google.com/store/apps/details?id=com.vimeo.android.videoapp) apps and it's slated to be made available to the public later this year. + +We affectionately refer to this 2-step flow as New Upload. + +VimeoUpload is designed to accommodate a variety of [background task workflows](#custom-workflows) including Old Upload and New Upload. The library currently contains support for both. However, New Upload classes are currently marked as "private" and will not work for the general public until they are released from private beta. + +The VimeoUpload APIs for New and Old Upload are very similar. The Old Upload API is documented below. Old upload will be deprecated as soon as possible and the README will be updated to reflect the New Upload API at that time. + +### Constraints + +* **No Direct Access to PHAsset Source Files** + + Because of how the Apple APIs are designed, we cannot upload directly from [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) source files. So we must export a copy of the asset using an [AVAssetExportSession](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVAssetExportSession_Class/index.html) before starting the upload process. Asset export must happen when the app is in the foreground. + +* **iCloud Photos** + + If a [PHAsset](https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html) is in iCloud and not resident on device we need to download it to the device before asset export. Download must happen when the app is in the foreground. + +* **Background Sessions** + + Because an upload can take a significant amount of time, we must design for the user potentially backgrounding the application at any point in the process. Therefore all requests must be handled by an [NSURLSession](https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/) configured with a background [NSURLSessionConfiguration](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionConfiguration_class/index.html). This means we must rely exclusively on the [NSURLSessionDelegate](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionDelegate_protocol/index.html), [NSURLSessionTaskDelegate](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionTaskDelegate_protocol/index.html#//apple_ref/occ/intf/NSURLSessionTaskDelegate), and [NSURLSessionDownloadDelegate](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionDownloadDelegate_protocol/index.html#//apple_ref/occ/intf/NSURLSessionDownloadDelegate) protocols. We cannot rely on an [NSURLSessionTask](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSURLSessionTask_class/index.html) subclasses' completion blocks. + +* **Resumable Uploads** + + The [NSURLSession](https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/) API does not support resuming an interrupted background upload from an offset. The initial release of this library will use these APIs exclusively and therefore will also not support resuming an upload from an offset. + +* **Fault Tolerance** + + The app process could be backgrounded, terminated, or crash at any time. This means that we need to persist the state of the upload system to disk so that it can be reconstructed as needed. Crashes should not adversely impact uploads or the upload system. + +* **Concurrent File Uploads** + + We want to be able to conduct concurrent uploads. + +* **State Introspection** + + We want to be able to communicate upload progress and state to the user in a variety of locations. Including communicating state for uploads initiated on other devices and other platforms. + +* **Reachability Awareness** + + The app could lose connectivity at any time. We want to be able to pause and resume the upload system when we lose connectivity. And we want to be able to allow the user to restrict uploads to wifi. + +* **Upload Quotas** + + We need to be able to communicate information to users about their [upload quota](https://vimeo.com/help/faq/uploading-to-vimeo/uploading-basics). + +* **iOS SDK Quirks** + + NSURLSessionTask's `suspend` method doesn't quite do what we want it to `TODO: Provide details` + + NSURLRequest's and NSURLSessionConfiguration's `allowsCellularAccess` properties don't quite do what we want them to `TODO: provide details` + + AFURLSessionManager's `tasks` property behaves differently on iOS7 vs. iOS8+ `TODO: provide details` + + And more... + +### Goals + +1. A simplified server-side upload API + +1. An upload system that addresses each [constraint](#constraints) listed above + +1. Clear and concise upload system initialization, management, and introspection + +1. An upload system that accommodates as many UX futures as possible + +### Anatomy + +#### NSURLSession + +TODO + +#### AFNetworking + +TODO + +#### VimeoUpload + +TODO + ## Custom Workflows TODO From 56f583e8a5429792251aaa584ebe371373f9e96e Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 18:08:42 -0400 Subject: [PATCH 005/149] Added section on how to get uploaded video URL. --- README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/README.md b/README.md index fdb6c772..cddbb768 100644 --- a/README.md +++ b/README.md @@ -297,6 +297,38 @@ Or by using the `identifier` of the `OldUploadDescriptor` in question: vimeoUpload.cancelUpload(identifier: identifier) ``` +### Locating your uploaded video on Vimeo + +The video object you receive from Vimeo's API has a link object that specifies the URL of the video: `self.video?.link`. Once the upload process has completed the "Settings" phase, you can access this URL from the descriptor's video property. + +Inside of class `OldUploadDescriptor`, see method + +```swift +override public func taskDidFinishDownloading(sessionManager: AFURLSessionManager, task: URLSessionDownloadTask, url: URL) -> URL? +{ + ... + + do + { + switch self.currentRequest + { + case .Create: + ... + case .Upload: + ... + case .Activate: + ... + case .Settings: + // Once the line below is executed, `video` has a valid link. + self.video = try responseSerializer.process(videoSettingsResponse: task.response, url: url, error: error) + } + } + ... +} +``` + +Note: ellipses indicate code excluded for brevity. + ## Design Considerations ### Old Upload, New Upload From 9251c5489435925d531365bd10c93b7086e5ef37 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 18:10:06 -0400 Subject: [PATCH 006/149] Removed broken link to cocoapods. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cddbb768..c18b97d5 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ This library is under active development. All comments, questions, pull requests * [Getting Started](#getting-started) * [Prerequisites](#prerequisites) * [Example Projects](#example-projects) - * [CocoaPods](#cocoapods) * [Submodule](#submodule) * [Initialization](#initialization) * [Design Considerations](#design-considerations) From 6d80736e9104deb759ecfa3451792b279eb56695 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 19:09:36 -0400 Subject: [PATCH 007/149] Fix link to submodules section. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c18b97d5..e9c87890 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This library is under active development. All comments, questions, pull requests * [Getting Started](#getting-started) * [Prerequisites](#prerequisites) * [Example Projects](#example-projects) - * [Submodule](#submodule) + * [Setup your Submodules](#submodule) * [Initialization](#initialization) * [Design Considerations](#design-considerations) * [Old Upload, New Upload 👴👶](#old-upload-new-upload) From b09755c0ab8f11bd55daa3f99f0828bed77c7c6a Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 19:11:48 -0400 Subject: [PATCH 008/149] Redo - Fix link to submodules section. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e9c87890..30c06f20 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This library is under active development. All comments, questions, pull requests * [Getting Started](#getting-started) * [Prerequisites](#prerequisites) * [Example Projects](#example-projects) - * [Setup your Submodules](#submodule) + * [Setup your Submodules](#setup-your-submodules) * [Initialization](#initialization) * [Design Considerations](#design-considerations) * [Old Upload, New Upload 👴👶](#old-upload-new-upload) From a3d40da8523af023449d6e31b114d2ffc06049c8 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 19:17:00 -0400 Subject: [PATCH 009/149] Updated table of contents. --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 30c06f20..2b0d64e1 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,13 @@ This library is under active development. All comments, questions, pull requests * [Example Projects](#example-projects) * [Setup your Submodules](#setup-your-submodules) * [Initialization](#initialization) +* [Uploading Videos](#uploading-videos) + * [Starting an Upload](#starting-an-upload) + * [Obtaining a File URL For a PHAsset](#obtaining-a-file-url-for-a-phasset) + * [Obtaining a File URL For an Asset That You Manage](#obtaining-a-file-url-for-an-asset-that-you-manage) + * [Start Your Upload](#start-your-upload) + * [Inspecting Upload State and Progress](#inspecting-upload-state-and-progress) + * [Canceling an Upload](#canceling-an-upload) * [Design Considerations](#design-considerations) * [Old Upload, New Upload 👴👶](#old-upload-new-upload) * [Constraints](#constraints) @@ -15,13 +22,6 @@ This library is under active development. All comments, questions, pull requests * [NSURLSession](#nsurlsession) * [AFNetworking](#afnetworking) * [VimeoUpload](#vimeoupload) -* [Uploading Videos](#uploading-videos) - * [Starting an Upload](#starting-an-upload) - * [Obtaining a File URL For a PHAsset](#obtaining-a-file-url-for-a-phasset) - * [Obtaining a File URL For an Asset That You Manage](#obtaining-a-file-url-for-an-asset-that-you-manage) - * [Start Your Upload](#start-your-upload) - * [Inspecting Upload State and Progress](#inspecting-upload-state-and-progress) - * [Canceling an Upload](#canceling-an-upload) * [Custom Workflows 🍪🎉](#custom-workflows) * [Want to Contribute?](#want-to-contribute) * [Found an Issue?](#found-an-issue) From d82502d7e02b1c10025b1b2c6311d821fca5138d Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 19:32:20 -0400 Subject: [PATCH 010/149] Updated table of contents and simplified exaplanation of link. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2b0d64e1..64313d46 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ This library is under active development. All comments, questions, pull requests * [Start Your Upload](#start-your-upload) * [Inspecting Upload State and Progress](#inspecting-upload-state-and-progress) * [Canceling an Upload](#canceling-an-upload) + * [Locating your uploaded video on Vimeo](locating-your-uploaded-video-on-vimeo) * [Design Considerations](#design-considerations) * [Old Upload, New Upload 👴👶](#old-upload-new-upload) * [Constraints](#constraints) @@ -74,7 +75,6 @@ If your OAuth token can change during the course of a session, use the construct You can obtain an OAuth token by using the authentication methods provided by [VIMNetworking](https://github.com/vimeo/VIMNetworking) or by visiting [developer.vimeo.com](https://developer.vimeo.com/apps) and creating a new "app" and associated OAuth token. - ## Uploading Videos ### Starting an Upload @@ -298,9 +298,9 @@ Or by using the `identifier` of the `OldUploadDescriptor` in question: ### Locating your uploaded video on Vimeo -The video object you receive from Vimeo's API has a link object that specifies the URL of the video: `self.video?.link`. Once the upload process has completed the "Settings" phase, you can access this URL from the descriptor's video property. +Once the upload process has completed the "Settings" step, you can access the video object on the descriptor to get the video's URL: `descriptor.video?.link`. -Inside of class `OldUploadDescriptor`, see method +For example, inside of class `OldUploadDescriptor`, see the following method implementation: ```swift override public func taskDidFinishDownloading(sessionManager: AFURLSessionManager, task: URLSessionDownloadTask, url: URL) -> URL? From c698ac788089d7df7e9e7b4feb67de92c46e4cb6 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 19:33:49 -0400 Subject: [PATCH 011/149] Removed extra tab. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 64313d46..c696947f 100644 --- a/README.md +++ b/README.md @@ -306,7 +306,6 @@ For example, inside of class `OldUploadDescriptor`, see the following method imp override public func taskDidFinishDownloading(sessionManager: AFURLSessionManager, task: URLSessionDownloadTask, url: URL) -> URL? { ... - do { switch self.currentRequest From 46925f85b0f0ff7144425fdb5a2be3a79548b038 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 20:13:47 -0400 Subject: [PATCH 012/149] Update section on old versus new upload, and moved it to top. --- README.md | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index c696947f..1d8bec77 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,8 @@ This library is under active development. All comments, questions, pull requests ## Contents * [Getting Started](#getting-started) * [Prerequisites](#prerequisites) - * [Example Projects](#example-projects) + * [Which example project should I use? +](#which-example-project-should-i-use) * [Setup your Submodules](#setup-your-submodules) * [Initialization](#initialization) * [Uploading Videos](#uploading-videos) @@ -16,7 +17,6 @@ This library is under active development. All comments, questions, pull requests * [Canceling an Upload](#canceling-an-upload) * [Locating your uploaded video on Vimeo](locating-your-uploaded-video-on-vimeo) * [Design Considerations](#design-considerations) - * [Old Upload, New Upload 👴👶](#old-upload-new-upload) * [Constraints](#constraints) * [Goals](#goals) * [Anatomy](#anatomy) @@ -40,9 +40,20 @@ We recommend you read the the entire `ReadMe` to gain a full understanding of th 2. Ensure you have been granted permission to use the "upload" scope. This permission must explicitly be granted by Vimeo API admins. You can request this permission on your "My Apps" page under "Request upload access". Visit [developer.vimeo.com](https://developer.vimeo.com/). 3. Ensure that the OAuth token that you're using to make your requests has the "upload" scope included. -### Example Projects +### Which example project should I use? -1. If you would like to get started using an example project, **you must set your build target to be `VimeoUpload-iOS-OldUpload`**. +The publicly available server-side Vimeo upload API is comprised of 4 separate requests that must be made in sequence. The 4 requests are: + +1. Create a video object +2. Upload the video file +3. Activate the video object +4. Optionally set the video object's metadata (e.g. title, description, privacy, etc.) + +A simplified server-side flow that eliminates steps 3 and 4 is being used in the current [Vimeo iOS](https://itunes.apple.com/app/id425194759) and [Vimeo Android](https://play.google.com/store/apps/details?id=com.vimeo.android.videoapp) mobile apps. While it's currently for internal use only, we're actively working on making it available to the public before the end of 2017. + +While VimeoUpload contains support for both of these flows, the public only has access to the 4-step upload process. That means the following: + +1. If you would like to get started using an example project, **you must set your build target to be `VimeoUpload-iOS-OldUpload`**. This is the example that uses the publicly accessible 4-step flow. 2. In order to run this project, **you will have to insert a valid OAuth token into the `init` method of the class called `OldVimeoUploader`** where it says `"YOUR_OAUTH_TOKEN"`. You can obtain an OAuth token by visiting [developer.vimeo.com](https://developer.vimeo.com/apps) and creating a new "app" and associated OAuth token. Without a valid OAuth token, you will be presented with a "Request failed: unauthorized (401)" error alert when you try to upload a video. @@ -329,24 +340,7 @@ Note: ellipses indicate code excluded for brevity. ## Design Considerations -### Old Upload, New Upload - -The current (public) server-side Vimeo upload API is comprised of 4 separate requests that must be made in sequence. This is more complex than we'd like it to be, and this complexity is not ideal for native mobile clients. More requests means more failure points. More requests means a process that's challenging to communicate to the developer and in turn to the user. The 4 requests are: - -1. Create a video object -2. Upload the video file -3. Activate the video object -4. Optionally set the video object's metadata (e.g. title, description, privacy, etc.) - -We affectionately refer to this 4-step flow as Old Upload. - -A simplified flow that eliminates steps 3 and 4 above is in private beta right now. It's being used in the current [Vimeo iOS](https://itunes.apple.com/app/id425194759) and [Vimeo Android](https://play.google.com/store/apps/details?id=com.vimeo.android.videoapp) apps and it's slated to be made available to the public later this year. - -We affectionately refer to this 2-step flow as New Upload. - -VimeoUpload is designed to accommodate a variety of [background task workflows](#custom-workflows) including Old Upload and New Upload. The library currently contains support for both. However, New Upload classes are currently marked as "private" and will not work for the general public until they are released from private beta. - -The VimeoUpload APIs for New and Old Upload are very similar. The Old Upload API is documented below. Old upload will be deprecated as soon as possible and the README will be updated to reflect the New Upload API at that time. +The following sections provide more insight into the motivation behind VimeoUpload's design, given some identified constraints and goals. ### Constraints From 8525e37fd3e33c32b684cf048f73ddd1baa249ca Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 20:17:57 -0400 Subject: [PATCH 013/149] Removed rogue tab. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 1d8bec77..ec6810ba 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,7 @@ This library is under active development. All comments, questions, pull requests ## Contents * [Getting Started](#getting-started) * [Prerequisites](#prerequisites) - * [Which example project should I use? -](#which-example-project-should-i-use) + * [Which example project should I use?](#which-example-project-should-i-use) * [Setup your Submodules](#setup-your-submodules) * [Initialization](#initialization) * [Uploading Videos](#uploading-videos) From 546fa1bc2f5c7c1ff4e2aff4cc391e75e9f7edb7 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Sep 2017 20:20:52 -0400 Subject: [PATCH 014/149] Removed recommendation. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index ec6810ba..b05c7fb7 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,6 @@ This library is under active development. All comments, questions, pull requests ## Getting Started -We recommend you read the the entire `ReadMe` to gain a full understanding of this library. However, the following steps are what you need to get up and running ASAP. - ### Prerequisites 1. Ensure that you've verified your Vimeo account. When you create an account, you'll receive an email asking that you verify your account. **Until you verify your account you will not be able to upload videos using the API**. From 3888a8031489d25891179ef8f3cff44f9cf30850 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Mon, 25 Sep 2017 14:50:55 -0400 Subject: [PATCH 015/149] Responded to PR feedback. --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b05c7fb7..ff432239 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ This library is under active development. All comments, questions, pull requests * [Custom Workflows 🍪🎉](#custom-workflows) * [Want to Contribute?](#want-to-contribute) * [Found an Issue?](#found-an-issue) +* [Troubleshooting](#troubleshooting) * [Questions](#questions) * [License](#license) @@ -417,7 +418,11 @@ TODO ## Found an Issue? -Please file it in the git [issue tracker](https://github.com/vimeo/VimeoUpload/issues). +If you find any bugs or technical issues with this library, please [create an issue](https://github.com/vimeo/VimeoUpload/issues) and provide relevant code snippets, specific details about the issue, and steps to replicate behavior. + +## Troubleshooting + +If you have any questions about using this library, please [contact us directly](https://help.vimeo.com), post in the [Vimeo API Forum](https://vimeo.com/forums/api), or check out [StackOverflow](https://stackoverflow.com/tags/vimeo). ## Want to Contribute? From 4163bc40159050770aff5df532e1f372708df624 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Mon, 25 Sep 2017 15:18:00 -0400 Subject: [PATCH 016/149] Added more clarification to obtaining video link. --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ff432239..19762471 100644 --- a/README.md +++ b/README.md @@ -307,9 +307,9 @@ Or by using the `identifier` of the `OldUploadDescriptor` in question: ### Locating your uploaded video on Vimeo -Once the upload process has completed the "Settings" step, you can access the video object on the descriptor to get the video's URL: `descriptor.video?.link`. +One can access a video's URL by inspecting the link property on the video that's associated with the upload descriptor: `descriptor.video.link`. -For example, inside of class `OldUploadDescriptor`, see the following method implementation: +For example, one could use the results of either the `Activation` or `Settings` stage to access the video object. See the following method implementation inside of `OldUploadDescriptor`: ```swift override public func taskDidFinishDownloading(sessionManager: AFURLSessionManager, task: URLSessionDownloadTask, url: URL) -> URL? @@ -324,9 +324,10 @@ override public func taskDidFinishDownloading(sessionManager: AFURLSessionManage case .Upload: ... case .Activate: - ... + // Use the `self.videoURI` to request a video object and inspect its `link`. + self.videoUri = try responseSerializer.process(activateVideoResponse: task.response, url: url, error: error) case .Settings: - // Once the line below is executed, `video` has a valid link. + // Or, wait for the Settings step to complete and access `self.video.link`. self.video = try responseSerializer.process(videoSettingsResponse: task.response, url: url, error: error) } } From fccd4d60b66b33af0cf88076fa54e1a9fc94203c Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Mon, 25 Sep 2017 15:27:35 -0400 Subject: [PATCH 017/149] Added missing pound for link. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 19762471..f8ec14df 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This library is under active development. All comments, questions, pull requests * [Start Your Upload](#start-your-upload) * [Inspecting Upload State and Progress](#inspecting-upload-state-and-progress) * [Canceling an Upload](#canceling-an-upload) - * [Locating your uploaded video on Vimeo](locating-your-uploaded-video-on-vimeo) + * [Locating your uploaded video on Vimeo](#locating-your-uploaded-video-on-vimeo) * [Design Considerations](#design-considerations) * [Constraints](#constraints) * [Goals](#goals) From f3767ec8658ee64841f0cab3099399d322e82032 Mon Sep 17 00:00:00 2001 From: Mike Westendorf Date: Fri, 6 Oct 2017 15:03:58 -0400 Subject: [PATCH 018/149] Switch to using Xcode 9 --- circle.yml | 2 +- fastlane/Fastfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index 9ef2eb15..d2aec82c 100644 --- a/circle.yml +++ b/circle.yml @@ -1,6 +1,6 @@ machine: xcode: - version: 8.3.2 + version: 9.0 dependencies: override: diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 524944d8..db36d208 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -17,7 +17,7 @@ default_platform :ios platform :ios do before_all do - ensure_xcode_version(version: "8.3.2") + ensure_xcode_version(version: "9.0") end desc "buid the example project" From ccd2b28df39021b1716002dd0a90438ad060ab0a Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 12:57:34 -0500 Subject: [PATCH 019/149] removing quota check logic --- .../BaseCameraRollViewController.swift | 186 +---------- .../BaseCameraRollViewController.xib | 27 +- .../CameraRollViewController.swift | 6 +- .../VideoSettingsViewController.swift | 24 +- .../CameraRollViewController.swift | 6 +- .../VideoSettingsViewController.swift | 26 +- .../VimeoUpload.xcodeproj/project.pbxproj | 24 +- .../Upload/Extensions/NSError+Upload.swift | 19 +- .../VimeoRequestSerializer+OldUpload.swift | 16 +- .../VimeoResponseSerializer+OldUpload.swift | 21 -- .../VimeoSessionManager+OldUpload.swift | 31 -- .../Async/ExportQuotaOperation.swift | 59 +--- .../Upload/Operations/Async/MeOperation.swift | 111 ------- .../Operations/Async/MeQuotaOperation.swift | 298 ------------------ .../PHAssetCloudExportQuotaOperation.swift | 4 +- .../Async/PHAssetDownloadOperation.swift | 168 ---------- .../Private/ExportQuotaCreateOperation.swift | 20 +- ...AssetCloudExportQuotaCreateOperation.swift | 8 +- .../Private/PHAssetRetryUploadOperation.swift | 4 +- .../Private/RetryUploadOperation.swift | 42 +-- .../Operations/Sync/DailyQuotaOperation.swift | 58 ---- .../Sync/WeeklyQuotaOperation.swift | 63 ---- 22 files changed, 95 insertions(+), 1126 deletions(-) delete mode 100644 VimeoUpload/Upload/Operations/Async/MeOperation.swift delete mode 100644 VimeoUpload/Upload/Operations/Async/MeQuotaOperation.swift delete mode 100644 VimeoUpload/Upload/Operations/Async/PHAssetDownloadOperation.swift delete mode 100644 VimeoUpload/Upload/Operations/Sync/DailyQuotaOperation.swift delete mode 100644 VimeoUpload/Upload/Operations/Sync/WeeklyQuotaOperation.swift diff --git a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift index c6d9045d..773f0875 100644 --- a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift +++ b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift @@ -31,8 +31,6 @@ import VimeoNetworking import AFNetworking import VimeoUpload -typealias UploadUserAndCameraRollAsset = (user: VIMUser, cameraRollAsset: VIMPHAsset) - /* This viewController displays the device camera roll video contents. @@ -53,101 +51,32 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource // MARK: @IBOutlet weak var collectionView: UICollectionView! - @IBOutlet weak var activityIndicatorView: UIActivityIndicatorView! - + // MARK: private var assets: [VIMPHAsset] = [] private var cameraRollAssetHelper: PHAssetHelper? - private var operation: MeQuotaOperation? - private var me: VIMUser? // We store this in a property instead of on the operation itself, so that we can refresh it independent of the operation [AH] - private var meOperation: MeOperation? - private var selectedIndexPath: IndexPath? // MARK: Lifecycle - deinit - { - self.removeObservers() - self.meOperation?.cancel() - self.operation?.cancel() - } - override func viewDidLoad() { super.viewDidLoad() self.cameraRollAssetHelper = PHAssetHelper() self.assets = self.loadAssets() - - self.addObservers() + self.setupNavigationBar() self.setupCollectionView() - self.setupAndStartOperation() } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) - if let indexPath = self.selectedIndexPath // Deselect the previously selected item upon return from video settings - { - self.collectionView.deselectItem(at: indexPath, animated: true) - } - } - - // MARK: Observers - - private func addObservers() - { - NotificationCenter.default.addObserver(self, selector: #selector(UIApplicationDelegate.applicationWillEnterForeground(_:)), name: Notification.Name.UIApplicationWillEnterForeground, object: nil) - } - - private func removeObservers() - { - NotificationCenter.default.removeObserver(self, name: Notification.Name.UIApplicationWillEnterForeground, object: nil) + self.collectionView.indexPathsForSelectedItems?.forEach({ self.collectionView.deselectItem(at: $0, animated: true) }) } - // Ensure that we refresh the me object on return from background - // In the event that a user modified their upload quota while the app was backgrounded [AH] 12/06/2015 - - func applicationWillEnterForeground(_ notification: Notification) - { - if self.meOperation != nil - { - return - } - - let operation = MeOperation(sessionManager: self.sessionManager) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - strongSelf.meOperation = nil - - if operation.isCancelled == true - { - return - } - - if operation.error != nil - { - return - } - - strongSelf.me = operation.result! - }) - } - - self.meOperation = operation - operation.start() - } - // MARK: Setup private func loadAssets() -> [VIMPHAsset] @@ -181,48 +110,6 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource layout?.minimumLineSpacing = BaseCameraRollViewController.CollectionViewSpacing } - private func setupAndStartOperation() - { - let operation = MeQuotaOperation(sessionManager: self.sessionManager, me: self.me) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if operation.isCancelled == true - { - return - } - - strongSelf.activityIndicatorView.stopAnimating() - - if let error = operation.error - { - if let indexPath = strongSelf.selectedIndexPath - { - strongSelf.presentErrorAlert(at: indexPath, error: error) - } - // else: do nothing, the error will be communicated at the time of cell selection - } - else - { - let indexPath = strongSelf.selectedIndexPath! - let cameraRollAsset = strongSelf.assets[indexPath.item] - strongSelf.me = operation.me! - - strongSelf.finish(cameraRollAsset: cameraRollAsset) - } - }) - } - - self.operation = operation - self.operation?.start() - } - // MARK: UICollectionViewDataSource func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int @@ -262,48 +149,26 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - self.didSelect(indexPath: indexPath) - } - - // MARK: Private API - - private func didSelect(indexPath: IndexPath) - { - let cameraRollAsset = self.assets[indexPath.item] + let asset = self.assets[indexPath.item] // Check if an error occurred when attempting to retrieve the asset - if let error = cameraRollAsset.error + + if let error = asset.error { self.presentAssetErrorAlert(at: indexPath, error: error) return } - self.selectedIndexPath = indexPath - - if let error = self.operation?.error + if AFNetworkReachabilityManager.shared().isReachable == false { + let error = NSError(domain: NSURLErrorDomain, code: NSURLErrorNotConnectedToInternet, userInfo: [NSLocalizedDescriptionKey: "The internet connection appears to be offline."]) self.presentErrorAlert(at: indexPath, error: error) - } - else - { - if AFNetworkReachabilityManager.shared().isReachable == false - { - let error = NSError(domain: NSURLErrorDomain, code: NSURLErrorNotConnectedToInternet, userInfo: [NSLocalizedDescriptionKey: "The internet connection appears to be offline."]) - self.presentErrorAlert(at: indexPath, error: error) - - return - } - - // Only show the activity indicator UI if the network request is in progress - if self.operation?.me == nil - { - self.activityIndicatorView.startAnimating() - } - // The avAsset may or may not be nil, which is fine. Becuase at the very least this operation needs to fetch "me" - self.operation?.fulfillSelection(avAsset: cameraRollAsset.avAsset) + return } + + self.didSelect(asset) } // MARK: UI Presentation @@ -321,16 +186,9 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource private func presentErrorAlert(at indexPath: IndexPath, error: NSError) { let alert = UIAlertController(title: "Error", message: error.localizedDescription, preferredStyle: UIAlertControllerStyle.alert) - alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default, handler: { [weak self] (action) -> Void in - - guard let strongSelf = self else - { - return - } + alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default, handler: {(action) -> Void in - strongSelf.selectedIndexPath = nil - strongSelf.collectionView.deselectItem(at: indexPath, animated: true) - strongSelf.setupAndStartOperation() + self.collectionView.indexPathsForSelectedItems?.forEach({ self.collectionView.deselectItem(at: $0, animated: true) }) })) alert.addAction(UIAlertAction(title: "Try Again", style: UIAlertActionStyle.default, handler: { [weak self] (action) -> Void in @@ -339,24 +197,12 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource { return } - - strongSelf.setupAndStartOperation() - strongSelf.didSelect(indexPath: indexPath) + + strongSelf.collectionView(strongSelf.collectionView, didSelectItemAt: indexPath) })) self.present(alert, animated: true, completion: nil) } - - private func finish(cameraRollAsset: VIMPHAsset) - { - let me = self.me! - - // Reset the operation so we're prepared to retry upon cancellation from video settings [AH] 12/06/2015 - self.setupAndStartOperation() - - let result = UploadUserAndCameraRollAsset(user: me, cameraRollAsset: cameraRollAsset) - self.didFinish(with: result) - } // MARK: Overrides @@ -365,7 +211,7 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource self.title = "Camera Roll" } - func didFinish(with result: UploadUserAndCameraRollAsset) + func didSelect(_ asset: VIMPHAsset) { assertionFailure("Subclasses must override") } diff --git a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.xib b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.xib index b2925e98..77890cec 100644 --- a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.xib +++ b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.xib @@ -1,25 +1,28 @@ - - + + + + + - + + - - + - - + + @@ -31,20 +34,12 @@ - - + - - - - diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift index 5479ad0b..c74ac073 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift @@ -26,6 +26,7 @@ import Foundation import UIKit +import VimeoUpload class CameraRollViewController: BaseCameraRollViewController { @@ -40,10 +41,9 @@ class CameraRollViewController: BaseCameraRollViewController self.title = "Camera Roll" } - override func didFinish(with result: UploadUserAndCameraRollAsset) + override func didSelect(_ asset: VIMPHAsset) { - let viewController = VideoSettingsViewController(nibName: VideoSettingsViewController.NibName, bundle:Bundle.main) - viewController.input = result + let viewController = VideoSettingsViewController(asset: asset) let navigationController = UINavigationController(rootViewController: viewController) navigationController.view.backgroundColor = UIColor.white diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift index 9803e6a7..38c72f78 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift @@ -40,7 +40,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate // MARK: - var input: UploadUserAndCameraRollAsset? + private var asset: VIMPHAsset // MARK: @@ -62,15 +62,24 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate } } - // MARK: // MARK: Lifecycle + init(asset: VIMPHAsset) + { + self.asset = asset + + super.init(nibName: nil, bundle: nil) + } + + required init?(coder aDecoder: NSCoder) + { + fatalError("init(coder:) has not been implemented") + } + override func viewDidLoad() { super.viewDidLoad() - assert(self.input != nil, "self.input cannot be nil") - self.edgesForExtendedLayout = [] self.setupNavigationBar() @@ -90,9 +99,8 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func setupAndStartOperation() { - let me = self.input!.user - let phAsset = (self.input!.cameraRollAsset ).phAsset - let operation = PHAssetCloudExportQuotaOperation(me: me, phAsset: phAsset) + let phAsset = self.asset.phAsset + let operation = PHAssetCloudExportQuotaOperation(phAsset: phAsset) operation.downloadProgressBlock = { (progress: Double) -> Void in print(String(format: "Download progress: %.2f", progress)) // TODO: Dispatch to main thread @@ -145,7 +153,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func startUpload() { let url = self.url! - let phAsset = (self.input!.cameraRollAsset ).phAsset + let phAsset = self.asset.phAsset let assetIdentifier = phAsset.localIdentifier let descriptor = OldUploadDescriptor(url: url, videoSettings: self.videoSettings) diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift index 08f2809d..f70c1956 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift @@ -26,6 +26,7 @@ import Foundation import UIKit +import VimeoUpload class CameraRollViewController: BaseCameraRollViewController { @@ -45,10 +46,9 @@ class CameraRollViewController: BaseCameraRollViewController self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(CameraRollViewController.didTapCancel(_:))) } - override func didFinish(with result: UploadUserAndCameraRollAsset) + override func didSelect(_ asset: VIMPHAsset) { - let viewController = VideoSettingsViewController(nibName: VideoSettingsViewController.NibName, bundle:Bundle.main) - viewController.input = result + let viewController = VideoSettingsViewController(asset: asset) self.navigationController?.pushViewController(viewController, animated: true) } diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift index e68e530d..297b4f35 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift @@ -64,7 +64,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate // MARK: - var input: UploadUserAndCameraRollAsset? + private var asset: VIMPHAsset // MARK: @@ -89,6 +89,18 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate // MARK: Lifecycle + init(asset: VIMPHAsset) + { + self.asset = asset + + super.init(nibName: nil, bundle: nil) + } + + required init?(coder aDecoder: NSCoder) + { + fatalError("init(coder:) has not been implemented") + } + deinit { // Do not cancel operation, it will delete the source file @@ -98,9 +110,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate override func viewDidLoad() { super.viewDidLoad() - - assert(self.input != nil, "self.input cannot be nil") - + self.edgesForExtendedLayout = [] self.setupNavigationBar() @@ -120,13 +130,11 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func setupAndStartOperation() { - let me = self.input!.user - let cameraRollAsset = self.input!.cameraRollAsset let sessionManager = NewVimeoUploader.sharedInstance.foregroundSessionManager let videoSettings = self.videoSettings - let phAsset = cameraRollAsset.phAsset - let operation = PHAssetCloudExportQuotaCreateOperation(me: me, phAsset: phAsset, sessionManager: sessionManager, videoSettings: videoSettings) + let phAsset = self.asset.phAsset + let operation = PHAssetCloudExportQuotaCreateOperation(phAsset: phAsset, sessionManager: sessionManager, videoSettings: videoSettings) operation.downloadProgressBlock = { (progress: Double) -> Void in print(String(format: "Download progress: %.2f", progress)) // TODO: Dispatch to main thread @@ -190,7 +198,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate { let url = self.url! let uploadTicket = self.uploadTicket! - let assetIdentifier = self.input!.cameraRollAsset.identifier + let assetIdentifier = self.asset.identifier let descriptor = UploadDescriptor(url: url, uploadTicket: uploadTicket) descriptor.identifier = assetIdentifier diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 6c938c46..3f78ba4f 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -15,7 +15,6 @@ 3EA2DAD11DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DACF1DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift */; }; 3EA2DAD21DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD01DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift */; }; 3EA2DAD61DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD31DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift */; }; - 3EA2DAD71DFF3E0F006E2C65 /* PHAssetDownloadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD41DFF3E0F006E2C65 /* PHAssetDownloadOperation.swift */; }; 3EA2DAD81DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; @@ -62,15 +61,11 @@ AF40D57A1CCE9DEB00753ABA /* DeleteVideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */; }; AF40D57B1CCE9DEB00753ABA /* ExportOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */; }; AF40D57C1CCE9DEB00753ABA /* ExportQuotaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */; }; - AF40D5811CCE9DEB00753ABA /* MeOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D53F1CCE9DEB00753ABA /* MeOperation.swift */; }; - AF40D5821CCE9DEB00753ABA /* MeQuotaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5401CCE9DEB00753ABA /* MeQuotaOperation.swift */; }; AF40D5831CCE9DEB00753ABA /* VideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */; }; AF40D5841CCE9DEB00753ABA /* CreateVideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */; }; AF40D5851CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */; }; AF40D58A1CCE9DEB00753ABA /* RetryUploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */; }; - AF40D58B1CCE9DEB00753ABA /* DailyQuotaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D54D1CCE9DEB00753ABA /* DailyQuotaOperation.swift */; }; AF40D58C1CCE9DEB00753ABA /* DiskSpaceOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D54E1CCE9DEB00753ABA /* DiskSpaceOperation.swift */; }; - AF40D58D1CCE9DEB00753ABA /* WeeklyQuotaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D54F1CCE9DEB00753ABA /* WeeklyQuotaOperation.swift */; }; AF40D58E1CCE9DEB00753ABA /* VimeoUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5501CCE9DEB00753ABA /* VimeoUploader.swift */; }; /* End PBXBuildFile section */ @@ -94,7 +89,6 @@ 3EA2DACF1DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetCloudExportQuotaCreateOperation.swift; sourceTree = ""; }; 3EA2DAD01DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetRetryUploadOperation.swift; sourceTree = ""; }; 3EA2DAD31DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetCloudExportQuotaOperation.swift; sourceTree = ""; }; - 3EA2DAD41DFF3E0F006E2C65 /* PHAssetDownloadOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetDownloadOperation.swift; sourceTree = ""; }; 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetExportSessionOperation.swift; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; @@ -144,15 +138,11 @@ AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteVideoOperation.swift; sourceTree = ""; }; AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportOperation.swift; sourceTree = ""; }; AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportQuotaOperation.swift; sourceTree = ""; }; - AF40D53F1CCE9DEB00753ABA /* MeOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MeOperation.swift; sourceTree = ""; }; - AF40D5401CCE9DEB00753ABA /* MeQuotaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MeQuotaOperation.swift; sourceTree = ""; }; AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VideoOperation.swift; sourceTree = ""; }; AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateVideoOperation.swift; sourceTree = ""; }; AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportQuotaCreateOperation.swift; sourceTree = ""; }; AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RetryUploadOperation.swift; sourceTree = ""; }; - AF40D54D1CCE9DEB00753ABA /* DailyQuotaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DailyQuotaOperation.swift; sourceTree = ""; }; AF40D54E1CCE9DEB00753ABA /* DiskSpaceOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DiskSpaceOperation.swift; sourceTree = ""; }; - AF40D54F1CCE9DEB00753ABA /* WeeklyQuotaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WeeklyQuotaOperation.swift; sourceTree = ""; }; AF40D5501CCE9DEB00753ABA /* VimeoUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VimeoUploader.swift; path = ../../../VimeoUpload/VimeoUploader.swift; sourceTree = ""; }; C96050FE2A2D327759AE653C /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VimeoUpload.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -430,16 +420,13 @@ AF40D5341CCE9DEB00753ABA /* Async */ = { isa = PBXGroup; children = ( + AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */, 3EA2DAD31DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift */, - 3EA2DAD41DFF3E0F006E2C65 /* PHAssetDownloadOperation.swift */, 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */, - AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */, - AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */, AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */, AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */, - AF40D53F1CCE9DEB00753ABA /* MeOperation.swift */, - AF40D5401CCE9DEB00753ABA /* MeQuotaOperation.swift */, AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */, + AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */, ); path = Async; sourceTree = ""; @@ -459,9 +446,7 @@ AF40D54C1CCE9DEB00753ABA /* Sync */ = { isa = PBXGroup; children = ( - AF40D54D1CCE9DEB00753ABA /* DailyQuotaOperation.swift */, AF40D54E1CCE9DEB00753ABA /* DiskSpaceOperation.swift */, - AF40D54F1CCE9DEB00753ABA /* WeeklyQuotaOperation.swift */, ); path = Sync; sourceTree = ""; @@ -612,14 +597,12 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AF40D5821CCE9DEB00753ABA /* MeQuotaOperation.swift in Sources */, AF40D5631CCE9DEB00753ABA /* VIMPHAsset.swift in Sources */, AF40D5691CCE9DEB00753ABA /* OldUploadDescriptor.swift in Sources */, 3C53EC271D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift in Sources */, 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */, AF40D5641CCE9DEB00753ABA /* PHAssetHelper.swift in Sources */, AF40D5741CCE9DEB00753ABA /* VimeoRequestSerializer+Upload.swift in Sources */, - AF40D5811CCE9DEB00753ABA /* MeOperation.swift in Sources */, AF40D5841CCE9DEB00753ABA /* CreateVideoOperation.swift in Sources */, AF40D5831CCE9DEB00753ABA /* VideoOperation.swift in Sources */, AF40D56B1CCE9DEB00753ABA /* VideoDescriptor.swift in Sources */, @@ -653,7 +636,6 @@ AF40D5591CCE9DEB00753ABA /* ReachableDescriptorManager.swift in Sources */, AF40D58C1CCE9DEB00753ABA /* DiskSpaceOperation.swift in Sources */, 3EA2DAD21DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift in Sources */, - AF40D58B1CCE9DEB00753ABA /* DailyQuotaOperation.swift in Sources */, AF40D5711CCE9DEB00753ABA /* NSURL+Upload.swift in Sources */, AF40D5531CCE9DEB00753ABA /* Descriptor.swift in Sources */, AF40D5771CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift in Sources */, @@ -663,14 +645,12 @@ AF40D5581CCE9DEB00753ABA /* ProgressDescriptor.swift in Sources */, AF40D55A1CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift in Sources */, 3EA2DAD81DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift in Sources */, - AF40D58D1CCE9DEB00753ABA /* WeeklyQuotaOperation.swift in Sources */, AF40D5791CCE9DEB00753ABA /* ConcurrentOperation.swift in Sources */, AF40D5781CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift in Sources */, AF40D5721CCE9DEB00753ABA /* BlockTypes.swift in Sources */, 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */, AF40D56A1CCE9DEB00753ABA /* OldUploadRequest.swift in Sources */, AF40D57B1CCE9DEB00753ABA /* ExportOperation.swift in Sources */, - 3EA2DAD71DFF3E0F006E2C65 /* PHAssetDownloadOperation.swift in Sources */, AF40D55B1CCE9DEB00753ABA /* NSError+Extensions.swift in Sources */, 3EA2DAD11DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift in Sources */, ); diff --git a/VimeoUpload/Upload/Extensions/NSError+Upload.swift b/VimeoUpload/Upload/Extensions/NSError+Upload.swift index e396557b..0809d577 100644 --- a/VimeoUpload/Upload/Extensions/NSError+Upload.swift +++ b/VimeoUpload/Upload/Extensions/NSError+Upload.swift @@ -29,12 +29,9 @@ import Foundation public enum UploadErrorDomain: String { case PHAssetExportSession = "PHAssetExportSessionErrorDomain" - case DailyQuota = "DailyQuotaErrorDomain" - case WeeklyQuota = "WeeklyQuotaErrorDomain" case DiskSpace = "DiskSpaceErrorDomain" case Export = "ExportVideoErrorDomain" - case Me = "MeErrorDomain" case MyVideos = "MyVideosErrorDomain" case Create = "CreateVideoErrorDomain" case Upload = "VideoUploadErrorDomain" @@ -44,17 +41,12 @@ public enum UploadErrorDomain: String case Video = "VideoErrorDomain" case DiskSpaceOperation = "DiskSpaceOperationErrorDomain" - case WeeklyQuotaOperation = "WeeklyQuotaOperationErrorDomain" - case DailyQuotaOperation = "DailyQuotaOperationErrorDomain" case RetryUploadOperation = "RetryUploadOperationErrorDomain" case ExportQuotaCreateOperation = "ExportQuotaCreateOperationErrorDomain" case CreateVideoOperation = "CreateVideoOperationErrorDomain" case VideoOperation = "VideoOperationErrorDomain" - case MeQuotaOperation = "MeQuotaOperationErrorDomain" - case MeOperation = "MeOperationErrorDomain" case PHAssetCloudExportQuotaOperation = "PHAssetCloudExportQuotaOperationErrorDomain" case PHAssetExportSessionOperation = "PHAssetExportSessionOperationErrorDomain" - case PHAssetDownloadOperation = "PHAssetDownloadOperationErrorDomain" case ExportOperation = "ExportOperationErrorDomain" case DeleteVideoOperation = "DeleteVideoOperationErrorDomain" @@ -67,14 +59,9 @@ public enum UploadErrorDomain: String public enum UploadLocalErrorCode: Int { - case cannotEvaluateDailyQuota = 0 // "User object did not contain uploadQuota.quota information" - case cannotCalculateDiskSpace = 1 // "File system information did not contain NSFileSystemFreeSize key:value pair" - case cannotEvaluateWeeklyQuota = 2 // "User object did not contain uploadQuota.space information" - - case diskSpaceException = 3 - case assetIsNotExportable = 4 - case dailyQuotaException = 5 - case weeklyQuotaException = 6 + case cannotCalculateDiskSpace // "File system information did not contain NSFileSystemFreeSize key:value pair" + case diskSpaceException + case assetIsNotExportable } public enum UploadErrorKey: String diff --git a/VimeoUpload/Upload/Networking/Old Upload/VimeoRequestSerializer+OldUpload.swift b/VimeoUpload/Upload/Networking/Old Upload/VimeoRequestSerializer+OldUpload.swift index 6d4b8112..b1435e70 100644 --- a/VimeoUpload/Upload/Networking/Old Upload/VimeoRequestSerializer+OldUpload.swift +++ b/VimeoUpload/Upload/Networking/Old Upload/VimeoRequestSerializer+OldUpload.swift @@ -29,21 +29,7 @@ import AVFoundation import VimeoNetworking extension VimeoRequestSerializer -{ - func meRequest() throws -> NSMutableURLRequest - { - let url = URL(string: "/me", relativeTo: VimeoBaseURL)! - var error: NSError? - - let request = self.request(withMethod: "GET", urlString: url.absoluteString, parameters: nil, error: &error) - if let error = error - { - throw error.error(byAddingDomain: UploadErrorDomain.Me.rawValue) - } - - return request - } - +{ func myVideosRequest() throws -> NSMutableURLRequest { let url = URL(string: "/me/videos", relativeTo: VimeoBaseURL)! diff --git a/VimeoUpload/Upload/Networking/Old Upload/VimeoResponseSerializer+OldUpload.swift b/VimeoUpload/Upload/Networking/Old Upload/VimeoResponseSerializer+OldUpload.swift index e82ca62d..d6a87e8e 100644 --- a/VimeoUpload/Upload/Networking/Old Upload/VimeoResponseSerializer+OldUpload.swift +++ b/VimeoUpload/Upload/Networking/Old Upload/VimeoResponseSerializer+OldUpload.swift @@ -31,27 +31,6 @@ extension VimeoResponseSerializer { private static let LocationKey = "Location" - func process(meResponse response: URLResponse?, responseObject: AnyObject?, error: NSError?) throws -> VIMUser - { - do - { - try checkDataResponseForError(response: response, responseObject: responseObject, error: error) - } - catch let error as NSError - { - throw error.error(byAddingDomain: UploadErrorDomain.Me.rawValue) - } - - do - { - return try self.user(from: responseObject) - } - catch let error as NSError - { - throw error.error(byAddingDomain: UploadErrorDomain.Me.rawValue) - } - } - func process(myVideosResponse response: URLResponse?, responseObject: AnyObject?, error: NSError?) throws -> [VIMVideo] { do diff --git a/VimeoUpload/Upload/Networking/Old Upload/VimeoSessionManager+OldUpload.swift b/VimeoUpload/Upload/Networking/Old Upload/VimeoSessionManager+OldUpload.swift index 4e6e6b00..b0a46ebf 100644 --- a/VimeoUpload/Upload/Networking/Old Upload/VimeoSessionManager+OldUpload.swift +++ b/VimeoUpload/Upload/Networking/Old Upload/VimeoSessionManager+OldUpload.swift @@ -29,7 +29,6 @@ import VimeoNetworking enum UploadTaskDescription: String { - case Me = "Me" case MyVideos = "MyVideos" case CreateVideo = "CreateVideo" case UploadVideo = "UploadVideo" @@ -44,36 +43,6 @@ enum UploadTaskDescription: String extension VimeoSessionManager { - public func meDataTask(completionHandler: @escaping UserCompletionHandler) throws -> URLSessionDataTask - { - let request = try (self.requestSerializer as! VimeoRequestSerializer).meRequest() - - let task = self.dataTask(with: request as URLRequest, completionHandler: { [weak self] (response, responseObject, error) -> Void in - - // Do model parsing on a background thread - DispatchQueue.global(qos: .default).async(execute: { [weak self] () -> Void in - guard let strongSelf = self else - { - return - } - - do - { - let user = try (strongSelf.responseSerializer as! VimeoResponseSerializer).process(meResponse: response, responseObject: responseObject as AnyObject?, error: error as NSError?) - completionHandler(user, nil) - } - catch let error as NSError - { - completionHandler(nil, error) - } - }) - }) - - task.taskDescription = UploadTaskDescription.Me.rawValue - - return task - } - public func myVideosDataTask(completionHandler: @escaping VideosCompletionHandler) throws -> URLSessionDataTask { let request = try (self.requestSerializer as! VimeoRequestSerializer).myVideosRequest() diff --git a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift index 1554ce25..223ad3b4 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift @@ -32,7 +32,6 @@ public typealias ExportProgressBlock = (AVAssetExportSession, Double) -> Void open class ExportQuotaOperation: ConcurrentOperation { - let me: VIMUser let operationQueue: OperationQueue open var downloadProgressBlock: ProgressBlock? @@ -50,11 +49,12 @@ open class ExportQuotaOperation: ConcurrentOperation } open var result: URL? - init(me: VIMUser) + override init() { - self.me = me self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 + + super.init() } deinit @@ -126,63 +126,12 @@ open class ExportQuotaOperation: ConcurrentOperation else { let url = exportOperation.outputURL! - strongSelf.checkExactWeeklyQuota(url: url) - } - }) - } - - self.operationQueue.addOperation(exportOperation) - } - - // MARK: Private API - - private func checkExactWeeklyQuota(url: URL) - { - let me = self.me - let avUrlAsset = AVURLAsset(url: url) - - let fileSize: Double - do - { - fileSize = try avUrlAsset.fileSize() - } - catch let error as NSError - { - self.error = error - - return - } - - let operation = WeeklyQuotaOperation(user: me, fileSize: fileSize) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if operation.isCancelled == true - { - return - } - - // Do not check error, allow to pass [AH] - - if let result = operation.result, result.success == false - { - let userInfo = [UploadErrorKey.FileSize.rawValue: result.fileSize, UploadErrorKey.AvailableSpace.rawValue: result.availableSpace] - strongSelf.error = NSError.error(withDomain: UploadErrorDomain.PHAssetCloudExportQuotaOperation.rawValue, code: UploadLocalErrorCode.weeklyQuotaException.rawValue, description: "Upload would exceed weekly quota.").error(byAddingUserInfo: userInfo as [String : AnyObject]) - } - else - { strongSelf.result = url strongSelf.state = .finished } }) } - self.operationQueue.addOperation(operation) + self.operationQueue.addOperation(exportOperation) } } diff --git a/VimeoUpload/Upload/Operations/Async/MeOperation.swift b/VimeoUpload/Upload/Operations/Async/MeOperation.swift deleted file mode 100644 index 7ddb7100..00000000 --- a/VimeoUpload/Upload/Operations/Async/MeOperation.swift +++ /dev/null @@ -1,111 +0,0 @@ -// -// MeOperation.swift -// VimeoUpload -// -// Created by Alfred Hanssen on 11/9/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -import VimeoNetworking - -public class MeOperation: ConcurrentOperation -{ - private let sessionManager: VimeoSessionManager - - private var task: URLSessionDataTask? - - public var result: VIMUser? - public var error: NSError? - - // MARK: - Initialization - - public init(sessionManager: VimeoSessionManager) - { - self.sessionManager = sessionManager - - super.init() - } - - deinit - { - self.task?.cancel() - self.task = nil - } - - // MARK: Overrides - - override public func main() - { - if self.isCancelled - { - return - } - - do - { - self.task = try self.sessionManager.meDataTask(completionHandler: { [weak self] (user, error) -> Void in - - guard let strongSelf = self else - { - return - } - - strongSelf.task = nil - - if strongSelf.isCancelled - { - return - } - - if let error = error - { - strongSelf.error = error.error(byAddingDomain: UploadErrorDomain.MeOperation.rawValue) - } - else if let user = user - { - strongSelf.result = user - } - else - { - fatalError("Execution should never reach this point") - } - - strongSelf.state = .finished - }) - - self.task?.resume() - } - catch let error as NSError - { - self.error = error.error(byAddingDomain: UploadErrorDomain.MeOperation.rawValue) - self.state = .finished - } - } - - override public func cancel() - { - super.cancel() - - self.task?.cancel() - self.task = nil - } -} diff --git a/VimeoUpload/Upload/Operations/Async/MeQuotaOperation.swift b/VimeoUpload/Upload/Operations/Async/MeQuotaOperation.swift deleted file mode 100644 index f9207b31..00000000 --- a/VimeoUpload/Upload/Operations/Async/MeQuotaOperation.swift +++ /dev/null @@ -1,298 +0,0 @@ -// -// MeQuotaOperation.swift -// VimeoUpload -// -// Created by Alfred Hanssen on 11/9/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -import AVFoundation -import VimeoNetworking - -// This flow encapsulates the following steps: -// 1. Request me -// 2. Fulfill asset selection -// 3. Check daily quota -// 4. If non iCloud asset, check approximate weekly quota -// 5. If non iCloud asset, check approximate disk space - -public class MeQuotaOperation: ConcurrentOperation -{ - let sessionManager: VimeoSessionManager - - public var me: VIMUser? - private let operationQueue: OperationQueue - - private var avAsset: AVAsset? - private var selectionFulfilled: Bool = false - - public var error: NSError? - { - didSet - { - if self.error != nil - { - self.state = .finished - } - } - } - - public init(sessionManager: VimeoSessionManager, me: VIMUser? = nil) - { - self.sessionManager = sessionManager - self.me = me - - self.operationQueue = OperationQueue() - self.operationQueue.maxConcurrentOperationCount = 1 - } - - deinit - { - self.operationQueue.cancelAllOperations() - } - - // MARK: Overrides - - override public func main() - { - if self.isCancelled - { - return - } - - if let _ = self.me - { - self.proceedIfMeAndSelectionFulfilled() - } - else - { - self.requestMe() - } - } - - override public func cancel() - { - super.cancel() - - self.operationQueue.cancelAllOperations() - } - - // MARK: Public API - - // If selection is fulfilled with a nil AVAsset, - // Then we're dealing with an iCloud asset - // This is ok, but download of iCloud asset is not handled by this workflow - - public func fulfillSelection(avAsset: AVAsset?) - { - if self.selectionFulfilled == true - { - assertionFailure("Attempt to fulfill selection that has already been fulfilled") - - return - } - - if self.isCancelled - { - return - } - - if let _ = self.error - { - return - } - - self.avAsset = avAsset - self.selectionFulfilled = true - - self.proceedIfMeAndSelectionFulfilled() - } - - // MARK: Private API - - private func requestMe() - { - let operation = MeOperation(sessionManager: self.sessionManager) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if operation.isCancelled == true - { - return - } - - if let error = operation.error - { - strongSelf.error = error - } - else - { - strongSelf.me = operation.result! - strongSelf.proceedIfMeAndSelectionFulfilled() - } - }) - } - - self.operationQueue.addOperation(operation) - } - - private func proceedIfMeAndSelectionFulfilled() - { - if let _ = self.error - { - return - } - - guard let _ = self.me, self.selectionFulfilled == true else - { - return - } - - self.checkDailyQuota() - } - - private func checkDailyQuota() - { - let me = self.me! - - let operation = DailyQuotaOperation(user: me) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if operation.isCancelled == true - { - return - } - - // Do not check error, allow to pass [AH] - - if let result = operation.result, result == false - { - strongSelf.error = NSError.error(withDomain: UploadErrorDomain.MeQuotaOperation.rawValue, code: UploadLocalErrorCode.dailyQuotaException.rawValue, description: "Upload would exceed daily quota.") - } - else - { - if strongSelf.avAsset != nil - { - strongSelf.checkApproximateWeeklyQuota() // If the asset is not nil, then we can perform the the MB-based checks - } - else - { - strongSelf.state = .finished // If the asset is nil, then it's in iCloud and we don't yet have access to the filesize - } - } - }) - } - - self.operationQueue.addOperation(operation) - } - - private func checkApproximateWeeklyQuota() - { - let me = self.me! - let avAsset = self.avAsset! - avAsset.approximateFileSize { [weak self] (value) -> Void in - - guard let strongSelf = self else - { - return - } - - let operation = WeeklyQuotaOperation(user: me, fileSize: value) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if operation.isCancelled == true - { - return - } - - // Do not check error, allow to pass [AH] - - if let result = operation.result, result.success == false - { - let userInfo = [UploadErrorKey.FileSize.rawValue: result.fileSize, UploadErrorKey.AvailableSpace.rawValue: result.availableSpace] - strongSelf.error = NSError.error(withDomain: UploadErrorDomain.MeQuotaOperation.rawValue, code: UploadLocalErrorCode.weeklyQuotaException.rawValue, description: "Upload would exceed approximate weekly quota.").error(byAddingUserInfo: userInfo as [String : AnyObject]) - } - else - { - strongSelf.checkApproximateDiskSpace(fileSize: value) - } - }) - } - - strongSelf.operationQueue.addOperation(operation) - } - } - - private func checkApproximateDiskSpace(fileSize: Float64) - { - let operation = DiskSpaceOperation(fileSize: fileSize) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if operation.isCancelled == true - { - return - } - - // Do not check error, allow to pass [AH] - - if let result = operation.result, result.success == false - { - let userInfo = [UploadErrorKey.FileSize.rawValue: result.fileSize, UploadErrorKey.AvailableSpace.rawValue: result.availableSpace] - strongSelf.error = NSError.error(withDomain: UploadErrorDomain.MeQuotaOperation.rawValue, code: UploadLocalErrorCode.diskSpaceException.rawValue, description: "Not enough approximate disk space to export asset.").error(byAddingUserInfo: userInfo as [String : AnyObject]) - } - else - { - strongSelf.state = .finished - } - }) - } - - self.operationQueue.addOperation(operation) - } -} diff --git a/VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift b/VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift index 9ca99754..89cb40af 100644 --- a/VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift @@ -36,11 +36,11 @@ public class PHAssetCloudExportQuotaOperation: ExportQuotaOperation { let phAsset: PHAsset - public init(me: VIMUser, phAsset: PHAsset) + public init(phAsset: PHAsset) { self.phAsset = phAsset - super.init(me: me) + super.init() } // MARK: Subclass Overrides diff --git a/VimeoUpload/Upload/Operations/Async/PHAssetDownloadOperation.swift b/VimeoUpload/Upload/Operations/Async/PHAssetDownloadOperation.swift deleted file mode 100644 index cd135488..00000000 --- a/VimeoUpload/Upload/Operations/Async/PHAssetDownloadOperation.swift +++ /dev/null @@ -1,168 +0,0 @@ -// -// PHAssetDownloadOperation.swift -// VimeoUpload -// -// Created by Hanssen, Alfie on 10/13/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -import Photos - -public class PHAssetDownloadOperation: ConcurrentOperation -{ - private let phAsset: PHAsset - private var requestID: PHImageRequestID? - - public var progressBlock: ProgressBlock? - - public var result: AVAsset? - public var error: NSError? - - // MARK: - Initialization - - deinit - { - self.cleanup() - } - - public required init(phAsset: PHAsset) - { - self.phAsset = phAsset - - super.init() - } - - // MARK: Overrides - - override public func main() - { - if self.isCancelled - { - return - } - - let options = PHVideoRequestOptions() - options.isNetworkAccessAllowed = true - options.deliveryMode = .highQualityFormat - options.progressHandler = { [weak self] (progress: Double, error: Error?, stop: UnsafeMutablePointer, info: [AnyHashable: Any]?) -> Void in - - guard let strongSelf = self else - { - return - } - - strongSelf.requestID = nil - - if strongSelf.isCancelled - { - return - } - - if let info = info, let cancelled = info[PHImageCancelledKey] as? Bool, cancelled == true - { - return - } - - if strongSelf.state == .finished // Just in case - { - return - } - - if let error = error - { - strongSelf.progressBlock = nil - strongSelf.error = (error as NSError).error(byAddingDomain: UploadErrorDomain.PHAssetDownloadOperation.rawValue) - strongSelf.state = .finished - } - else if let info = info, let error = info[PHImageErrorKey] as? NSError - { - strongSelf.progressBlock = nil - strongSelf.error = error - strongSelf.state = .finished - } - else - { - strongSelf.progressBlock?(progress) - } - } - - self.requestID = PHImageManager.default().requestAVAsset(forVideo: self.phAsset, options: options) { [weak self] (asset, audioMix, info) -> Void in - - guard let strongSelf = self else - { - return - } - - strongSelf.requestID = nil - - if strongSelf.isCancelled - { - return - } - - if let info = info, let cancelled = info[PHImageCancelledKey] as? Bool, cancelled == true - { - return - } - - if strongSelf.state == .finished // In case the state is changed to .Finished in the progressHandler above - { - return - } - - if let info = info, let error = info[PHImageErrorKey] as? NSError - { - strongSelf.error = error.error(byAddingDomain: UploadErrorDomain.PHAssetDownloadOperation.rawValue) - } - else if let asset = asset - { - strongSelf.result = asset - } - else - { - strongSelf.error = NSError.error(withDomain: UploadErrorDomain.PHAssetDownloadOperation.rawValue, code: nil, description: "Request for AVAsset returned no error and no asset.") - } - - strongSelf.state = .finished - } - } - - override public func cancel() - { - super.cancel() - - self.cleanup() - } - - // MARK: Private API - - private func cleanup() - { - self.progressBlock = nil - - if let requestID = self.requestID - { - PHImageManager.default().cancelImageRequest(requestID) - self.requestID = nil - } - } -} diff --git a/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift b/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift index 732aecd7..4aca2f0b 100644 --- a/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift +++ b/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift @@ -30,7 +30,6 @@ import VimeoNetworking open class ExportQuotaCreateOperation: ConcurrentOperation { - let me: VIMUser let sessionManager: VimeoSessionManager open var videoSettings: VideoSettings? let operationQueue: OperationQueue @@ -57,14 +56,15 @@ open class ExportQuotaCreateOperation: ConcurrentOperation // MARK: - Initialization - public init(me: VIMUser, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) + public init(sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) { - self.me = me self.sessionManager = sessionManager self.videoSettings = videoSettings self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 + + super.init() } deinit @@ -81,7 +81,7 @@ open class ExportQuotaCreateOperation: ConcurrentOperation return } - let operation = self.makeExportQuotaOperation(with: self.me)! + let operation = self.makeExportQuotaOperation()! self.perform(exportQuotaOperation: operation) } @@ -99,7 +99,7 @@ open class ExportQuotaCreateOperation: ConcurrentOperation // MARK: Public API - func makeExportQuotaOperation(with me: VIMUser) -> ExportQuotaOperation? + func makeExportQuotaOperation() -> ExportQuotaOperation? { assertionFailure("Subclasses must override") @@ -168,15 +168,7 @@ open class ExportQuotaCreateOperation: ConcurrentOperation if let error = operation.error { - if let fileSize = try? AVURLAsset(url: url).fileSize(), let availableSpace = strongSelf.me.uploadQuota?.sizeQuota?.free?.doubleValue - { - let userInfo = [UploadErrorKey.FileSize.rawValue: fileSize, UploadErrorKey.AvailableSpace.rawValue: availableSpace] - strongSelf.error = error.error(byAddingUserInfo: userInfo) - } - else - { - strongSelf.error = error - } + strongSelf.error = error } else { diff --git a/VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift b/VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift index bcd1c565..900ab96b 100644 --- a/VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift +++ b/VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift @@ -39,17 +39,17 @@ public class PHAssetCloudExportQuotaCreateOperation: ExportQuotaCreateOperation // MARK: - Initialization - public init(me: VIMUser, phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) + public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) { self.phAsset = phAsset - super.init(me: me, sessionManager: sessionManager, videoSettings: videoSettings) + super.init(sessionManager: sessionManager, videoSettings: videoSettings) } // MARK: Overrides - override func makeExportQuotaOperation(with me: VIMUser) -> ExportQuotaOperation? + override func makeExportQuotaOperation() -> ExportQuotaOperation? { - return PHAssetCloudExportQuotaOperation(me: me, phAsset: self.phAsset) + return PHAssetCloudExportQuotaOperation(phAsset: self.phAsset) } } diff --git a/VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift index 836079cf..e9c0dac9 100644 --- a/VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift @@ -48,8 +48,8 @@ public class PHAssetRetryUploadOperation: RetryUploadOperation // MARK: Overrides - override func makeExportQuotaOperation(user: VIMUser) -> ExportQuotaOperation? + override func makeExportQuotaOperation() -> ExportQuotaOperation? { - return PHAssetCloudExportQuotaOperation(me: user, phAsset: self.phAsset) + return PHAssetCloudExportQuotaOperation(phAsset: self.phAsset) } } diff --git a/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift index 12073bc8..d93f41d0 100644 --- a/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift @@ -60,6 +60,8 @@ public class RetryUploadOperation: ConcurrentOperation self.sessionManager = sessionManager self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 + + super.init() } deinit @@ -76,7 +78,8 @@ public class RetryUploadOperation: ConcurrentOperation return } - self.performMeQuotaOperation() + let exportQuotaOperation = self.makeExportQuotaOperation()! + self.perform(exportQuotaOperation: exportQuotaOperation) } override public func cancel() @@ -88,41 +91,6 @@ public class RetryUploadOperation: ConcurrentOperation // MARK: Private API - private func performMeQuotaOperation() - { - let operation = MeQuotaOperation(sessionManager: self.sessionManager) - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if strongSelf.isCancelled - { - return - } - - if let error = operation.error - { - strongSelf.error = error - } - else - { - let user = operation.me! - let exportQuotaOperation = strongSelf.makeExportQuotaOperation(user: user)! - strongSelf.perform(exportQuotaOperation: exportQuotaOperation) - } - }) - } - - self.operationQueue.addOperation(operation) - - operation.fulfillSelection(avAsset: nil) - } - private func perform(exportQuotaOperation operation: ExportQuotaOperation) { operation.downloadProgressBlock = { [weak self] (progress: Double) -> Void in @@ -164,7 +132,7 @@ public class RetryUploadOperation: ConcurrentOperation // MARK: Public API - func makeExportQuotaOperation(user: VIMUser) -> ExportQuotaOperation? + func makeExportQuotaOperation() -> ExportQuotaOperation? { assertionFailure("Subclasses must override") diff --git a/VimeoUpload/Upload/Operations/Sync/DailyQuotaOperation.swift b/VimeoUpload/Upload/Operations/Sync/DailyQuotaOperation.swift deleted file mode 100644 index 28559fae..00000000 --- a/VimeoUpload/Upload/Operations/Sync/DailyQuotaOperation.swift +++ /dev/null @@ -1,58 +0,0 @@ -// -// DailyQuotaOperation.swift -// VimeoUpload -// -// Created by Alfred Hanssen on 11/9/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -import AVFoundation -import VimeoNetworking - -public class DailyQuotaOperation: Operation -{ - private let user: VIMUser - - private(set) var result: Bool? - private(set) var error: NSError? - - init(user: VIMUser) - { - self.user = user - - super.init() - } - - // MARK: Overrides - - override public func main() - { - if let sd = self.user.uploadQuota?.quantityQuota?.canUploadSd, let hd = self.user.uploadQuota?.quantityQuota?.canUploadHd - { - self.result = (sd == true || hd == true) - } - else - { - self.error = NSError.error(withDomain: UploadErrorDomain.DailyQuotaOperation.rawValue, code: UploadLocalErrorCode.cannotEvaluateDailyQuota.rawValue, description: "User object did not contain uploadQuota.quota information") - } - } -} diff --git a/VimeoUpload/Upload/Operations/Sync/WeeklyQuotaOperation.swift b/VimeoUpload/Upload/Operations/Sync/WeeklyQuotaOperation.swift deleted file mode 100644 index 7e3bb778..00000000 --- a/VimeoUpload/Upload/Operations/Sync/WeeklyQuotaOperation.swift +++ /dev/null @@ -1,63 +0,0 @@ -// -// WeeklyQuotaOperation.swift -// VimeoUpload -// -// Created by Alfred Hanssen on 11/9/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -import AVFoundation -import VimeoNetworking - -public class WeeklyQuotaOperation: Operation -{ - private let user: VIMUser - private let fileSize: Float64 - - private(set) var result: FileSizeCheckResult? - private(set) var error: NSError? - - init(user: VIMUser, fileSize: Float64) - { - assert(fileSize > 0, "fileSize must be greater than 0") - - self.user = user - self.fileSize = fileSize - - super.init() - } - - // MARK: Overrides - - override public func main() - { - if let free = self.user.uploadQuota?.sizeQuota?.free?.doubleValue - { - let success = free > self.fileSize - self.result = FileSizeCheckResult(fileSize: self.fileSize, availableSpace: free, success: success) - } - else - { - self.error = NSError.error(withDomain: UploadErrorDomain.WeeklyQuotaOperation.rawValue, code: UploadLocalErrorCode.cannotEvaluateWeeklyQuota.rawValue, description: "User object did not contain uploadQuota.space information") - } - } -} From 3643cc099c35c50a7233260ecfeafb5f46522988 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 13:31:11 -0500 Subject: [PATCH 020/149] removing commented out retry logic --- .../MyVideosViewController.swift | 74 +------------------ 1 file changed, 1 insertion(+), 73 deletions(-) diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift index 84202ac3..e387a790 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift @@ -156,26 +156,7 @@ class MyVideosViewController: UIViewController, UITableViewDataSource, UITableVi func cellDidRetryUploadDescriptor(cell: VideoCell, descriptor: UploadDescriptor) { - let videoUri = descriptor.uploadTicket.video!.uri! - - self.retry(uploadDescriptor: descriptor, completion: { [weak self] (error) in - - guard let strongSelf = self else - { - return - } - - if error != nil - { - return - } - - // Reload the cell so that it reflects the state of the newly retried upload - if let indexPath = strongSelf.indexPath(for: videoUri) - { - strongSelf.tableView.reloadRows(at: [indexPath], with: .none) - } - }) + // TODO: Implement retry } private func indexPath(for videoUri: String) -> IndexPath? @@ -303,57 +284,4 @@ class MyVideosViewController: UIViewController, UITableViewDataSource, UITableVi self.present(alert, animated: true, completion: nil) } - - // MARK: Private API - - private func retry(uploadDescriptor descriptor: UploadDescriptor, completion: ErrorBlock) - { - // TODO: This should be cancellable - -// guard let phAsset = descriptor.phAssetForRetry() else -// { -// return -// } -// -// let operation = PHAssetRetryUploadOperation(sessionManager: UploadManager.sharedInstance.foregroundSessionManager, phAsset: phAsset) -// -// operation.downloadProgressBlock = { (progress: Double) -> Void in -// print("Download progress (settings): \(progress)") // TODO: Dispatch to main thread -// } -// -// operation.exportProgressBlock = { (progress: Double) -> Void in -// print("Export progress (settings): \(progress)") -// } -// operation.completionBlock = { [weak self] () -> Void in -// -// dispatch_async(dispatch_get_main_queue(), { [weak self] () -> Void in -// -// guard let strongSelf = self else -// { -// return -// } -// -// if operation.cancelled == true -// { -// return -// } -// -// if let error = operation.error -// { -// strongSelf.presentUploadRetryErrorAlert(error) -// } -// else -// { -// // Initiate the retry -// -// let url = operation.url! -// UploadManager.sharedInstance.retryUpload(descriptor: descriptor, url: url) -// } -// -// completion(error: operation.error) -// }) -// } -// -// operation.start() - } } From 8ce499793c8ecca56c4b649b67c929ec9f12a28d Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 14:23:53 -0500 Subject: [PATCH 021/149] strong self --- .../ViewControllers/BaseCameraRollViewController.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift index 773f0875..df6767c4 100644 --- a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift +++ b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift @@ -186,9 +186,14 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource private func presentErrorAlert(at indexPath: IndexPath, error: NSError) { let alert = UIAlertController(title: "Error", message: error.localizedDescription, preferredStyle: UIAlertControllerStyle.alert) - alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default, handler: {(action) -> Void in + alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default, handler: { [weak self] (action) -> Void in - self.collectionView.indexPathsForSelectedItems?.forEach({ self.collectionView.deselectItem(at: $0, animated: true) }) + guard let strongSelf = self else + { + return + } + + strongSelf.collectionView.indexPathsForSelectedItems?.forEach({ strongSelf.collectionView.deselectItem(at: $0, animated: true) }) })) alert.addAction(UIAlertAction(title: "Try Again", style: UIAlertActionStyle.default, handler: { [weak self] (action) -> Void in From ec9bdf32970b53d1adde788a5f5100f21f6c3670 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:13:20 -0500 Subject: [PATCH 022/149] name changes --- .../VideoSettingsViewController.swift | 4 +- .../VideoSettingsViewController.swift | 2 +- .../VimeoUpload.xcodeproj/project.pbxproj | 12 --- .../Async/ExportQuotaOperation.swift | 38 ++++++++- .../PHAssetCloudExportQuotaOperation.swift | 81 ------------------- .../Private/ExportQuotaCreateOperation.swift | 18 ++--- ...AssetCloudExportQuotaCreateOperation.swift | 55 ------------- .../Private/PHAssetRetryUploadOperation.swift | 55 ------------- .../Private/RetryUploadOperation.swift | 19 ++--- 9 files changed, 53 insertions(+), 231 deletions(-) delete mode 100644 VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift delete mode 100644 VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift delete mode 100644 VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift index 38c72f78..b23bd637 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift @@ -100,7 +100,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func setupAndStartOperation() { let phAsset = self.asset.phAsset - let operation = PHAssetCloudExportQuotaOperation(phAsset: phAsset) + let operation = ExportQuotaOperation(phAsset: phAsset) operation.downloadProgressBlock = { (progress: Double) -> Void in print(String(format: "Download progress: %.2f", progress)) // TODO: Dispatch to main thread @@ -173,7 +173,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate func didTapUpload(_ sender: UIBarButtonItem) { - let operation = self.operation as? PHAssetCloudExportQuotaOperation + let operation = self.operation as? ExportQuotaOperation let title = self.titleTextField.text let description = self.descriptionTextView.text diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift index 297b4f35..31e8d06a 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift @@ -134,7 +134,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate let videoSettings = self.videoSettings let phAsset = self.asset.phAsset - let operation = PHAssetCloudExportQuotaCreateOperation(phAsset: phAsset, sessionManager: sessionManager, videoSettings: videoSettings) + let operation = ExportQuotaCreateOperation(phAsset: phAsset, sessionManager: sessionManager, videoSettings: videoSettings) operation.downloadProgressBlock = { (progress: Double) -> Void in print(String(format: "Download progress: %.2f", progress)) // TODO: Dispatch to main thread diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 3f78ba4f..55fdd1b5 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -12,9 +12,6 @@ 3C53EC261D219C8500B7AA6D /* VimeoRequestSerializer+Thumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC211D219C8500B7AA6D /* VimeoRequestSerializer+Thumbnail.swift */; }; 3C53EC271D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */; }; 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */; }; - 3EA2DAD11DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DACF1DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift */; }; - 3EA2DAD21DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD01DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift */; }; - 3EA2DAD61DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD31DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift */; }; 3EA2DAD81DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; @@ -86,9 +83,6 @@ 3C53EC211D219C8500B7AA6D /* VimeoRequestSerializer+Thumbnail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoRequestSerializer+Thumbnail.swift"; path = "Cameo/VimeoRequestSerializer+Thumbnail.swift"; sourceTree = ""; }; 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoResponseSerializer+Thumbnail.swift"; path = "Cameo/VimeoResponseSerializer+Thumbnail.swift"; sourceTree = ""; }; 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+ThumbnailUpload.swift"; path = "Cameo/VimeoSessionManager+ThumbnailUpload.swift"; sourceTree = ""; }; - 3EA2DACF1DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetCloudExportQuotaCreateOperation.swift; sourceTree = ""; }; - 3EA2DAD01DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetRetryUploadOperation.swift; sourceTree = ""; }; - 3EA2DAD31DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetCloudExportQuotaOperation.swift; sourceTree = ""; }; 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetExportSessionOperation.swift; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; @@ -421,7 +415,6 @@ isa = PBXGroup; children = ( AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */, - 3EA2DAD31DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift */, 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */, AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */, AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */, @@ -435,8 +428,6 @@ isa = PBXGroup; children = ( AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */, - 3EA2DACF1DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift */, - 3EA2DAD01DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift */, AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */, AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */, ); @@ -635,12 +626,10 @@ AF40D56F1CCE9DEB00753ABA /* AVURLAsset+Extensions.swift in Sources */, AF40D5591CCE9DEB00753ABA /* ReachableDescriptorManager.swift in Sources */, AF40D58C1CCE9DEB00753ABA /* DiskSpaceOperation.swift in Sources */, - 3EA2DAD21DFF3DF0006E2C65 /* PHAssetRetryUploadOperation.swift in Sources */, AF40D5711CCE9DEB00753ABA /* NSURL+Upload.swift in Sources */, AF40D5531CCE9DEB00753ABA /* Descriptor.swift in Sources */, AF40D5771CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift in Sources */, AF40D55E1CCE9DEB00753ABA /* CameraRollAssetCell.swift in Sources */, - 3EA2DAD61DFF3E0F006E2C65 /* PHAssetCloudExportQuotaOperation.swift in Sources */, 3C53EC241D219C8500B7AA6D /* CAMUploadDescriptor.swift in Sources */, AF40D5581CCE9DEB00753ABA /* ProgressDescriptor.swift in Sources */, AF40D55A1CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift in Sources */, @@ -652,7 +641,6 @@ AF40D56A1CCE9DEB00753ABA /* OldUploadRequest.swift in Sources */, AF40D57B1CCE9DEB00753ABA /* ExportOperation.swift in Sources */, AF40D55B1CCE9DEB00753ABA /* NSError+Extensions.swift in Sources */, - 3EA2DAD11DFF3DF0006E2C65 /* PHAssetCloudExportQuotaCreateOperation.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift index 223ad3b4..af91554f 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift @@ -27,6 +27,7 @@ import Foundation import AVFoundation import VimeoNetworking +import Photos public typealias ExportProgressBlock = (AVAssetExportSession, Double) -> Void @@ -37,6 +38,8 @@ open class ExportQuotaOperation: ConcurrentOperation open var downloadProgressBlock: ProgressBlock? open var exportProgressBlock: ExportProgressBlock? + private let phAsset: PHAsset + open var error: NSError? { didSet @@ -49,8 +52,10 @@ open class ExportQuotaOperation: ConcurrentOperation } open var result: URL? - override init() + public init(phAsset: PHAsset) { + self.phAsset = phAsset + self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 @@ -90,7 +95,36 @@ open class ExportQuotaOperation: ConcurrentOperation func requestExportSession() { - assertionFailure("Subclasses must override") + let operation = PHAssetExportSessionOperation(phAsset: self.phAsset) + operation.progressBlock = self.downloadProgressBlock + operation.completionBlock = { [weak self] () -> Void in + + DispatchQueue.main.async(execute: { [weak self] () -> Void in + + guard let strongSelf = self else + { + return + } + + if operation.isCancelled == true + { + return + } + + if let error = operation.error + { + strongSelf.error = error + } + else + { + let exportSession = operation.result! + let exportOperation = ExportOperation(exportSession: exportSession) + strongSelf.performExport(exportOperation: exportOperation) + } + }) + } + + self.operationQueue.addOperation(operation) } func performExport(exportOperation: ExportOperation) diff --git a/VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift b/VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift deleted file mode 100644 index 89cb40af..00000000 --- a/VimeoUpload/Upload/Operations/Async/PHAssetCloudExportQuotaOperation.swift +++ /dev/null @@ -1,81 +0,0 @@ -// -// PHAssetCloudExportQuotaOperation.swift -// VimeoUpload -// -// Created by Alfred Hanssen on 11/9/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Photos -import VimeoNetworking - -// This flow encapsulates the following steps: -// 1. If inCloud, download -// 2. Export (check disk space within this step) -// 3. Check weekly quota - -public class PHAssetCloudExportQuotaOperation: ExportQuotaOperation -{ - let phAsset: PHAsset - - public init(phAsset: PHAsset) - { - self.phAsset = phAsset - - super.init() - } - - // MARK: Subclass Overrides - - override func requestExportSession() - { - let operation = PHAssetExportSessionOperation(phAsset: self.phAsset) - operation.progressBlock = super.downloadProgressBlock - operation.completionBlock = { [weak self] () -> Void in - - DispatchQueue.main.async(execute: { [weak self] () -> Void in - - guard let strongSelf = self else - { - return - } - - if operation.isCancelled == true - { - return - } - - if let error = operation.error - { - strongSelf.error = error - } - else - { - let exportSession = operation.result! - let exportOperation = ExportOperation(exportSession: exportSession) - strongSelf.performExport(exportOperation: exportOperation) - } - }) - } - - self.operationQueue.addOperation(operation) - } -} diff --git a/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift b/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift index 4aca2f0b..ae313b30 100644 --- a/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift +++ b/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift @@ -27,6 +27,7 @@ import Foundation import AVFoundation import VimeoNetworking +import Photos open class ExportQuotaCreateOperation: ConcurrentOperation { @@ -41,6 +42,8 @@ open class ExportQuotaCreateOperation: ConcurrentOperation // MARK: + private let phAsset: PHAsset + open var url: URL? open var uploadTicket: VIMUploadTicket? open var error: NSError? @@ -56,8 +59,10 @@ open class ExportQuotaCreateOperation: ConcurrentOperation // MARK: - Initialization - public init(sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) + public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) { + self.phAsset = phAsset + self.sessionManager = sessionManager self.videoSettings = videoSettings @@ -81,7 +86,7 @@ open class ExportQuotaCreateOperation: ConcurrentOperation return } - let operation = self.makeExportQuotaOperation()! + let operation = ExportQuotaOperation(phAsset: self.phAsset) self.perform(exportQuotaOperation: operation) } @@ -97,15 +102,6 @@ open class ExportQuotaCreateOperation: ConcurrentOperation } } - // MARK: Public API - - func makeExportQuotaOperation() -> ExportQuotaOperation? - { - assertionFailure("Subclasses must override") - - return nil - } - // MARK: Private API private func perform(exportQuotaOperation operation: ExportQuotaOperation) diff --git a/VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift b/VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift deleted file mode 100644 index 900ab96b..00000000 --- a/VimeoUpload/Upload/Operations/Private/PHAssetCloudExportQuotaCreateOperation.swift +++ /dev/null @@ -1,55 +0,0 @@ -// -// PHAssetCloudExportQuotaCreateOperation.swift -// VimeoUpload -// -// Created by Alfred Hanssen on 11/9/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -import Photos -import VimeoNetworking - -// This flow encapsulates the following steps: - -// 1. Perorm a PHAssetCloudExportQuotaOperation -// 2. Create video record - -public class PHAssetCloudExportQuotaCreateOperation: ExportQuotaCreateOperation -{ - let phAsset: PHAsset - - // MARK: - Initialization - - public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) - { - self.phAsset = phAsset - - super.init(sessionManager: sessionManager, videoSettings: videoSettings) - } - - // MARK: Overrides - - override func makeExportQuotaOperation() -> ExportQuotaOperation? - { - return PHAssetCloudExportQuotaOperation(phAsset: self.phAsset) - } -} diff --git a/VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift deleted file mode 100644 index e9c0dac9..00000000 --- a/VimeoUpload/Upload/Operations/Private/PHAssetRetryUploadOperation.swift +++ /dev/null @@ -1,55 +0,0 @@ -// -// PHAssetRetryUploadOperation.swift -// VimeoUpload -// -// Created by Hanssen, Alfie on 12/2/15. -// Copyright © 2015 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -import Photos -import VimeoNetworking - -// This flow encapsulates the following steps: - -// 1. Perorm a MeQuotaOperation -// 2. Perform a PHAssetCloudExportQuotaOperation - -public class PHAssetRetryUploadOperation: RetryUploadOperation -{ - private let phAsset: PHAsset - - // MARK: - Initialization - - public init(sessionManager: VimeoSessionManager, phAsset: PHAsset) - { - self.phAsset = phAsset - - super.init(sessionManager: sessionManager) - } - - // MARK: Overrides - - override func makeExportQuotaOperation() -> ExportQuotaOperation? - { - return PHAssetCloudExportQuotaOperation(phAsset: self.phAsset) - } -} diff --git a/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift index d93f41d0..9ca2a5ef 100644 --- a/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift @@ -27,6 +27,7 @@ import Foundation import VimeoNetworking import AVFoundation +import Photos public class RetryUploadOperation: ConcurrentOperation { @@ -40,8 +41,9 @@ public class RetryUploadOperation: ConcurrentOperation // MARK: + private let phAsset: PHAsset + private(set) public var url: URL? - private(set) public var error: NSError? { didSet @@ -55,8 +57,10 @@ public class RetryUploadOperation: ConcurrentOperation // MARK: - Initialization - init(sessionManager: VimeoSessionManager) + init(phAsset: PHAsset, sessionManager: VimeoSessionManager) { + self.phAsset = phAsset + self.sessionManager = sessionManager self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 @@ -78,7 +82,7 @@ public class RetryUploadOperation: ConcurrentOperation return } - let exportQuotaOperation = self.makeExportQuotaOperation()! + let exportQuotaOperation = ExportQuotaOperation(phAsset: self.phAsset) self.perform(exportQuotaOperation: exportQuotaOperation) } @@ -129,13 +133,4 @@ public class RetryUploadOperation: ConcurrentOperation self.operationQueue.addOperation(operation) } - - // MARK: Public API - - func makeExportQuotaOperation() -> ExportQuotaOperation? - { - assertionFailure("Subclasses must override") - - return nil - } } From c505ebaec769ba64e1c6c59e1008ab4f7c52d1bd Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:16:06 -0500 Subject: [PATCH 023/149] file structure --- .../VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 8 ++++---- .../{Private => Async}/CreateVideoOperation.swift | 0 .../{Private => Async}/ExportQuotaCreateOperation.swift | 0 .../{Private => Async}/RetryUploadOperation.swift | 0 .../Operations/{Async => }/ConcurrentOperation.swift | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename VimeoUpload/Upload/Operations/{Private => Async}/CreateVideoOperation.swift (100%) rename VimeoUpload/Upload/Operations/{Private => Async}/ExportQuotaCreateOperation.swift (100%) rename VimeoUpload/Upload/Operations/{Private => Async}/RetryUploadOperation.swift (100%) rename VimeoUpload/Upload/Operations/{Async => }/ConcurrentOperation.swift (100%) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 55fdd1b5..9d52894b 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -404,6 +404,7 @@ AF40D5331CCE9DEB00753ABA /* Operations */ = { isa = PBXGroup; children = ( + AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */, AF40D5341CCE9DEB00753ABA /* Async */, AF40D5421CCE9DEB00753ABA /* Private */, AF40D54C1CCE9DEB00753ABA /* Sync */, @@ -414,12 +415,14 @@ AF40D5341CCE9DEB00753ABA /* Async */ = { isa = PBXGroup; children = ( - AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */, 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */, AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */, AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */, AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */, AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */, + AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */, + AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */, + AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */, ); path = Async; sourceTree = ""; @@ -427,9 +430,6 @@ AF40D5421CCE9DEB00753ABA /* Private */ = { isa = PBXGroup; children = ( - AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */, - AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */, - AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */, ); path = Private; sourceTree = ""; diff --git a/VimeoUpload/Upload/Operations/Private/CreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift similarity index 100% rename from VimeoUpload/Upload/Operations/Private/CreateVideoOperation.swift rename to VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift diff --git a/VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift similarity index 100% rename from VimeoUpload/Upload/Operations/Private/ExportQuotaCreateOperation.swift rename to VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift diff --git a/VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift similarity index 100% rename from VimeoUpload/Upload/Operations/Private/RetryUploadOperation.swift rename to VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift diff --git a/VimeoUpload/Upload/Operations/Async/ConcurrentOperation.swift b/VimeoUpload/Upload/Operations/ConcurrentOperation.swift similarity index 100% rename from VimeoUpload/Upload/Operations/Async/ConcurrentOperation.swift rename to VimeoUpload/Upload/Operations/ConcurrentOperation.swift From 88af6270d82c8b8400e1e5269a041ce2b7054f14 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:21:56 -0500 Subject: [PATCH 024/149] name changes --- .../VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 8 ++++---- .../Upload/Operations/Async/ExportQuotaOperation.swift | 2 +- ...essionOperation.swift => ExportSessionOperation.swift} | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) rename VimeoUpload/Upload/Operations/Async/{PHAssetExportSessionOperation.swift => ExportSessionOperation.swift} (98%) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 9d52894b..5de7d7e4 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -12,7 +12,7 @@ 3C53EC261D219C8500B7AA6D /* VimeoRequestSerializer+Thumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC211D219C8500B7AA6D /* VimeoRequestSerializer+Thumbnail.swift */; }; 3C53EC271D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */; }; 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */; }; - 3EA2DAD81DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */; }; + 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -83,7 +83,7 @@ 3C53EC211D219C8500B7AA6D /* VimeoRequestSerializer+Thumbnail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoRequestSerializer+Thumbnail.swift"; path = "Cameo/VimeoRequestSerializer+Thumbnail.swift"; sourceTree = ""; }; 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoResponseSerializer+Thumbnail.swift"; path = "Cameo/VimeoResponseSerializer+Thumbnail.swift"; sourceTree = ""; }; 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+ThumbnailUpload.swift"; path = "Cameo/VimeoSessionManager+ThumbnailUpload.swift"; sourceTree = ""; }; - 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PHAssetExportSessionOperation.swift; sourceTree = ""; }; + 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionOperation.swift; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -415,7 +415,7 @@ AF40D5341CCE9DEB00753ABA /* Async */ = { isa = PBXGroup; children = ( - 3EA2DAD51DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift */, + 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */, AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */, AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */, AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */, @@ -633,7 +633,7 @@ 3C53EC241D219C8500B7AA6D /* CAMUploadDescriptor.swift in Sources */, AF40D5581CCE9DEB00753ABA /* ProgressDescriptor.swift in Sources */, AF40D55A1CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift in Sources */, - 3EA2DAD81DFF3E0F006E2C65 /* PHAssetExportSessionOperation.swift in Sources */, + 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */, AF40D5791CCE9DEB00753ABA /* ConcurrentOperation.swift in Sources */, AF40D5781CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift in Sources */, AF40D5721CCE9DEB00753ABA /* BlockTypes.swift in Sources */, diff --git a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift index af91554f..6e876d07 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift @@ -95,7 +95,7 @@ open class ExportQuotaOperation: ConcurrentOperation func requestExportSession() { - let operation = PHAssetExportSessionOperation(phAsset: self.phAsset) + let operation = ExportSessionOperation(phAsset: self.phAsset) operation.progressBlock = self.downloadProgressBlock operation.completionBlock = { [weak self] () -> Void in diff --git a/VimeoUpload/Upload/Operations/Async/PHAssetExportSessionOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionOperation.swift similarity index 98% rename from VimeoUpload/Upload/Operations/Async/PHAssetExportSessionOperation.swift rename to VimeoUpload/Upload/Operations/Async/ExportSessionOperation.swift index 3d258d7c..83e8f658 100644 --- a/VimeoUpload/Upload/Operations/Async/PHAssetExportSessionOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionOperation.swift @@ -1,5 +1,5 @@ // -// PHAssetExportSessionOperation.swift +// ExportSessionOperation.swift // VimeoUpload // // Created by Hanssen, Alfie on 11/10/15. @@ -27,7 +27,7 @@ import Foundation import Photos -class PHAssetExportSessionOperation: ConcurrentOperation +class ExportSessionOperation: ConcurrentOperation { private let phAsset: PHAsset private let exportPreset: String From ea7aa0aae6dbd921c0984d3308f7c18a07743d88 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:22:19 -0500 Subject: [PATCH 025/149] file structure --- .../VimeoUpload.xcodeproj/project.pbxproj | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 5de7d7e4..5c2264bb 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -216,7 +216,6 @@ AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */, AF40D4FB1CCE9DEB00753ABA /* Descriptor System */, AF40D5051CCE9DEB00753ABA /* Extensions */, - AF40D5091CCE9DEB00753ABA /* Networking */, AF40D50A1CCE9DEB00753ABA /* UIKit */, AF40D5151CCE9DEB00753ABA /* Upload */, AF40D5501CCE9DEB00753ABA /* VimeoUploader.swift */, @@ -262,14 +261,6 @@ path = ../../../VimeoUpload/Extensions; sourceTree = ""; }; - AF40D5091CCE9DEB00753ABA /* Networking */ = { - isa = PBXGroup; - children = ( - ); - name = Networking; - path = ../../../VimeoUpload/Networking; - sourceTree = ""; - }; AF40D50A1CCE9DEB00753ABA /* UIKit */ = { isa = PBXGroup; children = ( @@ -406,7 +397,6 @@ children = ( AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */, AF40D5341CCE9DEB00753ABA /* Async */, - AF40D5421CCE9DEB00753ABA /* Private */, AF40D54C1CCE9DEB00753ABA /* Sync */, ); path = Operations; @@ -427,13 +417,6 @@ path = Async; sourceTree = ""; }; - AF40D5421CCE9DEB00753ABA /* Private */ = { - isa = PBXGroup; - children = ( - ); - path = Private; - sourceTree = ""; - }; AF40D54C1CCE9DEB00753ABA /* Sync */ = { isa = PBXGroup; children = ( From a79f6af18a992a8168c12c456d2ca0c0a0465298 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:28:25 -0500 Subject: [PATCH 026/149] name changes --- .../ViewControllers/VideoSettingsViewController.swift | 4 ++-- .../VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 10 +++++----- .../Operations/Async/ExportQuotaCreateOperation.swift | 6 +++--- ...ration.swift => ExportSessionExportOperation.swift} | 4 ++-- .../Upload/Operations/Async/RetryUploadOperation.swift | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) rename VimeoUpload/Upload/Operations/Async/{ExportQuotaOperation.swift => ExportSessionExportOperation.swift} (98%) diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift index b23bd637..4f69c4bc 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift @@ -100,7 +100,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func setupAndStartOperation() { let phAsset = self.asset.phAsset - let operation = ExportQuotaOperation(phAsset: phAsset) + let operation = ExportSessionExportOperation(phAsset: phAsset) operation.downloadProgressBlock = { (progress: Double) -> Void in print(String(format: "Download progress: %.2f", progress)) // TODO: Dispatch to main thread @@ -173,7 +173,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate func didTapUpload(_ sender: UIBarButtonItem) { - let operation = self.operation as? ExportQuotaOperation + let operation = self.operation as? ExportSessionExportOperation let title = self.titleTextField.text let description = self.descriptionTextView.text diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 5c2264bb..427d6267 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -57,7 +57,7 @@ AF40D5791CCE9DEB00753ABA /* ConcurrentOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */; }; AF40D57A1CCE9DEB00753ABA /* DeleteVideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */; }; AF40D57B1CCE9DEB00753ABA /* ExportOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */; }; - AF40D57C1CCE9DEB00753ABA /* ExportQuotaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */; }; + AF40D57C1CCE9DEB00753ABA /* ExportSessionExportOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */; }; AF40D5831CCE9DEB00753ABA /* VideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */; }; AF40D5841CCE9DEB00753ABA /* CreateVideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */; }; AF40D5851CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */; }; @@ -131,7 +131,7 @@ AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentOperation.swift; sourceTree = ""; }; AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteVideoOperation.swift; sourceTree = ""; }; AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportOperation.swift; sourceTree = ""; }; - AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportQuotaOperation.swift; sourceTree = ""; }; + AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionExportOperation.swift; sourceTree = ""; }; AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VideoOperation.swift; sourceTree = ""; }; AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateVideoOperation.swift; sourceTree = ""; }; AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportQuotaCreateOperation.swift; sourceTree = ""; }; @@ -407,11 +407,11 @@ children = ( 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */, AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */, - AF40D5381CCE9DEB00753ABA /* ExportQuotaOperation.swift */, + AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */, + AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */, AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */, AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */, AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */, - AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */, AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */, ); path = Async; @@ -587,7 +587,7 @@ AF40D5601CCE9DEB00753ABA /* NSString+Conversions.swift in Sources */, AF40D5701CCE9DEB00753ABA /* NSError+Upload.swift in Sources */, AF40D5731CCE9DEB00753ABA /* VideoSettings.swift in Sources */, - AF40D57C1CCE9DEB00753ABA /* ExportQuotaOperation.swift in Sources */, + AF40D57C1CCE9DEB00753ABA /* ExportSessionExportOperation.swift in Sources */, AF40D55C1CCE9DEB00753ABA /* NSFileManager+Extensions.swift in Sources */, AF40D5651CCE9DEB00753ABA /* VideoDeletionManager.swift in Sources */, AF40D57A1CCE9DEB00753ABA /* DeleteVideoOperation.swift in Sources */, diff --git a/VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift index ae313b30..a67878c2 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift @@ -86,8 +86,8 @@ open class ExportQuotaCreateOperation: ConcurrentOperation return } - let operation = ExportQuotaOperation(phAsset: self.phAsset) - self.perform(exportQuotaOperation: operation) + let operation = ExportSessionExportOperation(phAsset: self.phAsset) + self.perform(exportSessionExportOperation: operation) } override open func cancel() @@ -104,7 +104,7 @@ open class ExportQuotaCreateOperation: ConcurrentOperation // MARK: Private API - private func perform(exportQuotaOperation operation: ExportQuotaOperation) + private func perform(exportSessionExportOperation operation: ExportSessionExportOperation) { operation.downloadProgressBlock = { [weak self] (progress: Double) -> Void in self?.downloadProgressBlock?(progress) diff --git a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift similarity index 98% rename from VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift rename to VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift index 6e876d07..ec6ab5b0 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportQuotaOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift @@ -1,5 +1,5 @@ // -// ExportQuotaOperation.swift +// ExportSessionExportOperation.swift // VimeoUpload // // Created by Hanssen, Alfie on 12/22/15. @@ -31,7 +31,7 @@ import Photos public typealias ExportProgressBlock = (AVAssetExportSession, Double) -> Void -open class ExportQuotaOperation: ConcurrentOperation +open class ExportSessionExportOperation: ConcurrentOperation { let operationQueue: OperationQueue diff --git a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift index 9ca2a5ef..ebaf8051 100644 --- a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift @@ -82,8 +82,8 @@ public class RetryUploadOperation: ConcurrentOperation return } - let exportQuotaOperation = ExportQuotaOperation(phAsset: self.phAsset) - self.perform(exportQuotaOperation: exportQuotaOperation) + let operation = ExportSessionExportOperation(phAsset: self.phAsset) + self.perform(exportSessionExportOperation: operation) } override public func cancel() @@ -95,7 +95,7 @@ public class RetryUploadOperation: ConcurrentOperation // MARK: Private API - private func perform(exportQuotaOperation operation: ExportQuotaOperation) + private func perform(exportSessionExportOperation operation: ExportSessionExportOperation) { operation.downloadProgressBlock = { [weak self] (progress: Double) -> Void in self?.downloadProgressBlock?(progress) From f46f226ec33e9489a45b47f1280f57f504791762 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:29:10 -0500 Subject: [PATCH 027/149] file structure --- Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 427d6267..4fa36ccb 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -405,9 +405,9 @@ AF40D5341CCE9DEB00753ABA /* Async */ = { isa = PBXGroup; children = ( + AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */, 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */, AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */, - AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */, AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */, AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */, AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */, From 617f3263c3398c8a2af0acb9d9232aaf8d50237d Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:36:01 -0500 Subject: [PATCH 028/149] name changes --- .../VideoSettingsViewController.swift | 8 +++----- .../VideoSettingsViewController.swift | 12 +++++------- .../VimeoUpload.xcodeproj/project.pbxproj | 10 +++++----- ...=> ExportSessionExportCreateVideoOperation.swift} | 4 ++-- 4 files changed, 15 insertions(+), 19 deletions(-) rename VimeoUpload/Upload/Operations/Async/{ExportQuotaCreateOperation.swift => ExportSessionExportCreateVideoOperation.swift} (97%) diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift index 4f69c4bc..28e4e7f8 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift @@ -44,7 +44,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate // MARK: - private var operation: ConcurrentOperation? + private var operation: ExportSessionExportOperation? private var descriptor: Descriptor? // MARK: @@ -173,17 +173,15 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate func didTapUpload(_ sender: UIBarButtonItem) { - let operation = self.operation as? ExportSessionExportOperation - let title = self.titleTextField.text let description = self.descriptionTextView.text self.videoSettings = VideoSettings(title: title, description: description, privacy: "nobody", users: nil, password: nil) - if operation?.state == .executing + if self.operation?.state == .executing { self.activityIndicatorView.startAnimating() // Listen for operation completion, dismiss } - else if let error = operation?.error + else if let error = self.operation?.error { self.presentOperationErrorAlert(with: error) } diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift index 31e8d06a..ddc736ff 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift @@ -68,7 +68,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate // MARK: - private var operation: ConcurrentOperation? + private var operation: ExportSessionExportCreateVideoOperation? private var task: URLSessionDataTask? // MARK: @@ -134,7 +134,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate let videoSettings = self.videoSettings let phAsset = self.asset.phAsset - let operation = ExportQuotaCreateOperation(phAsset: phAsset, sessionManager: sessionManager, videoSettings: videoSettings) + let operation = ExportSessionExportCreateVideoOperation(phAsset: phAsset, sessionManager: sessionManager, videoSettings: videoSettings) operation.downloadProgressBlock = { (progress: Double) -> Void in print(String(format: "Download progress: %.2f", progress)) // TODO: Dispatch to main thread @@ -225,16 +225,14 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate let title = self.titleTextField.text let description = self.descriptionTextView.text self.videoSettings = VideoSettings(title: title, description: description, privacy: "nobody", users: nil, password: nil) - - let operation = self.operation as! ExportQuotaCreateOperation - if operation.state == .executing + if self.operation?.state == .executing { - operation.videoSettings = self.videoSettings + self.operation?.videoSettings = self.videoSettings self.activityIndicatorView.startAnimating() // Listen for operation completion, dismiss } - else if let error = operation.error + else if let error = self.operation?.error { self.presentOperationErrorAlert(with: error) } diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 4fa36ccb..f658cad3 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -60,7 +60,7 @@ AF40D57C1CCE9DEB00753ABA /* ExportSessionExportOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */; }; AF40D5831CCE9DEB00753ABA /* VideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */; }; AF40D5841CCE9DEB00753ABA /* CreateVideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */; }; - AF40D5851CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */; }; + AF40D5851CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5441CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift */; }; AF40D58A1CCE9DEB00753ABA /* RetryUploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */; }; AF40D58C1CCE9DEB00753ABA /* DiskSpaceOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D54E1CCE9DEB00753ABA /* DiskSpaceOperation.swift */; }; AF40D58E1CCE9DEB00753ABA /* VimeoUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5501CCE9DEB00753ABA /* VimeoUploader.swift */; }; @@ -134,7 +134,7 @@ AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionExportOperation.swift; sourceTree = ""; }; AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VideoOperation.swift; sourceTree = ""; }; AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateVideoOperation.swift; sourceTree = ""; }; - AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportQuotaCreateOperation.swift; sourceTree = ""; }; + AF40D5441CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionExportCreateVideoOperation.swift; sourceTree = ""; }; AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RetryUploadOperation.swift; sourceTree = ""; }; AF40D54E1CCE9DEB00753ABA /* DiskSpaceOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DiskSpaceOperation.swift; sourceTree = ""; }; AF40D5501CCE9DEB00753ABA /* VimeoUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VimeoUploader.swift; path = ../../../VimeoUpload/VimeoUploader.swift; sourceTree = ""; }; @@ -408,10 +408,10 @@ AF40D5381CCE9DEB00753ABA /* ExportSessionExportOperation.swift */, 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */, AF40D5371CCE9DEB00753ABA /* ExportOperation.swift */, - AF40D5441CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift */, + AF40D5441CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift */, + AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */, AF40D5411CCE9DEB00753ABA /* VideoOperation.swift */, AF40D5361CCE9DEB00753ABA /* DeleteVideoOperation.swift */, - AF40D5431CCE9DEB00753ABA /* CreateVideoOperation.swift */, AF40D54B1CCE9DEB00753ABA /* RetryUploadOperation.swift */, ); path = Async; @@ -591,7 +591,7 @@ AF40D55C1CCE9DEB00753ABA /* NSFileManager+Extensions.swift in Sources */, AF40D5651CCE9DEB00753ABA /* VideoDeletionManager.swift in Sources */, AF40D57A1CCE9DEB00753ABA /* DeleteVideoOperation.swift in Sources */, - AF40D5851CCE9DEB00753ABA /* ExportQuotaCreateOperation.swift in Sources */, + AF40D5851CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift in Sources */, 3C53EC251D219C8500B7AA6D /* CAMUploadReqest.swift in Sources */, AF40D5571CCE9DEB00753ABA /* KeyedArchiver.swift in Sources */, AF40D5661CCE9DEB00753ABA /* VideoRefreshManager.swift in Sources */, diff --git a/VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift similarity index 97% rename from VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift rename to VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift index a67878c2..cbbd875e 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportQuotaCreateOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift @@ -1,5 +1,5 @@ // -// ExportQuotaCreateOperation.swift +// ExportSessionExportCreateVideoOperation.swift // VimeoUpload // // Created by Hanssen, Alfie on 12/22/15. @@ -29,7 +29,7 @@ import AVFoundation import VimeoNetworking import Photos -open class ExportQuotaCreateOperation: ConcurrentOperation +open class ExportSessionExportCreateVideoOperation: ConcurrentOperation { let sessionManager: VimeoSessionManager open var videoSettings: VideoSettings? From ed3afecedfda5ae1fe627d4254263d0aead32833 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:41:10 -0500 Subject: [PATCH 029/149] removing old error domains --- VimeoUpload/Upload/Extensions/NSError+Upload.swift | 5 +---- .../Upload/Operations/Async/ExportSessionOperation.swift | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/VimeoUpload/Upload/Extensions/NSError+Upload.swift b/VimeoUpload/Upload/Extensions/NSError+Upload.swift index 0809d577..1bc6b8b6 100644 --- a/VimeoUpload/Upload/Extensions/NSError+Upload.swift +++ b/VimeoUpload/Upload/Extensions/NSError+Upload.swift @@ -41,12 +41,9 @@ public enum UploadErrorDomain: String case Video = "VideoErrorDomain" case DiskSpaceOperation = "DiskSpaceOperationErrorDomain" - case RetryUploadOperation = "RetryUploadOperationErrorDomain" - case ExportQuotaCreateOperation = "ExportQuotaCreateOperationErrorDomain" case CreateVideoOperation = "CreateVideoOperationErrorDomain" case VideoOperation = "VideoOperationErrorDomain" - case PHAssetCloudExportQuotaOperation = "PHAssetCloudExportQuotaOperationErrorDomain" - case PHAssetExportSessionOperation = "PHAssetExportSessionOperationErrorDomain" + case ExportSessionOperation = "ExportSessionOperationErrorDomain" case ExportOperation = "ExportOperationErrorDomain" case DeleteVideoOperation = "DeleteVideoOperationErrorDomain" diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionOperation.swift index 83e8f658..b25fa3f7 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionOperation.swift @@ -120,7 +120,7 @@ class ExportSessionOperation: ConcurrentOperation if let info = info, let error = info[PHImageErrorKey] as? NSError { - strongSelf.error = error.error(byAddingDomain: UploadErrorDomain.PHAssetExportSessionOperation.rawValue) + strongSelf.error = error.error(byAddingDomain: UploadErrorDomain.ExportSessionOperation.rawValue) } else if let exportSession = exportSession { @@ -128,7 +128,7 @@ class ExportSessionOperation: ConcurrentOperation } else { - strongSelf.error = NSError.error(withDomain: UploadErrorDomain.PHAssetExportSessionOperation.rawValue, code: nil, description: "Request for export session returned no error and no export session") + strongSelf.error = NSError.error(withDomain: UploadErrorDomain.ExportSessionOperation.rawValue, code: nil, description: "Request for export session returned no error and no export session") } strongSelf.state = .finished From 2b379fa3a7f63cd17f5b5e09489b0f2b840ebfde Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 16:43:56 -0500 Subject: [PATCH 030/149] removing old comment --- .../ViewControllers/BaseCameraRollViewController.swift | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift index df6767c4..7573108b 100644 --- a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift +++ b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift @@ -31,16 +31,6 @@ import VimeoNetworking import AFNetworking import VimeoUpload -/* - This viewController displays the device camera roll video contents. - - It starts an operation on load that requests a fresh version of the authenticated user, checks that user's daily quota, and if the user selects a non-iCloud asset it checks the weekly quota and available diskspace. - - Essentially, it performs all checks possible at this UX juncture to determine if we can proceed with the upload. - - [AH] 12/03/2015 -*/ - class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { static let NibName = "BaseCameraRollViewController" From 15b4a026b0a52f1ff6cff42a641cef7dd5f48010 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 17:42:18 -0500 Subject: [PATCH 031/149] public init --- VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift index ebaf8051..2b73587c 100644 --- a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift @@ -57,7 +57,7 @@ public class RetryUploadOperation: ConcurrentOperation // MARK: - Initialization - init(phAsset: PHAsset, sessionManager: VimeoSessionManager) + public init(phAsset: PHAsset, sessionManager: VimeoSessionManager) { self.phAsset = phAsset From cf07590eda261e35a0bd7549a805c1fae3d5ab98 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 20 Nov 2017 18:06:00 -0500 Subject: [PATCH 032/149] Xcode bump --- circle.yml | 2 +- fastlane/Fastfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index d2aec82c..b63bcce9 100644 --- a/circle.yml +++ b/circle.yml @@ -1,6 +1,6 @@ machine: xcode: - version: 9.0 + version: 9.0.1 dependencies: override: diff --git a/fastlane/Fastfile b/fastlane/Fastfile index db36d208..d42caf06 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -17,7 +17,7 @@ default_platform :ios platform :ios do before_all do - ensure_xcode_version(version: "9.0") + ensure_xcode_version(version: "9.0.1") end desc "buid the example project" From f13f0149252b823c6e30bbd69382ba8d3647c846 Mon Sep 17 00:00:00 2001 From: Jennifer Lim Date: Tue, 12 Dec 2017 17:47:19 -0500 Subject: [PATCH 033/149] provide filesize in error object. --- ...portSessionExportCreateVideoOperation.swift | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift index cbbd875e..cf9ec86c 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift @@ -162,9 +162,23 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation return } - if let error = operation.error + if var error = operation.error { - strongSelf.error = error + var userInfo = error.userInfo + + + let asset = AVURLAsset(url: url) + do + { + let fileSize = try asset.fileSize() + userInfo.append([UploadErrorKey.FileSize.rawValue : fileSize]) + } + catch + { + + } + + strongSelf.error = NSError(domain: error.domain, code: error.code, userInfo: userInfo) } else { From aabc0525ed9b718491aadeab69678aa53a55dfab Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 29 Jan 2018 16:30:37 -0500 Subject: [PATCH 034/149] Remove the `catch` block --- .../ExportSessionExportCreateVideoOperation.swift | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift index cf9ec86c..ef8164ee 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift @@ -162,21 +162,16 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation return } - if var error = operation.error + if let error = operation.error { var userInfo = error.userInfo - let asset = AVURLAsset(url: url) - do + + if let fileSize = try? asset.fileSize() { - let fileSize = try asset.fileSize() userInfo.append([UploadErrorKey.FileSize.rawValue : fileSize]) } - catch - { - - } strongSelf.error = NSError(domain: error.domain, code: error.code, userInfo: userInfo) } From ebaff70eb20b0a37bb99d306f665552070534a57 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 5 Apr 2018 15:41:35 -0400 Subject: [PATCH 035/149] Inject the shared container identifier string --- .../Descriptor System/ReachableDescriptorManager.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 14c37481..e2f7de81 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -47,10 +47,12 @@ import VimeoNetworking // MARK: - Initialization - public init(name: String, backgroundSessionIdentifier: String, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) + public init(name: String, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) { let backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider) + backgroundSessionManager.session.configuration.sharedContainerIdentifier = sharedContainerIdentifier + super.init(sessionManager: backgroundSessionManager, name: name, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self From 92da34f782c59d2bffbe44e9a7ab345f2d0f4e0b Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 17 Apr 2018 22:25:18 -0400 Subject: [PATCH 036/149] Renamed file to shared given both old and new upload use API. Updated parameters for create video request to be compatible with API v3.4. --- ...VimeoRequestSerializer+SharedUpload.swift} | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) rename VimeoUpload/Upload/Networking/{Old Upload/VimeoRequestSerializer+OldUpload.swift => Shared/VimeoRequestSerializer+SharedUpload.swift} (92%) diff --git a/VimeoUpload/Upload/Networking/Old Upload/VimeoRequestSerializer+OldUpload.swift b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift similarity index 92% rename from VimeoUpload/Upload/Networking/Old Upload/VimeoRequestSerializer+OldUpload.swift rename to VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift index b1435e70..b9fff90e 100644 --- a/VimeoUpload/Upload/Networking/Old Upload/VimeoRequestSerializer+OldUpload.swift +++ b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift @@ -1,5 +1,5 @@ // -// VimeoRequestSerializer+Upload.swift +// VimeoRequestSerializer+SharedUpload.swift // VimeoUpload // // Created by Alfred Hanssen on 10/21/15. @@ -30,6 +30,21 @@ import VimeoNetworking extension VimeoRequestSerializer { + struct Constants + { + static let UploadKey = "upload" + static let ApproachKey = "approach" + static let SizeKey = "size" + + struct Approach + { + static let Streaming = "streaming" + static let Post = "post" + static let Pull = "pull" + static let TUS = "tus" + } + } + func myVideosRequest() throws -> NSMutableURLRequest { let url = URL(string: "/me/videos", relativeTo: VimeoBaseURL)! @@ -80,7 +95,9 @@ extension VimeoRequestSerializer throw error.error(byAddingDomain: UploadErrorDomain.Create.rawValue) } - return ["type": "streaming", "size": fileSize] + let fileSizeString = String(fileSize) + + return [Constants.UploadKey: [Constants.ApproachKey: Constants.Approach.Streaming, Constants.SizeKey: fileSizeString]] } func uploadVideoRequest(with source: URL, destination: String) throws -> NSMutableURLRequest From ca37a8f3529771ace3fff46d2683fa8db1028e30 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 17 Apr 2018 22:33:30 -0400 Subject: [PATCH 037/149] Made constants struct private. Updated parameter to use new pre-upload setting compatible with API v3.4. --- .../New Upload (Private)/VimeoRequestSerializer+Upload.swift | 4 ++-- .../Shared/VimeoRequestSerializer+SharedUpload.swift | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift index 0f331148..3ec67e60 100644 --- a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift +++ b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift @@ -1,5 +1,5 @@ // -// VimeoRequestSerializer+SimpleUpload.swift +// VimeoRequestSerializer+Upload.swift // VimeoUpload // // Created by Alfred Hanssen on 11/20/15. @@ -32,7 +32,7 @@ extension VimeoRequestSerializer func createVideoRequest(with url: URL, videoSettings: VideoSettings?) throws -> NSMutableURLRequest { var parameters = try self.createVideoRequestBaseParameters(url: url) - parameters["create_clip"] = "true" + parameters["_pre_upload"] = true if let videoSettings = videoSettings { diff --git a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift index b9fff90e..4a4e09d4 100644 --- a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift +++ b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift @@ -30,7 +30,7 @@ import VimeoNetworking extension VimeoRequestSerializer { - struct Constants + private struct Constants { static let UploadKey = "upload" static let ApproachKey = "approach" From 133e9ee6177a4fb0b8d27edcf3aa6b3eda74c2da Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 18 Apr 2018 16:02:00 -0400 Subject: [PATCH 038/149] Added renamed file to project. Replaced literals with constants. --- .../VimeoUpload.xcodeproj/project.pbxproj | 17 +++++++++++++---- .../VimeoRequestSerializer+Upload.swift | 8 +++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index f658cad3..1f2f62d8 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 3C53EC271D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */; }; 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */; }; 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */; }; + 3EC62D4E2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -51,7 +52,6 @@ AF40D5731CCE9DEB00753ABA /* VideoSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D52A1CCE9DEB00753ABA /* VideoSettings.swift */; }; AF40D5741CCE9DEB00753ABA /* VimeoRequestSerializer+Upload.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D52D1CCE9DEB00753ABA /* VimeoRequestSerializer+Upload.swift */; }; AF40D5751CCE9DEB00753ABA /* VimeoSessionManager+Upload.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D52E1CCE9DEB00753ABA /* VimeoSessionManager+Upload.swift */; }; - AF40D5761CCE9DEB00753ABA /* VimeoRequestSerializer+OldUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5301CCE9DEB00753ABA /* VimeoRequestSerializer+OldUpload.swift */; }; AF40D5771CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5311CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift */; }; AF40D5781CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5321CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift */; }; AF40D5791CCE9DEB00753ABA /* ConcurrentOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */; }; @@ -84,6 +84,7 @@ 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoResponseSerializer+Thumbnail.swift"; path = "Cameo/VimeoResponseSerializer+Thumbnail.swift"; sourceTree = ""; }; 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+ThumbnailUpload.swift"; path = "Cameo/VimeoSessionManager+ThumbnailUpload.swift"; sourceTree = ""; }; 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionOperation.swift; sourceTree = ""; }; + 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoRequestSerializer+SharedUpload.swift"; path = "../Shared/VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -125,7 +126,6 @@ AF40D52A1CCE9DEB00753ABA /* VideoSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VideoSettings.swift; sourceTree = ""; }; AF40D52D1CCE9DEB00753ABA /* VimeoRequestSerializer+Upload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+Upload.swift"; sourceTree = ""; }; AF40D52E1CCE9DEB00753ABA /* VimeoSessionManager+Upload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoSessionManager+Upload.swift"; sourceTree = ""; }; - AF40D5301CCE9DEB00753ABA /* VimeoRequestSerializer+OldUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+OldUpload.swift"; sourceTree = ""; }; AF40D5311CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoResponseSerializer+OldUpload.swift"; sourceTree = ""; }; AF40D5321CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoSessionManager+OldUpload.swift"; sourceTree = ""; }; AF40D5351CCE9DEB00753ABA /* ConcurrentOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentOperation.swift; sourceTree = ""; }; @@ -173,6 +173,15 @@ name = "Cameo (Private)"; sourceTree = ""; }; + 3EC62D4C2087D7FB001E8C00 /* Shared */ = { + isa = PBXGroup; + children = ( + 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */, + ); + name = Shared; + path = "New Group1"; + sourceTree = ""; + }; 5DE6B4A5D1C90E1783FCACAB /* Pods */ = { isa = PBXGroup; children = ( @@ -367,6 +376,7 @@ AF40D52B1CCE9DEB00753ABA /* Networking */ = { isa = PBXGroup; children = ( + 3EC62D4C2087D7FB001E8C00 /* Shared */, AF40D52C1CCE9DEB00753ABA /* New Upload (Private) */, AF40D52F1CCE9DEB00753ABA /* Old Upload */, ); @@ -385,7 +395,6 @@ AF40D52F1CCE9DEB00753ABA /* Old Upload */ = { isa = PBXGroup; children = ( - AF40D5301CCE9DEB00753ABA /* VimeoRequestSerializer+OldUpload.swift */, AF40D5311CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift */, AF40D5321CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift */, ); @@ -580,7 +589,6 @@ AF40D5841CCE9DEB00753ABA /* CreateVideoOperation.swift in Sources */, AF40D5831CCE9DEB00753ABA /* VideoOperation.swift in Sources */, AF40D56B1CCE9DEB00753ABA /* VideoDescriptor.swift in Sources */, - AF40D5761CCE9DEB00753ABA /* VimeoRequestSerializer+OldUpload.swift in Sources */, AF40D58A1CCE9DEB00753ABA /* RetryUploadOperation.swift in Sources */, AF40D5671CCE9DEB00753ABA /* DescriptorManagerTracker.swift in Sources */, AF40D5681CCE9DEB00753ABA /* UploadDescriptor.swift in Sources */, @@ -593,6 +601,7 @@ AF40D57A1CCE9DEB00753ABA /* DeleteVideoOperation.swift in Sources */, AF40D5851CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift in Sources */, 3C53EC251D219C8500B7AA6D /* CAMUploadReqest.swift in Sources */, + 3EC62D4E2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */, AF40D5571CCE9DEB00753ABA /* KeyedArchiver.swift in Sources */, AF40D5661CCE9DEB00753ABA /* VideoRefreshManager.swift in Sources */, AF40D5541CCE9DEB00753ABA /* DescriptorManager.swift in Sources */, diff --git a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift index 3ec67e60..c3056d6f 100644 --- a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift +++ b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift @@ -29,10 +29,16 @@ import VimeoNetworking extension VimeoRequestSerializer { + private struct Constants + { + static let PreUploadKey = "_pre_upload" + static let PreUploadDefaultValue = true + } + func createVideoRequest(with url: URL, videoSettings: VideoSettings?) throws -> NSMutableURLRequest { var parameters = try self.createVideoRequestBaseParameters(url: url) - parameters["_pre_upload"] = true + parameters[Constants.PreUploadKey] = Constants.PreUploadDefaultValue if let videoSettings = videoSettings { From acc0977ae5bcb818189c8a9bd44c9a82dc26e255 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Mon, 23 Apr 2018 17:58:33 -0400 Subject: [PATCH 039/149] Re-add missing file reference to project. --- .../VimeoUpload.xcodeproj/project.pbxproj | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 1f2f62d8..09e1eb30 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -13,7 +13,7 @@ 3C53EC271D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */; }; 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */; }; 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */; }; - 3EC62D4E2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */; }; + 3EC62D8D208E8D7B001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC62D8C208E8D7B001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -84,7 +84,7 @@ 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoResponseSerializer+Thumbnail.swift"; path = "Cameo/VimeoResponseSerializer+Thumbnail.swift"; sourceTree = ""; }; 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+ThumbnailUpload.swift"; path = "Cameo/VimeoSessionManager+ThumbnailUpload.swift"; sourceTree = ""; }; 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionOperation.swift; sourceTree = ""; }; - 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoRequestSerializer+SharedUpload.swift"; path = "../Shared/VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; + 3EC62D8C208E8D7B001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -173,13 +173,12 @@ name = "Cameo (Private)"; sourceTree = ""; }; - 3EC62D4C2087D7FB001E8C00 /* Shared */ = { + 3EC62D8B208E8D7B001E8C00 /* Shared */ = { isa = PBXGroup; children = ( - 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */, + 3EC62D8C208E8D7B001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */, ); - name = Shared; - path = "New Group1"; + path = Shared; sourceTree = ""; }; 5DE6B4A5D1C90E1783FCACAB /* Pods */ = { @@ -376,7 +375,7 @@ AF40D52B1CCE9DEB00753ABA /* Networking */ = { isa = PBXGroup; children = ( - 3EC62D4C2087D7FB001E8C00 /* Shared */, + 3EC62D8B208E8D7B001E8C00 /* Shared */, AF40D52C1CCE9DEB00753ABA /* New Upload (Private) */, AF40D52F1CCE9DEB00753ABA /* Old Upload */, ); @@ -601,7 +600,7 @@ AF40D57A1CCE9DEB00753ABA /* DeleteVideoOperation.swift in Sources */, AF40D5851CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift in Sources */, 3C53EC251D219C8500B7AA6D /* CAMUploadReqest.swift in Sources */, - 3EC62D4E2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */, + 3EC62D8D208E8D7B001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */, AF40D5571CCE9DEB00753ABA /* KeyedArchiver.swift in Sources */, AF40D5661CCE9DEB00753ABA /* VideoRefreshManager.swift in Sources */, AF40D5541CCE9DEB00753ABA /* DescriptorManager.swift in Sources */, From de1bb55df0bbe54dc6b967b58f41d05f01819839 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 24 Apr 2018 21:58:08 -0400 Subject: [PATCH 040/149] Re-added shared file. --- .../VimeoUpload.xcodeproj/project.pbxproj | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 1f2f62d8..48b0ae07 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -13,7 +13,7 @@ 3C53EC271D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */; }; 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */; }; 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */; }; - 3EC62D4E2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */; }; + 3EA4C84D209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -84,7 +84,7 @@ 3C53EC221D219C8500B7AA6D /* VimeoResponseSerializer+Thumbnail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoResponseSerializer+Thumbnail.swift"; path = "Cameo/VimeoResponseSerializer+Thumbnail.swift"; sourceTree = ""; }; 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+ThumbnailUpload.swift"; path = "Cameo/VimeoSessionManager+ThumbnailUpload.swift"; sourceTree = ""; }; 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionOperation.swift; sourceTree = ""; }; - 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoRequestSerializer+SharedUpload.swift"; path = "../Shared/VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; + 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -173,13 +173,12 @@ name = "Cameo (Private)"; sourceTree = ""; }; - 3EC62D4C2087D7FB001E8C00 /* Shared */ = { + 3EA4C84B209017FB009F3D9B /* Shared */ = { isa = PBXGroup; children = ( - 3EC62D4D2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift */, + 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */, ); - name = Shared; - path = "New Group1"; + path = Shared; sourceTree = ""; }; 5DE6B4A5D1C90E1783FCACAB /* Pods */ = { @@ -376,7 +375,7 @@ AF40D52B1CCE9DEB00753ABA /* Networking */ = { isa = PBXGroup; children = ( - 3EC62D4C2087D7FB001E8C00 /* Shared */, + 3EA4C84B209017FB009F3D9B /* Shared */, AF40D52C1CCE9DEB00753ABA /* New Upload (Private) */, AF40D52F1CCE9DEB00753ABA /* Old Upload */, ); @@ -601,7 +600,7 @@ AF40D57A1CCE9DEB00753ABA /* DeleteVideoOperation.swift in Sources */, AF40D5851CCE9DEB00753ABA /* ExportSessionExportCreateVideoOperation.swift in Sources */, 3C53EC251D219C8500B7AA6D /* CAMUploadReqest.swift in Sources */, - 3EC62D4E2087D82D001E8C00 /* VimeoRequestSerializer+SharedUpload.swift in Sources */, + 3EA4C84D209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift in Sources */, AF40D5571CCE9DEB00753ABA /* KeyedArchiver.swift in Sources */, AF40D5661CCE9DEB00753ABA /* VideoRefreshManager.swift in Sources */, AF40D5541CCE9DEB00753ABA /* DescriptorManager.swift in Sources */, From f05bb25e05621f1bce79e4f04651675fd65f20c8 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 24 Apr 2018 22:36:20 -0400 Subject: [PATCH 041/149] Broke out create file parameters. --- .../VimeoRequestSerializer+SharedUpload.swift | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift index 4a4e09d4..3142e9dc 100644 --- a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift +++ b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift @@ -59,9 +59,12 @@ extension VimeoRequestSerializer return request } + //old upload func createVideoRequest(with url: URL) throws -> NSMutableURLRequest { - let parameters = try self.createVideoRequestBaseParameters(url: url) + var parameters = try self.createFileSizeParameters(url: url) + + parameters["type"] = "streaming" let url = URL(string: "/me/videos", relativeTo: VimeoBaseURL)! @@ -99,6 +102,25 @@ extension VimeoRequestSerializer return [Constants.UploadKey: [Constants.ApproachKey: Constants.Approach.Streaming, Constants.SizeKey: fileSizeString]] } + + func createFileSizeParameters(url: URL) throws -> [String: Any] + { + let asset = AVURLAsset(url: url) + + let fileSize: Double + do + { + fileSize = try asset.fileSize() + } + catch let error as NSError + { + throw error.error(byAddingDomain: UploadErrorDomain.Create.rawValue) + } + + let fileSizeString = fileSize + + return [Constants.SizeKey: fileSizeString] + } func uploadVideoRequest(with source: URL, destination: String) throws -> NSMutableURLRequest { From 0532f5233ee3c18cb7ad7f1b41df412274640380 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 24 Apr 2018 23:07:19 -0400 Subject: [PATCH 042/149] Isolated updates to support API v3.4 to new upload only. --- .../VimeoRequestSerializer+Upload.swift | 14 ++++++- .../VimeoRequestSerializer+SharedUpload.swift | 41 ++++--------------- 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift index c3056d6f..a6cdbebf 100644 --- a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift +++ b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift @@ -33,11 +33,23 @@ extension VimeoRequestSerializer { static let PreUploadKey = "_pre_upload" static let PreUploadDefaultValue = true + static let ApproachKey = "approach" + static let ApproachDefaultValue = "streaming" + static let UploadKey = "upload" } func createVideoRequest(with url: URL, videoSettings: VideoSettings?) throws -> NSMutableURLRequest { - var parameters = try self.createVideoRequestBaseParameters(url: url) + // Create a dictionary containing the file size parameters + var uploadParameters = try self.createFileSizeParameters(url: url) + + // Add on the key-value pair for approach type + uploadParameters[Constants.ApproachKey] = Constants.ApproachDefaultValue + + // Store `uploadParameters` dictionary as the value to "upload" key inside `parameters` dictionary. + var parameters = [Constants.UploadKey : uploadParameters as Any] + + // Add on pre-upload key-value pair to `parameters` dictionary. parameters[Constants.PreUploadKey] = Constants.PreUploadDefaultValue if let videoSettings = videoSettings diff --git a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift index 3142e9dc..18515b1e 100644 --- a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift +++ b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift @@ -29,20 +29,13 @@ import AVFoundation import VimeoNetworking extension VimeoRequestSerializer -{ +{ private struct Constants { - static let UploadKey = "upload" - static let ApproachKey = "approach" + static let CreateVideoURI = "/me/videos" + static let TypeKey = "type" + static let TypeDefaultValue = "streaming" static let SizeKey = "size" - - struct Approach - { - static let Streaming = "streaming" - static let Post = "post" - static let Pull = "pull" - static let TUS = "tus" - } } func myVideosRequest() throws -> NSMutableURLRequest @@ -58,15 +51,14 @@ extension VimeoRequestSerializer return request } - - //old upload + func createVideoRequest(with url: URL) throws -> NSMutableURLRequest { var parameters = try self.createFileSizeParameters(url: url) - parameters["type"] = "streaming" + parameters[Constants.TypeKey] = Constants.TypeDefaultValue - let url = URL(string: "/me/videos", relativeTo: VimeoBaseURL)! + let url = URL(string: Constants.CreateVideoURI, relativeTo: VimeoBaseURL)! return try self.createVideoRequest(with: url, parameters: parameters) } @@ -83,25 +75,6 @@ extension VimeoRequestSerializer return request } - - func createVideoRequestBaseParameters(url: URL) throws -> [String: Any] - { - let asset = AVURLAsset(url: url) - - let fileSize: Double - do - { - fileSize = try asset.fileSize() - } - catch let error as NSError - { - throw error.error(byAddingDomain: UploadErrorDomain.Create.rawValue) - } - - let fileSizeString = String(fileSize) - - return [Constants.UploadKey: [Constants.ApproachKey: Constants.Approach.Streaming, Constants.SizeKey: fileSizeString]] - } func createFileSizeParameters(url: URL) throws -> [String: Any] { From 260dba480a1ebfa848df923e151abce6c4222c78 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 24 Apr 2018 22:36:20 -0400 Subject: [PATCH 043/149] Broke out create file parameters. --- .../VimeoRequestSerializer+SharedUpload.swift | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift index 4a4e09d4..3142e9dc 100644 --- a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift +++ b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift @@ -59,9 +59,12 @@ extension VimeoRequestSerializer return request } + //old upload func createVideoRequest(with url: URL) throws -> NSMutableURLRequest { - let parameters = try self.createVideoRequestBaseParameters(url: url) + var parameters = try self.createFileSizeParameters(url: url) + + parameters["type"] = "streaming" let url = URL(string: "/me/videos", relativeTo: VimeoBaseURL)! @@ -99,6 +102,25 @@ extension VimeoRequestSerializer return [Constants.UploadKey: [Constants.ApproachKey: Constants.Approach.Streaming, Constants.SizeKey: fileSizeString]] } + + func createFileSizeParameters(url: URL) throws -> [String: Any] + { + let asset = AVURLAsset(url: url) + + let fileSize: Double + do + { + fileSize = try asset.fileSize() + } + catch let error as NSError + { + throw error.error(byAddingDomain: UploadErrorDomain.Create.rawValue) + } + + let fileSizeString = fileSize + + return [Constants.SizeKey: fileSizeString] + } func uploadVideoRequest(with source: URL, destination: String) throws -> NSMutableURLRequest { From 3347c6988ec2f9bb53883cfcfb5f0cc19a3ad9d2 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 24 Apr 2018 23:07:19 -0400 Subject: [PATCH 044/149] Isolated updates to support API v3.4 to new upload only. --- .../VimeoRequestSerializer+Upload.swift | 14 ++++++- .../VimeoRequestSerializer+SharedUpload.swift | 41 ++++--------------- 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift index c3056d6f..a6cdbebf 100644 --- a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift +++ b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift @@ -33,11 +33,23 @@ extension VimeoRequestSerializer { static let PreUploadKey = "_pre_upload" static let PreUploadDefaultValue = true + static let ApproachKey = "approach" + static let ApproachDefaultValue = "streaming" + static let UploadKey = "upload" } func createVideoRequest(with url: URL, videoSettings: VideoSettings?) throws -> NSMutableURLRequest { - var parameters = try self.createVideoRequestBaseParameters(url: url) + // Create a dictionary containing the file size parameters + var uploadParameters = try self.createFileSizeParameters(url: url) + + // Add on the key-value pair for approach type + uploadParameters[Constants.ApproachKey] = Constants.ApproachDefaultValue + + // Store `uploadParameters` dictionary as the value to "upload" key inside `parameters` dictionary. + var parameters = [Constants.UploadKey : uploadParameters as Any] + + // Add on pre-upload key-value pair to `parameters` dictionary. parameters[Constants.PreUploadKey] = Constants.PreUploadDefaultValue if let videoSettings = videoSettings diff --git a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift index 3142e9dc..18515b1e 100644 --- a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift +++ b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift @@ -29,20 +29,13 @@ import AVFoundation import VimeoNetworking extension VimeoRequestSerializer -{ +{ private struct Constants { - static let UploadKey = "upload" - static let ApproachKey = "approach" + static let CreateVideoURI = "/me/videos" + static let TypeKey = "type" + static let TypeDefaultValue = "streaming" static let SizeKey = "size" - - struct Approach - { - static let Streaming = "streaming" - static let Post = "post" - static let Pull = "pull" - static let TUS = "tus" - } } func myVideosRequest() throws -> NSMutableURLRequest @@ -58,15 +51,14 @@ extension VimeoRequestSerializer return request } - - //old upload + func createVideoRequest(with url: URL) throws -> NSMutableURLRequest { var parameters = try self.createFileSizeParameters(url: url) - parameters["type"] = "streaming" + parameters[Constants.TypeKey] = Constants.TypeDefaultValue - let url = URL(string: "/me/videos", relativeTo: VimeoBaseURL)! + let url = URL(string: Constants.CreateVideoURI, relativeTo: VimeoBaseURL)! return try self.createVideoRequest(with: url, parameters: parameters) } @@ -83,25 +75,6 @@ extension VimeoRequestSerializer return request } - - func createVideoRequestBaseParameters(url: URL) throws -> [String: Any] - { - let asset = AVURLAsset(url: url) - - let fileSize: Double - do - { - fileSize = try asset.fileSize() - } - catch let error as NSError - { - throw error.error(byAddingDomain: UploadErrorDomain.Create.rawValue) - } - - let fileSizeString = String(fileSize) - - return [Constants.UploadKey: [Constants.ApproachKey: Constants.Approach.Streaming, Constants.SizeKey: fileSizeString]] - } func createFileSizeParameters(url: URL) throws -> [String: Any] { From 1807ae473db5226735f823ef8028e7a8fc299b75 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Thu, 26 Apr 2018 10:16:49 -0400 Subject: [PATCH 045/149] Updated VimeoNetworking source to dev branch. Made protocol to abstract the object received from API to complete upload. Still unresolved - we broadcast the video so that the cell can update on the settings list, but it seems this isn't needed until settings are set. --- .../VideoSettingsViewController.swift | 22 +- .../Protocols/UploadInterfacing.swift | 33 + Podfile | 6 +- Podfile.lock | 12 +- .../VimeoNetworking.podspec.json | 4 +- Pods/Manifest.lock | 12 +- Pods/Pods.xcodeproj/project.pbxproj | 1574 +++++++++-------- .../VimeoNetworking/Info.plist | 2 +- .../VimeoNetworking-umbrella.h | 2 - Pods/VimeoNetworking/README.md | 35 +- .../Sources/AuthenticationController.swift | 14 +- .../VimeoNetworking/Sources/Constants.swift | 2 +- .../VimeoNetworking/Sources/ErrorCode.swift | 21 +- .../Sources/Models/PinCodeInfo.swift | 12 +- .../Sources/Models/PlayProgress.swift | 2 +- .../Sources/Models/Spatial.swift | 4 +- .../Sources/Models/Subscription.swift | 50 +- .../Models/SubscriptionCollection.swift | 6 +- .../Sources/Models/VIMConnection.h | 2 + .../Sources/Models/VIMConnection.m | 3 + .../Sources/Models/VIMInteraction.h | 3 + .../Sources/Models/VIMInteraction.m | 1 + .../Sources/Models/VIMLive.swift | 142 ++ .../{VIMSizeQuota.m => VIMLiveChat.swift} | 39 +- .../Sources/Models/VIMLiveChatUser.swift | 98 + ...IMUploadQuota.m => VIMLiveHeartbeat.swift} | 40 +- .../Sources/Models/VIMLiveQuota.swift | 59 + .../{VIMSizeQuota.h => VIMLiveStreams.swift} | 28 +- .../{VIMUploadQuota.h => VIMLiveTime.swift} | 35 +- .../Sources/Models/VIMNotification.h | 5 +- .../Sources/Models/VIMNotification.m | 3 +- .../Models/VIMNotificationsConnection.h | 1 + .../Models/VIMNotificationsConnection.m | 25 + .../Sources/Models/VIMPeriodic.swift | 19 + .../Sources/Models/VIMProgrammedContent.swift | 12 +- .../Sources/Models/VIMQuantityQuota.m | 4 +- .../Sources/Models/VIMReviewPage.swift | 21 + .../Sources/Models/VIMSizeQuota.swift | 18 + .../Sources/Models/VIMSpace.swift | 19 + .../Sources/Models/VIMUpload.swift | 102 ++ .../Sources/Models/VIMUploadQuota.swift | 43 + .../VimeoNetworking/Sources/Models/VIMUser.h | 7 +- .../VimeoNetworking/Sources/Models/VIMUser.m | 49 +- .../Sources/Models/VIMUserBadge.h | 2 + .../Sources/Models/VIMUserBadge.m | 10 + .../VimeoNetworking/Sources/Models/VIMVideo.h | 56 + .../VimeoNetworking/Sources/Models/VIMVideo.m | 62 +- .../Sources/Models/VIMVideoPlayFile.h | 3 + .../Sources/Models/VIMVideoPlayFile.m | 13 +- .../Sources/Request+Authentication.swift | 5 +- .../Sources/Request+Video.swift | 6 +- .../VimeoNetworking/Sources/Request.swift | 2 +- .../VimeoNetworking/Sources/Scope.swift | 21 +- .../VimeoNetworking/Sources/VimeoClient.swift | 3 +- .../VimeoNetworking/Sources/VimeoNetworking.h | 2 - .../Sources/VimeoRequestSerializer.swift | 66 +- .../Sources/VimeoResponseSerializer.swift | 3 +- .../VimeoSessionManager+Constructors.swift | 16 +- .../UploadDescriptor.swift | 23 +- .../VimeoSessionManager+Upload.swift | 6 +- .../Async/CreateVideoOperation.swift | 2 +- ...ortSessionExportCreateVideoOperation.swift | 4 +- 62 files changed, 1908 insertions(+), 988 deletions(-) create mode 100644 Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift rename Pods/VimeoNetworking/VimeoNetworking/Sources/Models/{VIMSizeQuota.m => VIMLiveChat.swift} (56%) create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift rename Pods/VimeoNetworking/VimeoNetworking/Sources/Models/{VIMUploadQuota.m => VIMLiveHeartbeat.swift} (65%) create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift rename Pods/VimeoNetworking/VimeoNetworking/Sources/Models/{VIMSizeQuota.h => VIMLiveStreams.swift} (64%) rename Pods/VimeoNetworking/VimeoNetworking/Sources/Models/{VIMUploadQuota.h => VIMLiveTime.swift} (55%) create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift index ddc736ff..fe9a53c7 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift @@ -55,7 +55,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate static let UploadInitiatedNotification = "VideoSettingsViewControllerUploadInitiatedNotification" static let NibName = "VideoSettingsViewController" private static let PreUploadViewPrivacy = "pre_upload" - + // MARK: @IBOutlet weak var titleTextField: UITextField! @@ -74,7 +74,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate // MARK: private var url: URL? - private var uploadTicket: VIMUploadTicket? + private var video: VIMVideo? private var videoSettings: VideoSettings? // MARK: @@ -161,7 +161,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate if operation.error == nil { strongSelf.url = operation.url! - strongSelf.uploadTicket = operation.uploadTicket! + strongSelf.video = operation.video! strongSelf.startUpload() } @@ -174,9 +174,9 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate } else { - if let video = strongSelf.uploadTicket?.video, let viewPrivacy = video.privacy?.view, viewPrivacy != type(of: strongSelf).PreUploadViewPrivacy + if let video = strongSelf.video, let viewPrivacy = video.privacy?.view, viewPrivacy != type(of: strongSelf).PreUploadViewPrivacy { - NotificationCenter.default.post(name: Notification.Name(rawValue: VideoSettingsViewController.UploadInitiatedNotification), object: video) + NotificationCenter.default.post(name: Notification.Name(rawValue: VideoSettingsViewController.UploadInitiatedNotification), object: strongSelf.video) strongSelf.activityIndicatorView.stopAnimating() strongSelf.dismiss(animated: true, completion: nil) @@ -197,10 +197,10 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func startUpload() { let url = self.url! - let uploadTicket = self.uploadTicket! + let video = self.video! let assetIdentifier = self.asset.identifier - let descriptor = UploadDescriptor(url: url, uploadTicket: uploadTicket) + let descriptor = UploadDescriptor(url: url, video: video) descriptor.identifier = assetIdentifier NewVimeoUploader.sharedInstance.uploadVideo(descriptor: descriptor) @@ -214,7 +214,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate self.activityIndicatorView.stopAnimating() _ = self.navigationController?.popViewController(animated: true) - if let videoUri = self.uploadTicket?.video?.uri + if let videoUri = self.video?.uri { NewVimeoUploader.sharedInstance.cancelUpload(videoUri: videoUri) } @@ -238,9 +238,9 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate } else { - if let video = self.uploadTicket?.video, let viewPrivacy = video.privacy?.view, viewPrivacy != VideoSettingsViewController.PreUploadViewPrivacy + if let video = self.video, let viewPrivacy = video.privacy?.view, viewPrivacy != VideoSettingsViewController.PreUploadViewPrivacy { - NotificationCenter.default.post(name: Notification.Name(rawValue: type(of: self).UploadInitiatedNotification), object: video) + NotificationCenter.default.post(name: Notification.Name(rawValue: type(of: self).UploadInitiatedNotification), object: self.video) self.dismiss(animated: true, completion: nil) } @@ -301,7 +301,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func applyVideoSettings() { - guard let videoURI = self.uploadTicket?.video?.uri, let videoSettings = self.videoSettings else + guard let videoURI = self.video?.uri, let videoSettings = self.videoSettings else { let alertController = UIAlertController( title: Constants.TwoStepUploadPermissionAlert.Title, diff --git a/Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift b/Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift new file mode 100644 index 00000000..ce0376fb --- /dev/null +++ b/Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift @@ -0,0 +1,33 @@ +// +// UploadInterfacing.swift +// VimeoUpload-iOS +// +// Created by Lehrer, Nicole on 4/25/18. +// Copyright © 2018 Alfie Hanssen. All rights reserved. +// + +/// Describes the properties required to complete an upload +public protocol UploadInterfacing +{ + var viewPrivacy: String? { get } + var videoURI: String? { get } + var uploadLink: String? { get } +} + +extension VIMVideo: UploadInterfacing +{ + public var viewPrivacy: String? + { + return self.privacy?.view + } + + public var videoURI: String? + { + return self.uri + } + + public var uploadLink: String? + { + return self.upload?.uploadLink + } +} diff --git a/Podfile b/Podfile index edefcd46..6c4ad1e7 100644 --- a/Podfile +++ b/Podfile @@ -6,14 +6,14 @@ project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target 'VimeoUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'VIM-6117-deprecate-upload-ticket' project 'Framework/VimeoUpload/VimeoUpload.xcodeproj' end target :'VimeoUpload-iOS' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'VIM-6117-deprecate-upload-ticket' project 'Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj' target "VimeoUpload-iOSTests" do @@ -24,7 +24,7 @@ end target :'VimeoUpload-iOS-OldUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'VIM-6117-deprecate-upload-ticket' project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target "VimeoUpload-iOS-OldUploadTests" do diff --git a/Podfile.lock b/Podfile.lock index 1555179d..3f3fb348 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -14,26 +14,26 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (0.0.1): + - VimeoNetworking (3.0.1): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `VIM-6117-deprecate-upload-ticket`) EXTERNAL SOURCES: VimeoNetworking: - :branch: develop + :branch: VIM-6117-deprecate-upload-ticket :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: f50522749886d01fb0c0acceb3e159ac8dc0c4de + :commit: 4fee30541872f6453cf77f024cebc6d11a3fe338 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 17f8d451e4a168044f619315d0cd821669676e67 + VimeoNetworking: 5d30e46c8561e2e0a7472e93b915ec1a26a6acfd -PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 +PODFILE CHECKSUM: 9c23c184f803bf34c9406f0f738866d7033eaa6f COCOAPODS: 1.2.0 diff --git a/Pods/Local Podspecs/VimeoNetworking.podspec.json b/Pods/Local Podspecs/VimeoNetworking.podspec.json index dcd8eb61..e23ad152 100644 --- a/Pods/Local Podspecs/VimeoNetworking.podspec.json +++ b/Pods/Local Podspecs/VimeoNetworking.podspec.json @@ -1,6 +1,6 @@ { "name": "VimeoNetworking", - "version": "0.0.1", + "version": "3.0.1", "summary": "A library for interacting with the Vimeo API.", "description": "An iOS/tvOS library for interacting with the Vimeo API.", "homepage": "https://github.com/vimeo/VimeoNetworking", @@ -25,7 +25,7 @@ "requires_arc": true, "source": { "git": "https://github.com/vimeo/VimeoNetworking.git", - "tag": "0.0.1" + "tag": "3.0.1" }, "source_files": "VimeoNetworking/Sources/**/*.{h,m,swift}", "resources": "VimeoNetworking/Resources/**/*.*", diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 1555179d..3f3fb348 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -14,26 +14,26 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (0.0.1): + - VimeoNetworking (3.0.1): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `VIM-6117-deprecate-upload-ticket`) EXTERNAL SOURCES: VimeoNetworking: - :branch: develop + :branch: VIM-6117-deprecate-upload-ticket :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: f50522749886d01fb0c0acceb3e159ac8dc0c4de + :commit: 4fee30541872f6453cf77f024cebc6d11a3fe338 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 17f8d451e4a168044f619315d0cd821669676e67 + VimeoNetworking: 5d30e46c8561e2e0a7472e93b915ec1a26a6acfd -PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 +PODFILE CHECKSUM: 9c23c184f803bf34c9406f0f738866d7033eaa6f COCOAPODS: 1.2.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 6b50c4f6..2f9cd2f0 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,207 +7,216 @@ objects = { /* Begin PBXBuildFile section */ - 00C05031BBA5BA48A00FE41348F41BDA /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 49CF485D82938742667C3CB53CCE9FED /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02605A6A0E2F37A37F765B54D8435EFE /* VIMCredit.m in Sources */ = {isa = PBXBuildFile; fileRef = 029DD25355A20155F5263F91BB7FEB40 /* VIMCredit.m */; }; + 006C915A85EACBE60F75135986A6BDB4 /* VIMVideoFairPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C5E4251390579CA8A4647B705BD6DD41 /* VIMVideoFairPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00C05031BBA5BA48A00FE41348F41BDA /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 714AC1F0B428E041A21A3D9426A0F56D /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0122CB804FBC8DBEDE9E3F1C5DE370E7 /* NSURLSessionConfiguration+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8614CB362CB4E3C9E03FCDFF2B3727C /* NSURLSessionConfiguration+Extensions.swift */; }; + 01BFDB7E7E77498861406FE7F563EC2F /* Request+Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D02A2893866B878CFEE338D26DC5313 /* Request+Video.swift */; }; + 01C097A72389242F9B53E8A8B21AD7E8 /* VIMPictureCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = AB1A7C0E9CF186DC326357962BEC7AF5 /* VIMPictureCollection.m */; }; 032716918FA2B8150F25BEA44FC1E35F /* Pods-VimeoUpload-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 048DF2FE55300A19AE363640BE8C2CA2 /* VIMUserBadge.h in Headers */ = {isa = PBXBuildFile; fileRef = 281BE9E67D00EF177F449FA07B3FB9C6 /* VIMUserBadge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 080339FE8D3D0888FDF6C05AFF7FC108 /* Mappable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2425F9FA4CEFF602F6F4A053F70B656 /* Mappable.swift */; }; - 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 994751133E5FF4982C5BCE1CAAB6A78B /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FF332A4A3B2E0FC72A18026068678FA /* VIMVideoFairPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = E062278A9F4389EDD1742AD9257524FC /* VIMVideoFairPlayFile.m */; }; - 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A255F1E920EA10EF5D5D5D29ABF77DA /* UIActivityIndicatorView+AFNetworking.m */; }; - 1439E0621A820C1E240A135EDB917A78 /* VimeoReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D394EBCF2013AC95F4F316F6683EA0C /* VimeoReachability.swift */; }; - 173FC74D6CDD662BB7A7820D48E92CAF /* VIMCredit.h in Headers */ = {isa = PBXBuildFile; fileRef = 223024B664957866BB751A1110F1B9F0 /* VIMCredit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 178CD9C9934A47118DBF6ABCEF74DE0C /* VIMComment.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D485D3D976CC90259E83A2E9452E4A9 /* VIMComment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 187D2040010AAE21EB338F950BA62F30 /* Request+Trigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0279AA9EFAF1A2B4A5CBF25821A5F353 /* Request+Trigger.swift */; }; - 19A239662363D8BFC6BA9BF3D5067368 /* Request+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6671E602410D6092439152EADE23607 /* Request+Authentication.swift */; }; - 1B098FF61D835DC05E4818A260B6954F /* digicert-sha2.cer in Resources */ = {isa = PBXBuildFile; fileRef = D1F5A4A4953624BBBEF0F5FCB89E5137 /* digicert-sha2.cer */; }; - 1B55EABBDFF3E11D188FC728597AD739 /* VIMInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = CC338E19D1B0972E20EE7505BA2A23D2 /* VIMInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C415F8572AB31B576839CD7D07F5ACA /* VIMThumbnailUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = F4690B8E90016909BB0EA81C311C0953 /* VIMThumbnailUploadTicket.m */; }; - 1CBE32C0E7A5B487D85887CECE9070E0 /* VIMVideoProgressiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = D112466303A0600AF69CB9E02EAA27E5 /* VIMVideoProgressiveFile.m */; }; - 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 13485EB89727E5D2EC453EE2ACF262B1 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20B1A3A44C5B99E3C0E0111980E2D166 /* VIMUploadQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = D91BABF53F46F9B94488819367CB559E /* VIMUploadQuota.m */; }; - 2158EA68FF692EC0E79E21A1868DDADC /* VIMVideo+VOD.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EDADBD03E681FF52A2DE74B6E5A00A4 /* VIMVideo+VOD.m */; }; - 247BEC62A7A059F149C2F1DEE37EC117 /* VimeoSessionManager+Constructors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E61F34F2E6B1E414299E9F4D8B5FFF8 /* VimeoSessionManager+Constructors.swift */; }; - 25C7F1E0679C775BC68F3F91A41898AB /* VIMGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2516A7CB0A50CB9CD1053367E53327 /* VIMGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 290A5C980B9B4A45125C22A3C6F4D52E /* VIMConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 635406386C5C563BE8F30C456CF4EBDE /* VIMConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 294377C03BC03F5CF2CCD7992872ECEF /* VIMVideoPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 0627D0F046BC1A05A689F1B332F10429 /* VIMVideoPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 080981D0829053FB0D91C3AC721C22E6 /* VIMUploadQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */; }; + 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 34C6DA693B07265C4DCBAE97EE2D5594 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 110895699164F5489FEA1B5862189EF1 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2306B631FE1354BD0E5B81E1EB94D032 /* AppConfiguration.swift */; }; + 12F8248721BA64F46CB0036E970CA4D2 /* VIMPictureCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = E5B2FE6582270D74BE0CBFC7A389FC8A /* VIMPictureCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 13B2648F4C8600A30243D27AC672A0A5 /* VIMLiveHeartbeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA4D18A3DC38EBDE55B7E5C609CC71FC /* VIMLiveHeartbeat.swift */; }; + 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F7ABBC91F9865BF0C8F0A5C033AC9F63 /* UIActivityIndicatorView+AFNetworking.m */; }; + 1454895436E2AEDC9FBE797C83971E31 /* VIMSeason.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F2E19F2D2D74E49166614264DA1D27 /* VIMSeason.m */; }; + 167ACEC255DCBED6BFDC64FAD93DC1BA /* VIMCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 24231BD46B3810C7B980D8C357456050 /* VIMCategory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 173092A45F57338768EE067ECFDF126F /* ResponseCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */; }; + 17AF6E91051C40A1909641FBD81CFCE6 /* VIMPolicyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */; }; + 1A19B0C55294E4016F6F29DF11B37286 /* VIMRecommendation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0338339E81D84468FC3FEC3B4E0B751B /* VIMRecommendation.m */; }; + 1B098FF61D835DC05E4818A260B6954F /* digicert-sha2.cer in Resources */ = {isa = PBXBuildFile; fileRef = 7AC12ADD13D05812352645C5BAEFD99D /* digicert-sha2.cer */; }; + 1C762B3B85A259872E5A315B3C9FEC2F /* VIMVideo+VOD.m in Sources */ = {isa = PBXBuildFile; fileRef = 594B408BD401FB948979F4BDA15CC9EA /* VIMVideo+VOD.m */; }; + 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F014323346C8E3E2BEC80F2E5786B9C9 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E555F7B50932D19657F6BACF6482891 /* VIMVideoPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AE31BCA21D12620C2D9B0F9386A7EA /* VIMVideoPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E8B612557640DDAACEB2240D859E51B /* Request+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2712EE1D549F6E58A7BB81334B608446 /* Request+Cache.swift */; }; + 1F0BE13B306FC15641F3B48939AD0389 /* VIMTrigger.m in Sources */ = {isa = PBXBuildFile; fileRef = 770CD4C87AE1AA8397D0F6E251DCC540 /* VIMTrigger.m */; }; + 21F296CA85D7E8EDCE29C153376A8E20 /* VIMUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7478AE1D1B107593F1494EC8E78E8B8 /* VIMUpload.swift */; }; + 25178C93155A9DC0484E1F299E2F7CB7 /* VimeoNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9916C267E80CB2567193FDE98D596CCC /* VimeoNetworking-dummy.m */; }; + 25A450E1078CE9EB3462CF2D94651C0D /* VIMVideoDRMFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 6009E10F0E97820B85D42C5B1B5EADFB /* VIMVideoDRMFiles.m */; }; + 2697B3FCADF5B44B1B19381D7B54F194 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40F99392B8A59926F90CF0019AC7D57D /* Result.swift */; }; + 26F8805B8DFCDA44EC786A09D93900DA /* VIMPeriodic.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFF010DC16DF0D1F72CC6D06650AFAB1 /* VIMPeriodic.swift */; }; 2945C5B22511F26C276B9C23F35A10DC /* AFNetworking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */; }; - 29476636EA86BEFC4CB833D3BB7A52D7 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 37C980B8A834DB882EE016253A514531 /* AFURLRequestSerialization.m */; }; - 29F875173B766FA11C5852EA61C674DC /* VIMVideoUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A59DE65C23DA87346FB7BB1F08A38182 /* VIMVideoUtils.m */; }; - 2B0705CC26A4CBEE32A5A60284AED35B /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = BC9E61ED1EDFE2CD20FA90CF00D4608B /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D99923831FFCE9F73C0C7D1E9F850E2 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = E658A3C4548684F7BC6D6A4843EBEE23 /* AppConfiguration.swift */; }; - 2E50A1D999933C0305B3BD6C8E3DB6A8 /* VIMUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 49FDC86C4F0DDC07BF2B3A89084F05AF /* VIMUser.m */; }; - 301E7201FA2B9D755BCB08E3159E9F50 /* Request+Soundtrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A287772AED26189394F852F1383AC103 /* Request+Soundtrack.swift */; }; + 29476636EA86BEFC4CB833D3BB7A52D7 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BB9383C2F5F90FE89247B5400744EEE /* AFURLRequestSerialization.m */; }; + 2B0705CC26A4CBEE32A5A60284AED35B /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = CFAE1CB42591FDBB0E3C6CDA2D9D8EBE /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BE918B073FD534F3D63785B26F34726 /* VIMBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = A250189A49355B43BD9E62364DDB456F /* VIMBadge.swift */; }; + 2D8D15E021ED742C95A7893F7A3877DC /* VIMVideoUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 50CF7C4EB12469B6AD2059AF45FA8ECB /* VIMVideoUtils.m */; }; + 2F3A5EFEDFA43593DC5AA806D91BFA5A /* VIMInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */; }; + 2F4D4E3413C1336621AD3EF5461281C6 /* Request+Picture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300CFD20A787C853925F7BAE4CBFAA57 /* Request+Picture.swift */; }; 30F0BAE1DBB79BBB6CBD957EA8B89E4B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */; }; - 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 9181B76CF70F368A91B6164CF5EA35AF /* UIButton+AFNetworking.m */; }; - 325DB73E71BF50607177ED27D34C4DEA /* VIMInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = D8008689D0B9CEE5A8B4F22EDD838235 /* VIMInteraction.m */; }; - 32F90DCD5121984682C68D40A51EC126 /* VIMThumbnailUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = 58E8E3B2AB8BBBBA38D3F57103C1E48D /* VIMThumbnailUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 331895E3C644AC16BE2DFF952ACA9A1B /* VIMPolicyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C6F4E723ED9B6BE8833278899E2B7A /* VIMPolicyDocument.m */; }; - 341C039B056DC8521ACB07FDC4857104 /* VIMCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 23AB835CE25AE0CA04362D10838A3CF0 /* VIMCategory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34C88657FE7ABE9F833623F94952D253 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2A360A317E5BEEB0074445003EDB17 /* UIProgressView+AFNetworking.m */; }; + 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 67584EC80399FD96630D745DA4D1A98F /* UIButton+AFNetworking.m */; }; + 327BE3456189E37F229074A8E0E59D67 /* Request+ProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE40B3ABF25113AD8DB2293E39C0B740 /* Request+ProgrammedContent.swift */; }; + 34ACDFAC012CB5AE7996D0B1157ED336 /* VIMCredit.h in Headers */ = {isa = PBXBuildFile; fileRef = B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 34C88657FE7ABE9F833623F94952D253 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A764F24CBBAA6CD584EE0CBFB5F80D40 /* UIProgressView+AFNetworking.m */; }; 350E7D287CD9C8932489485A5BFD6F87 /* Pods-VimeoUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35169A4520324E50813E653E223FA16F /* VIMAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = D53F12E8EBC660E39EA3C8787CA543C4 /* VIMAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35CBB7B255FD8D412AFCECBC4311A847 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 927C6F167862BCAC06F4E08000EB8C58 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 39A7BA428B81014747047554360D5933 /* VIMComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B670858BCB563B5FDA0DFAF36BAC42E /* VIMComment.m */; }; - 39B6EA71EDF5F8DDFEE1E4F5BEA0159B /* VIMVideoDASHFile.m in Sources */ = {isa = PBXBuildFile; fileRef = EF00725EFACBAD93B7F4DF1A20DC1F42 /* VIMVideoDASHFile.m */; }; - 39C4E7D235F2488DC19D3F16FFF5EF30 /* VIMGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = FF858E05AAA86C6C60607DC47DA2B2C9 /* VIMGroup.m */; }; + 35CBB7B255FD8D412AFCECBC4311A847 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 4148FF8C4708BAD38593A015777E7E41 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */; }; - 3BA7D30869081B9F81B6AD4DB1F37EA2 /* Request+Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8251D7E0AE21801085F5938A385FEECA /* Request+Notifications.swift */; }; - 3D0097FB9A164EF53868F633A5D83647 /* Request+User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D775ED9A8AEEA1BBA968B5740A34BFD /* Request+User.swift */; }; - 3DB6964EE0B28369CE1F7A6892E75CCA /* VIMVideoProgressiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = D3BA141A5553BAF7C116D19D1C669DC6 /* VIMVideoProgressiveFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3DD477AEFC34A1B8BE6C21CB3737112D /* VIMSoundtrack.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AF82FDAADDBD52AD4A5E5FD40451B8F /* VIMSoundtrack.m */; }; + 3B01A1344CDDAD474BAB3A4972534FF4 /* VIMVODItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */; }; + 3C178E120BAF6B59E24F466C8FF23D6B /* VIMNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3E5288CBF6B2BE080B33EB12E809F2B4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 40630E6FBAF3FA1BA0316B7DEAB82F44 /* VIMVideo+VOD.h in Headers */ = {isa = PBXBuildFile; fileRef = 149A190283760F475F91178FCB276A53 /* VIMVideo+VOD.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 409A333CEF46B3875FD07DFD2D9C351B /* AuthenticationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A17090BB86BF96FF7E88156C3CB28957 /* AuthenticationController.swift */; }; + 3E9017BD1F6A95F49D9534FED7AEE8E0 /* VimeoSessionManager+Constructors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */; }; 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; + 42002EAFB3E488172644B9CCEEBBDD5E /* VIMVideoFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C8E3687C68FDA0D536295AA785351E89 /* VIMVideoFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 42AF1BB1ED090CC9E588A463441D09E3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */; }; - 430264544D67783EE06E5CBD9F8A7538 /* VIMCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B92013945EAA4735C74F5F20F119CB /* VIMCategory.m */; }; - 43E008C211B853777039F3785D922B98 /* VIMBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C550175B7EC7075E2835E8C7DCC2723F /* VIMBadge.swift */; }; - 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F6FB24A5536DD004B48F00834B72CAAA /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45F802D04B3BE0CAEC586C2F3016027B /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F5BC750D923B3B868099617A48936CF /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A23F6E3249A977997C8255519997C806 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44C4F1F6F4236CB76C0C34FFFBEC9E93 /* VimeoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98158361BFB9C60E8591A14756CDA100 /* VimeoClient.swift */; }; + 455719CCD0654F72FBFCF510DE328339 /* VIMVideoDASHFile.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D5EE1E0744442AC49E909AD0D768A9 /* VIMVideoDASHFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 45F802D04B3BE0CAEC586C2F3016027B /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = AC1504799A29B9D2BC4470E3E39BCA33 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 466C821E26B82F57C0936DE3A6F16554 /* VIMVideoPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B18CFCBFD591833D9E6A8BE1F1172C /* VIMVideoPreference.m */; }; + 46DE5BBE30FCA924541AC026D793A3D7 /* VIMVideoDASHFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FD22B103D648342069FE779359C9A56 /* VIMVideoDASHFile.m */; }; 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47EEFB29B92A111BE2E154B699814BBF /* VIMVODItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C5391EE3E5EBC61C92F45484F77F90B /* VIMVODItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C5624A087C10DE994D4F380D76D11CD8 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DE0E38A99298F3EF954325E154AA215 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49256D3D8A3D5ECF3865BD63A889E783 /* VIMLiveStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A751CF37C60078D4E14FD77EABB59EA /* VIMLiveStreams.swift */; }; 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F4DAAC9FD07C2F53A8FCAB14DDC976D /* VIMSeason.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BD0889F5B218566401FFF6EFC7448B1 /* VIMSeason.m */; }; - 51047C1945103943F70BEADE83725630 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = D24A7C1D41EE2BA30BB03DAF0C03B000 /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57782C2C26EC21E455E8B710E011BBAE /* VIMPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = A33177A8F3A1862EEA26D30A1D63CC07 /* VIMPicture.m */; }; - 57A40C3321A9157AB2711E100C58DD2E /* VIMPictureCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = C99A95A93AB75AFFF2B725A21CFF7377 /* VIMPictureCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59660663BC5E565B0F4F994E3688083D /* VIMModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = ECF46B5E5956D18C9AAD34EE80C8F77E /* VIMModelObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A1D34D104D42B1EE399E23BCD7935A0 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 213E236A9902F5C48054532E31B83A86 /* AFURLResponseSerialization.m */; }; - 5AFC1E2FD02BA2FADA6BA4E264CD032A /* String+Parameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE1A0D9A33DD15FBE6EBBA8E2BC96A15 /* String+Parameters.swift */; }; - 5B6A5C2A7EC9E33337DE6287258CE806 /* Request+ProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9A61DA32392AD194FABDB69398E9DA /* Request+ProgrammedContent.swift */; }; - 5BA9E478846DD5BD2F10533663C65DB0 /* VimeoNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A0A4AB2432D657C9297E64DCDDB03A9 /* VimeoNetworking-dummy.m */; }; - 5D3BDA09F740ECC2062E1876B3E9397C /* VimeoRequestSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12603000BA159A15FCFE312613690391 /* VimeoRequestSerializer.swift */; }; - 5D862A3CE5B17C76E3F21ED62FBDB757 /* VIMActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 14988764C33C43F624F78A9FD05EA2D7 /* VIMActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FF671C4F478DAC06FFC03103078E43C /* Request+Configs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9717512502B2CBB64AF956ABFD3ECF10 /* Request+Configs.swift */; }; - 6002D7357AE628BBDB572FC9EFB211B0 /* VIMVideoHLSFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D06933F7D0190E13136B6084CCF19FD /* VIMVideoHLSFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 643CE7142699088977B0ACB353A4FE6B /* Objc_ExceptionCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F622C8797560A4BC9EDB9A36960BB2C /* Objc_ExceptionCatcher.m */; }; - 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 19CEB26626C9812FA30C7379ACA089D6 /* AFNetworkActivityIndicatorManager.m */; }; - 6573AF9ABA59AC8D1F52B07088197F71 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E1665CCFC918114440A9C679C0EBC34 /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 678D568B6F7293E48418DA96A3C9A81D /* VIMAppeal.h in Headers */ = {isa = PBXBuildFile; fileRef = D1C4237239681814FFDD6E43465463EE /* VIMAppeal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D3532EDF43F7631961FBCE2118906D1 /* VIMPolicyDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = AE97ADD7133B74F569CDBAA703BCFD65 /* VIMPolicyDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D78E4A293A03E543CB947C6E2B5BFC7 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EC2A207160C6ABAABFFB2C7CEF0193 /* Constants.swift */; }; + 4FA2FC796ACCCC463EEE77542BE8D142 /* VIMUser.h in Headers */ = {isa = PBXBuildFile; fileRef = EB3CB90C71820EE74C9F0D2DA4A7B44F /* VIMUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 50240EC86EC6E3D0FE279D39C1157394 /* Request+Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910EEA1873F3C909758C2298877AA7E /* Request+Category.swift */; }; + 51047C1945103943F70BEADE83725630 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 714C5B0978A3C1F5DFD5196353A4674C /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52527D3845CA7EBE0E2C3CAED510C19A /* VIMSeason.h in Headers */ = {isa = PBXBuildFile; fileRef = 245BD1E8B3E5BE71C829B996E257207C /* VIMSeason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 530B47788A94A38FE1F07B0D9A0026E4 /* Scope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 574D37AFD6B63C7C543B8DDCC8BBCDCD /* Scope.swift */; }; + 53E43BCD6CA9C9AB125E4E8D605FC903 /* VIMVideo+VOD.h in Headers */ = {isa = PBXBuildFile; fileRef = 64F81D9AB162FD3AFF5E21392C105385 /* VIMVideo+VOD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54C37CD332C73F67F7754DAE3F3D4B3D /* VimeoRequestSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4E0A7B176B3107F86D5A881E57AA5BC /* VimeoRequestSerializer.swift */; }; + 56E84D090BF8AD39FA38E51807779BD2 /* VIMVideoHLSFile.h in Headers */ = {isa = PBXBuildFile; fileRef = F27DFCF446A2BAED340E50B6F721E96C /* VIMVideoHLSFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A1D34D104D42B1EE399E23BCD7935A0 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E4FA6AA687FAD3C73FA4D5F778B6994 /* AFURLResponseSerialization.m */; }; + 5C0337211CDC4579019DC0704EA66370 /* VIMComment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BF8714B341C956CC960D5F6F5FD061B /* VIMComment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C0565FFE84B204D8F6C99772868BDEB /* VIMVODConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = FC34BB5F2459B8BE2191283BCD59DFFC /* VIMVODConnection.m */; }; + 5D4A19EA76D7EA2F9AFD1D2114FE0282 /* AuthenticationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4649337C65FD272A0B75F156507DBF18 /* AuthenticationController.swift */; }; + 5E954272295CF70B4C2C2815117255AB /* VIMVideoFairPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E0B01CEC75D6CABBC311CA2D4DCE1D9 /* VIMVideoFairPlayFile.m */; }; + 6203DE451A85E5A0AA5C13D751699B1B /* VIMAppeal.m in Sources */ = {isa = PBXBuildFile; fileRef = 58588D4FE9CAD101CBA9E66CF55B111F /* VIMAppeal.m */; }; + 6286BBCC9E8308998C92DE6A732153C0 /* Spatial.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEA5F1020ACBC1E16F7C377115328C63 /* Spatial.swift */; }; + 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9468DEA78D57D9B0E4C7AC7F5E504C7B /* AFNetworkActivityIndicatorManager.m */; }; + 6573AF9ABA59AC8D1F52B07088197F71 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C8E8C116C75D16F52EA1D3242FF59D /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 660EE8ED9CED19C9E8FD510F864F2953 /* Request+PolicyDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B8B622C89D248F892F70436F3C4927 /* Request+PolicyDocument.swift */; }; + 67DC334CA1B22722C3A2E2C20EBF74A4 /* VimeoNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = E8EE2BF5E54CD69A9A8E68E9AA8D06F4 /* VimeoNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */; }; - 69B1AF537561D8F581165B58FCDD81FB /* VIMVideoDASHFile.h in Headers */ = {isa = PBXBuildFile; fileRef = DB074C96C719EAE42367359FBE57E21F /* VIMVideoDASHFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A4FBD31811C902A97F3B75EE81B0ADD /* VIMActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 08D1BA8A90EDC00E8EB28A886F2B4CD7 /* VIMActivity.m */; }; - 6B0432E81EC7132ADF0516729B74C724 /* VIMSizeQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = CF8F7E3CBB1B67B094851E251BC41BC2 /* VIMSizeQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68E37408801BDFE64FE284EB926C84D3 /* VIMConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 144AE47771CA26D2CE6BBA49A5088D4C /* VIMConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69D4E81727D4C0E26D58BB5A47263C6A /* ErrorCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8A79531959161891C56EDD3B8236F9 /* ErrorCode.swift */; }; + 6A0B3B27B44D1B549931CA04D05FDA5F /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198A0FC4821182C1441C3278B81533C1 /* Dictionary+Extension.swift */; }; + 6AFAD442B4AAEECF1318FA8525604051 /* VIMAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BC4A625F838AE6E28EAA14F8EABBEEE /* VIMAccount.m */; }; 6CB3E0E344A7E19BA2ADE572A9E91C7F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 6DF3CEDD6910937636F93F666E1FEF2C /* NSError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7907829F15403992DC9A4B548CD41E1 /* NSError+Extensions.swift */; }; - 6E4D1B3AADC1FD45199854A24E146F0C /* Request+Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = B44AB41921F9D9B0620A5C3553FE4B72 /* Request+Video.swift */; }; - 7093D03FB36F62140CD7CB962C129184 /* Request+Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B32A79195E4789E0D38A7C199CAB76A /* Request+Channel.swift */; }; - 719B05BF832EB807BD9313C39D9C1923 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D38065BB0B23FBE674985A0F8B72EC9 /* Result.swift */; }; - 7417910A809FB46D7CBE239E1E41F40E /* VimeoSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FBA6678CB2E7680B2E44F4375609022 /* VimeoSessionManager.swift */; }; + 6D7348E2B052AF437E6DD693FA1BB372 /* PinCodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */; }; + 6FC69948AF7AED0F67402F8044ABE1BC /* VIMTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 633F03E86937C4E4A5EB10440B86406E /* VIMTag.m */; }; + 7184A2EBE622AC5493861089EB852BC9 /* VIMVideoPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 66DF12E58DBB07F4E0A32A90407E7F10 /* VIMVideoPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 730A439176273D3D0BBEF1C123CB4B87 /* VIMUserBadge.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B7817AC6B424B77B067539E39EDA9AB /* VIMUserBadge.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76FB450A67E351FEF558473DF85A052A /* Request+User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2D82462A8952625139EFE730A1D996 /* Request+User.swift */; }; 7715E1A66A2F21A0C5F8B913E79FC9F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 778D21F2C8E74994835AF74CF639561E /* VIMVideoPlayRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 494E66C69C53C64522E95F995B56BAB5 /* VIMVideoPlayRepresentation.m */; }; + 78471141D3A567C068C60243ED3554B8 /* VIMInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 44F122B80BACFA0494C2CFB8D9923E4C /* VIMInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; 789D749690B308852115FF20CD982A69 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */; }; - 78A21D825370B0C218AEF351105AC567 /* VIMVideoUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C9EA8CD923B36DA3EAD55FD3879A502F /* VIMVideoUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FB6A99CF789B5BEA9456117EA2855947 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CE16B1BF75DF396768A0A3CFD968DB1 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A28D7473445BAC2DF8ED3294808DCF /* UIWebView+AFNetworking.m */; }; - 7DEBA2ACA54253C65CA292BCF51B476B /* VIMVODItem.m in Sources */ = {isa = PBXBuildFile; fileRef = E7FF72F2B598E25BCF0422AC7894A20D /* VIMVODItem.m */; }; + 79FD18E3550C4D60892402C954D89D58 /* VIMPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D22624966A39C8E5C113CBF14F4C8CE /* VIMPreference.m */; }; + 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B507D130FFEBCD98C817BB196466C70 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7AD4CE7ABA24F180CCFBD6C0310DC1AA /* VIMModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = C716B4800FAD0DDAAAFFAB57FFC40242 /* VIMModelObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7CCA55971A69EA53482B0040647808A8 /* VIMUserBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 038F1D2C4FFAF96EF3F4CC8CCA5E1C7D /* VIMUserBadge.m */; }; + 7CE16B1BF75DF396768A0A3CFD968DB1 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 02AA0046E026ED16E0F011492A681913 /* UIWebView+AFNetworking.m */; }; + 7E9D810438EAF1EC8C73357A66E2F745 /* VIMConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = EC67B7AD7961570B52C42FF75E469EF7 /* VIMConnection.m */; }; + 7EB9BEBED79E8411B9797F9B7E41B2C3 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A642117F7C53CF7A21E344EBF7E7936 /* Request.swift */; }; + 7F701AD6C1E16AC30D5A089603B3F29A /* VIMGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 6497695CF3E669E163206BB20DBAFE53 /* VIMGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80E8BEBDC57B013AB61A2D4AFED25076 /* VIMVideoFairPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 90087B0D4E77D07B4E9F1D217680CB6B /* VIMVideoFairPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82752C5EBCDE2118D9B50C7623D5BF3B /* VIMAppeal.m in Sources */ = {isa = PBXBuildFile; fileRef = DF54671CD48BA10A8DA67E5817580E1A /* VIMAppeal.m */; }; + 81D0F571B178C2F82F146F1F5E50C097 /* VIMObjectMapper+Generic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55D5445B186DDBBEC7D7A9B467FC2E6A /* VIMObjectMapper+Generic.swift */; }; + 828EB50094BB958BEE3B094F96465E3E /* VIMGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = C867648C482317091BC988216AE7BCEF /* VIMGroup.m */; }; 82D554EC9FB9A62D935B6555325F5898 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C29192B1F683D403AFFD632D65221D49 /* Security.framework */; }; - 84F4F2115F97F8FE14D0BEBE38A772E0 /* VIMVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = F321BEF3CBD2446312D1D121E254290F /* VIMVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 85849DB10CF2386821DEB59E77404730 /* VIMUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E79D6C3283CB5EF1812B0021DA11FC5 /* VIMUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8588C695824D58E2A9EAAE4D4A0E1BB9 /* VIMPictureCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DD953AC1282A72EB724028504DB991B /* VIMPictureCollection.m */; }; - 862CA2F597532E9D63DB4C787AD17AA7 /* VIMPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 95DCAF0CD8E8A04FB849D0EB3ED32D01 /* VIMPicture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8670EB68C4D288954C15F2F9C2C935EE /* ExceptionCatcher+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54035CD32BBAAD35D60CCBDDEC9CEE44 /* ExceptionCatcher+Swift.swift */; }; - 86BE885A7FB6FC6F0B4E1C905DA7B64C /* VIMPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 63AC97C994F4A5DEDCFAB03FE2835587 /* VIMPreference.m */; }; - 8A689A9EF197DC68E6947A869A6EE657 /* VIMChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A5768E8C2A4AD09EE82653EC6A4E43A /* VIMChannel.m */; }; - 8BFB2E98B986C0843E8FB1D4C63DC4B1 /* VIMVideoHLSFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 761B02BADB3E7B60DB3FF23CD76B6AF2 /* VIMVideoHLSFile.m */; }; - 8C006C64C5E77BEBECE54877B7BA22F0 /* ErrorCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EB63AB5D89A08887565D82CBAC4A0A3 /* ErrorCode.swift */; }; - 8CE568F7A75458FEE8E5920F28460A1A /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CB779FF1FA13F0CA99A13B6A0857464 /* Response.swift */; }; - 8DC561474BEA410319DF3774BD2FE0D8 /* VIMMappable.h in Headers */ = {isa = PBXBuildFile; fileRef = C99148A0B79F2354BFE4ACBDE082A809 /* VIMMappable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E1AF09B6DC4CAE39BD8296809C3EB0E /* VIMUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 78D4C6E7DFAF7621B138929C43CEAD58 /* VIMUploadTicket.m */; }; - 8EA375C3F30127C965344B1369E6CC16 /* PinCodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF6081927D4DC329FD7ED0F883D3B576 /* PinCodeInfo.swift */; }; - 91258FC91233FB6DA9C05902C106514B /* VIMUploadQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = B784B3FDEB773915E04502100EB6F701 /* VIMUploadQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91DFEC02233D3AB83A35E5756A18A36C /* VIMUserBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 1541E9FB35206F5192232467FC5B429D /* VIMUserBadge.m */; }; - 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = BFECB493111928B6FBC7E30A53CD6C0C /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93096AB36C54BB032194725968A44EA3 /* VIMTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C1DAA99F189991E9808E85A60902767 /* VIMTag.m */; }; + 84D5E7F02850F93CBFE2114DE63556DE /* VIMLiveQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */; }; + 84FCB295072BFCC1B8C766B77B2A4355 /* VIMNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE34181F7DEEA3A80140282BBC6AB0B /* VIMNotification.m */; }; + 85DA40B231DA346D3F81F5C05721E8A5 /* Mappable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A27737DBFB0A1312C26B1C96EFC0D9CC /* Mappable.swift */; }; + 8BAC1702671F9373055297301A078026 /* VIMQuantityQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = 242A72850AA33ABD4DCB90C46D7EBBF7 /* VIMQuantityQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8EB0FBBB983197A428EB2C6B4F6E604F /* VIMPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = 157C7EA514B07C841D376B315F5F1636 /* VIMPicture.m */; }; + 907C0418B3BEBF279E024CD35630D91D /* AccountStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A25EFA17D3547663AC40E439C04067B /* AccountStore.swift */; }; + 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 926D0D88C69D6E64C4F079963246D773 /* VIMLiveChatUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D14F412DA2B5A72B420B77A5DF82B391 /* VIMLiveChatUser.swift */; }; + 932CA521D19C5DB870B9EA5163CDF9D0 /* VIMUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = 686E7A5A8052386182347D07482C3C67 /* VIMUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9336820057A592619B89406F1DF4AEC9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 40C278A2D7295B9C745A8F7C78D039A3 /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = F482E1B7506500767CF4C18ED47EC41B /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 95FFAABEF0F35C113EC0189D39FF80A0 /* ResponseCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C2608F23A5BD6202F176337A9F85D70 /* ResponseCache.swift */; }; - 99B51DB5B80BBD7A2597A8E79C34290D /* NSURLSessionConfiguration+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E057FC5D3359A0584EF6495E7E3F6939 /* NSURLSessionConfiguration+Extensions.swift */; }; - 9AA200004AD2C86C440D0365294E8C25 /* VimeoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BC19A9538D0325AF47F77D4BDAB05E5 /* VimeoClient.swift */; }; - 9E155F6AE09BB4243CAE115081560893 /* VIMTrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A6089F06B69AA4011F16D1BE20C6240 /* VIMTrigger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9FE718C13D939CB402496CD9D1644692 /* SubscriptionCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = A784B675172C4B624597642F4BFE56E7 /* SubscriptionCollection.swift */; }; - A08EFFFF7DFACA49EB5F271ACD172E91 /* NetworkingNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0B7E1AC52305E19ED018CF401606970 /* NetworkingNotification.swift */; }; - A280ED07778424BB4FB5E2596B927323 /* VIMQuantityQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = D39B2D537CC8914B5AB105B380641859 /* VIMQuantityQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A346ABB83FE181956A7DC49EDF3EF2DB /* VIMVideoPlayRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = A5CFEC28DA0D60B074FCFDEBB948B940 /* VIMVideoPlayRepresentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3591DEDA776B48C026E7F9144981E58 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 600D472EDC99CA818353A5D89F987011 /* AFAutoPurgingImageCache.m */; }; - A398D63C8DED664D99A864D79881A13C /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BFCEC6FBC3145714CC6CF4DFC949341 /* AFImageDownloader.m */; }; - A4CD0619CCDE6268C1769EF1379D3C5F /* Request+Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3955D9A7EC2CD5C86E892193E62E9E0F /* Request+Comment.swift */; }; - A73687DB3AA0983108BAEBF72C2340ED /* VIMPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = A95F8642BCADE8FFFF3519DABF17AB95 /* VIMPrivacy.m */; }; + 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = EC667DA5D9EC1B35E659F3B9E0341C85 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94CABFC144E1224E093EC7B5057F08BD /* VIMThumbnailUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = CC35A7CF63A081875F9CF7A13AED2B6F /* VIMThumbnailUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 986442954EB5E0C1224B22AA9DA15A3A /* VIMVODItem.h in Headers */ = {isa = PBXBuildFile; fileRef = CAC4F7845137416DDE1B0102830EDF83 /* VIMVODItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A15FF8933713870E90F69BBC18908B0 /* VIMUser.m in Sources */ = {isa = PBXBuildFile; fileRef = E592A244E83255AC4115A868FE02919D /* VIMUser.m */; }; + 9B5D2A28338705252BAEC9F1CDF6DB16 /* Request+Configs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D9225F1748860C325BC0B5470023589 /* Request+Configs.swift */; }; + 9CF285BF9B73A83B35CEF6FCFBF18675 /* VIMSoundtrack.m in Sources */ = {isa = PBXBuildFile; fileRef = F8420F0DF85E78490D2EC6895FB33030 /* VIMSoundtrack.m */; }; + 9D71889BF97F2D2F4C191F9F679F841A /* VIMObjectMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A455D143B6438B58518F3865A903EE1 /* VIMObjectMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A07809AF47318F63FABD8430E9D2D5BA /* VIMLive.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3962DB52E64A2446FC1C17FE675A0E6 /* VIMLive.swift */; }; + A0BD9EC2D4DFF7F092F03C98B9A04EAC /* SubscriptionCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AB2176333C0C42F40BD13E4DDE0640A /* SubscriptionCollection.swift */; }; + A1187C43A1E035111DE63C082E28A393 /* VIMVideoFile.m in Sources */ = {isa = PBXBuildFile; fileRef = E3F3220930C10F8298CDEE754D07F73F /* VIMVideoFile.m */; }; + A21C97C53C6187C07993E331BB9D1BDB /* Request+Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A3A4AC7EEAC2A5D6B93D6AA8DA6DEE8 /* Request+Notifications.swift */; }; + A3591DEDA776B48C026E7F9144981E58 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DC534095BB14D1CFB95B341D8F3BA47 /* AFAutoPurgingImageCache.m */; }; + A398D63C8DED664D99A864D79881A13C /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C668C5587BF895640E72EA227806D7 /* AFImageDownloader.m */; }; + A6C453AA6D3CA78851EB47381AFD4462 /* Request+Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A986CC4EDA505946FE3258B89387779 /* Request+Toggle.swift */; }; + A7B7691B6B973F3E7F1F21F416BD3613 /* VIMLiveChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FE473E948247E7F9972B5508A413C38 /* VIMLiveChat.swift */; }; + A81D296D35F0C54AD7EFAF9C6162EEEB /* Request+Soundtrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */; }; A8C297643282E0CF5E7DF9CB6E23A0D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - A8E116A9A098FE44D9CEAA85FCF9D408 /* VIMTag.h in Headers */ = {isa = PBXBuildFile; fileRef = CA212CD04BA30762B1CD913421957487 /* VIMTag.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8F1B4C9D1D600563C86DF374BB1FF59 /* VIMVideoPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 68D1AD311A8197BF776022C79C5F1ACE /* VIMVideoPlayFile.m */; }; - A90F6D31147BD8FCEC444B7D99EB4798 /* AccountStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1251E50741E644D6312C93A72D228CC2 /* AccountStore.swift */; }; - AC2F13906A8DF6AB50AB826835026D89 /* VIMTrigger.m in Sources */ = {isa = PBXBuildFile; fileRef = F268DB0DE841D483B2E3C48B95F2013B /* VIMTrigger.m */; }; - AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 01FD7E491D786675786392B66C27218C /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B16A078FC7FBC172A266A336AEF7F673 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A0648207A189AF57F74C57B6416EFA4B /* UIRefreshControl+AFNetworking.m */; }; - B1A9884315D8230C190E19E5B8E87C5A /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F86DFC5D05E754156CA58540DAA1BAC /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B259265059C9F541C99A43E37B2CEFA6 /* Request+Picture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A1207562C5BD2A71A7DC1A59A824D64 /* Request+Picture.swift */; }; - B3389B8752DF8E9154754220D09D26C9 /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88A43F94D3F984AA9F607E6D336933C /* Dictionary+Extension.swift */; }; - B793155915EDF853F2B515F87230AEC4 /* VIMObjectMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 813FFFC7FD25CCBEFAADC204524CBF26 /* VIMObjectMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7A153052BBBE07EE5C653777F052C3F /* VIMSoundtrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 439CBA3DC46A23846FBD30F048BE086A /* VIMSoundtrack.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9331886EB47FEE9CC9739C45CEE35CB /* VIMVideoPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FA3810B9E6829C7403D5D0F19EDACFD /* VIMVideoPreference.m */; }; - B9B6393A6D55E217BE87C42FAD925D07 /* Objc_ExceptionCatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F578FD9D3A32CB94B4560392C77383F /* Objc_ExceptionCatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD3361E6028D2FD289D7E9BEF5392A6A /* VIMRecommendation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E34B0E33381605BC20762BA521A846C /* VIMRecommendation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF2E64C3355CB069145EAF61D1223910 /* VIMVideoFile.m in Sources */ = {isa = PBXBuildFile; fileRef = EB013DBE7F6A441F3FC60D8F0F84FE89 /* VIMVideoFile.m */; }; - C1539E868EAA683B1B80A0F530ACCDF1 /* VIMVideoDRMFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B409357FA7F1EE47504EB11F838F1FD /* VIMVideoDRMFiles.m */; }; + A90067E931B67F86573B5310EF33BEE4 /* Request+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 592399628685EEA2CBCEAA22472FB309 /* Request+Authentication.swift */; }; + A92AFBF2EA1D8470C045152905FE94EC /* ExceptionCatcher+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EE9E0E05929DC3AFDF6276C52E5988C /* ExceptionCatcher+Swift.swift */; }; + AA20F58AB9ADF9E981355D9DDD6F43CA /* VIMActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD6B4F1BB9B251C7BEC59722C42AB0B /* VIMActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 03C2FA5B57F57E6E4C867E75DC638115 /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AF31E2ADAC20108EB84BDE3DAC89B5AD /* VIMModelObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 9899127E9167B9D6EBA7784D892653A2 /* VIMModelObject.m */; }; + B096979D89174D895ACAA9130A84C751 /* Objc_ExceptionCatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CF73647B15392A1776EAC7769039E3C1 /* Objc_ExceptionCatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0A505817B511F3A35762CD3DC47A80A /* VIMVideoHLSFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B791FB955CB509E19E5ECC15E7EA5C5 /* VIMVideoHLSFile.m */; }; + B16A078FC7FBC172A266A336AEF7F673 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = C83490C101E129974A2EEFB8C04E04EC /* UIRefreshControl+AFNetworking.m */; }; + B19D1BB51563B94A63A6D1AAD3318B07 /* VIMNotificationsConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED7E045948374FAE37E1258BA3366F1 /* VIMNotificationsConnection.m */; }; + B326931A696FDB9E8D38DACFC9B16575 /* VimeoResponseSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4759F58D590C7673A8DD8D567CBAB74 /* VimeoResponseSerializer.swift */; }; + B3734EA9CE5ABDD53677CBBF95218D93 /* VIMPrivacy.h in Headers */ = {isa = PBXBuildFile; fileRef = FC7C28E2007A0256AC662EA7D40A6631 /* VIMPrivacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B530B7CEF7393543955FC9EEC6C9D797 /* VIMTag.h in Headers */ = {isa = PBXBuildFile; fileRef = E522AAA14794E33C4E9EFF0779388907 /* VIMTag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8A0FD0C3B86C1B68BC177F0E4F46FF0 /* String+Parameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A90EF0370E7F413E923D813F419C81 /* String+Parameters.swift */; }; + B8C936EBBA62FA2DB48E61C49C63631B /* VIMSizeQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */; }; + B8E04F3BBEBBD14C2D12C53535CEED63 /* VIMVideoPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCEA14CC7DF08D617ED59064F004953 /* VIMVideoPlayFile.m */; }; + B9E6048FDEF1EDF00DBD5E7603882B0F /* VIMVODConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = F6C8A0A919CEE05D1634AFD91D8693BC /* VIMVODConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB2BB064BA029A5772F1B80A2504B6D4 /* VIMChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA8C97144A1B46C16C2425AD02F2647 /* VIMChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB2D516BB64D23CB562B41D9C0DCFF91 /* VIMVideoProgressiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 4791D611DF81AF66DC55313D98C6202C /* VIMVideoProgressiveFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCBA69CD7C8C0C72ED283C9E23F1E9E8 /* VIMCredit.m in Sources */ = {isa = PBXBuildFile; fileRef = 91179DF7663D831C96D269BFB58AD522 /* VIMCredit.m */; }; + BD430763476A5C43180E216E8DF6814C /* VIMPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48ADFB75E39D89D3FC25BA8311A8A3F8 /* VIMPrivacy.m */; }; + C08010E9B33FEB8A829FBFB76BA1A56A /* VIMAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = C913DD9402D7FCE7BBA97568950974A6 /* VIMAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; C50D0C30AF8712AFFA42B7F9C4AC2C7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - C7A8FB48AC76C370F585B5E609AFC6F9 /* VIMVODConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 40FF5ABC89E5B4D81BB332308EBD6ABA /* VIMVODConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C99047215776E7CB95C77ADC520B7001 /* Spatial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5427FA6B4360346236E6133084DFC10E /* Spatial.swift */; }; - CB84112F8B8F712719EA050973CCC8D1 /* PlayProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C69108CD986B77A9C0122212FD6613 /* PlayProgress.swift */; }; - CCFCAB315F227FF02C9DCACB24FA0AAD /* VIMPrivacy.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BD0E4A9E13D4E5939E74CE749ACF61 /* VIMPrivacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD632493290A2E4430F2F12E548B03B2 /* VIMNotificationsConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AF9D80E0A02BB32BC9B773852EB179C /* VIMNotificationsConnection.m */; }; - CE513A764AEF1DF8E3788D05B03CD15E /* VIMPolicyDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = A69D06730C5B3566A7B8FF5A91C529C1 /* VIMPolicyDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE5AC9A4F95093069A44087A1689ACCB /* VIMNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = CB8AD1BB40CAF74E14801DCD2423742E /* VIMNotification.m */; }; - CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C61AA5DF51D49E9C9ADF4B82C45FE7B /* AFSecurityPolicy.m */; }; + C740EA611A1A0708069379C21CC91D22 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E356F5BC3EF410C1A8E290BF70EE42EC /* KeychainStore.swift */; }; + C7D618E6E16BAB6EE81D7A943430A155 /* VIMUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 404EBED1541B755FB84CEB0B6BF5B214 /* VIMUploadTicket.m */; }; + C9FBFA4214F4CE291C59D52DFA886C02 /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ADD83665EF069AC4808284045A05F4BF /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBB0A1DE5A92E8A8AA8EDF47F90D4704 /* VIMActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D47993D1669EDACAE23DDA31EE1D750 /* VIMActivity.m */; }; + CBD0A5C342505975B14B0722C0A40644 /* VIMVideoProgressiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C1BE847651368C4C25045E57EB0E3F /* VIMVideoProgressiveFile.m */; }; + CC9E35985FC0082D929D45BA28334A1C /* VIMVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 67E8730E582CED91AFE4FA07B317CF43 /* VIMVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE4DA92A43826C17668392D0C859A80A /* AFSecurityPolicy.m */; }; CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */; }; - CF276AE6C6EFAF02D2DD4373E92D0648 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1625E43ADF6E7014140E962E4D8D2E15 /* Subscription.swift */; }; - CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 01B662642B6C94DAE9E304C3539BB0F0 /* AFNetworking-dummy.m */; }; - D1D2D9F03C9CBF28F01F5F293325881F /* VIMVideoDRMFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62CA840DF965405A11E44123254BAC /* VIMVideoDRMFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D27E342A895F8F0BF51D6B926ECA83FF /* VIMObjectMapper+Generic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE2618631D9AF7217C1FC477FE2046E /* VIMObjectMapper+Generic.swift */; }; - D2D5FEA35F9DC0817488AC6B206C9C5B /* VIMConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E40E32356AA402232F099288457708 /* VIMConnection.m */; }; - D30636F1DCCA97413888F0D0DFB63ADF /* VIMPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 54DC90B45F8449D72BD99F888633B19A /* VIMPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4812514244A32F4EF17A3403CEB49E0 /* Scope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DFE210185943D679FFCBBA4B56CF1A6 /* Scope.swift */; }; - D4E80BD7EAAB83200183110578A80591 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CA3350835CEC5107C6C293FE2D04E77F /* AFURLSessionManager.m */; }; - D59D192A899629E78E80F8EA3AD0122B /* VIMModelObject.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA77B71C751EBAB48B5E4F1CB110265 /* VIMModelObject.m */; }; - D71682AD848B134EB74BB0B27F9EE2F6 /* VIMNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = F780713BAF9F48FFB39AC81244609869 /* VIMNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D73A12F20CB1A1B5669AF75288D52029 /* VIMUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A8AD460DA5A2F6BCCC1E450EFCD4B60 /* VIMUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7B8668CAC424FB726E911830640210E /* Request+Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AED40431616221804026E870D2C4C82 /* Request+Category.swift */; }; - D8384F0B4B1075A71813D409FD144A3F /* Request+PolicyDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58B62EE71CA018F665D8A742ADA3787A /* Request+PolicyDocument.swift */; }; - D90CAB5734D50648EE042D7F6EF739C7 /* VIMSizeQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 20B9A2C2DE00876AF465AD16D2C4C5BA /* VIMSizeQuota.m */; }; - DA1A46D62BEA2431AC6FD66D58E28C27 /* VIMAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 338DFD9D7A1D0BF695F33079268D7506 /* VIMAccount.m */; }; + CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 76326C8C4F0A2A5409134F265A781ACD /* AFNetworking-dummy.m */; }; + D109CF550CC4B4207ABD5A8BDA5D7FB2 /* VIMSpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 199439094EAB2A988BAED89C1771A848 /* VIMSpace.swift */; }; + D1CC6C140311BDF560402C7B261EC749 /* VIMVideoPlayRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 58047C8CC5F49283333E246CA9F56BFA /* VIMVideoPlayRepresentation.m */; }; + D452173C5942C7EF4BADA8F49E73EEBB /* VIMObjectMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CEE095D5D41BE01E7A438719525079D /* VIMObjectMapper.m */; }; + D4E80BD7EAAB83200183110578A80591 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DB684C35D18CE0200411F5A0B79CFCD /* AFURLSessionManager.m */; }; + D545E07F830B9DEE5029CCAE066F5E48 /* NetworkingNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB03BF3312FAD8B30A9EE17D0AA7BD36 /* NetworkingNotification.swift */; }; + D7B60EFC0FBAA6322F0E8BB9A9A81DED /* VimeoReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DAFB57C55DAA0F49681B1626DBE7837 /* VimeoReachability.swift */; }; + D814EAEF15E35911C154C9706ACAFAB2 /* VIMAppeal.h in Headers */ = {isa = PBXBuildFile; fileRef = 71DED1DC4C3953219DB409A92F0E546F /* VIMAppeal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D86979E7D5F083AE83F26A54375E0BE6 /* VIMTrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = 434D92DDD616ED26F2A45C6EAB3DF3C2 /* VIMTrigger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8876D8D889C6B0E96CF2AFD3CDB8B97 /* VimeoSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B89681226395449BB402C81A1ED264E /* VimeoSessionManager.swift */; }; DC395092187FBC815E499B755553E751 /* Pods-VimeoUpload-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */; }; - DCD624F830FDEDF0AE7E3DB66BBFFEC2 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = E79ADD6A0AFBC97CBC10D3AC1EA024DC /* Request.swift */; }; - DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B4C942B4810471391926C69DDF06F459 /* AFNetworkReachabilityManager.m */; }; - DDC2160DEE810F9EB54D5F4A4085FD06 /* Request+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FECF370ACCB82ABBBADEB2C23066C4F /* Request+Cache.swift */; }; - DE38B59B4D7D872FEF317D301D7D0113 /* VIMVideoPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 528FFF37101F041C21101734F752C2AE /* VIMVideoPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E23B9A6F533461CB33C0FA6FB59E3AB2 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = AF5691A664BC371E586B7A9B0EA405C8 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9083640FA1E37FD7F1CD8C3D3113F71 /* VIMVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 70A33F9F7F54570EFF69A144E3A3F760 /* VIMVideo.m */; }; - EAEBAD0876E9C66617B5366DC192ABDB /* VIMSeason.h in Headers */ = {isa = PBXBuildFile; fileRef = 14EA79709F08DA21BEFAD6B727216E8A /* VIMSeason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D84ED393688D7F4321FF3478294DAAA /* AFHTTPSessionManager.m */; }; - F1201DC66104CE2A45B7D54394115AFC /* VIMVideoFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7FE012B283AB95DB394786375AF14C /* VIMVideoFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A85F49E86198194EBD238BC4D17B241 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F28BC46F4F246E19C0A9B040C5834B32 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9F540643D34B036DF1F955F1B4921C /* KeychainStore.swift */; }; - F2D899C7AA0D7FC20160091BB9D31CF3 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A0EACC1726F08952CBA6D09D34A5E69 /* UIImageView+AFNetworking.m */; }; - F42023CADF80388A7EE24CDC3378D896 /* VimeoNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E698DE1E56024C0E969710944608D8 /* VimeoNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F42AFA87354F2430D2381ABF91869006 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3731BACEDB31E0440FF7D8D8C0C5E492 /* Constants.swift */; }; - F51ECD19F851C26CEB4925B83D85ABDA /* VIMVODConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 6402A355C8648B1DF96ACEBE585B656F /* VIMVODConnection.m */; }; - F5B609F28B2E1EBF8AA9348E28333378 /* VIMRecommendation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A4BE21C00C1529F947AEADC6AFEC0AB /* VIMRecommendation.m */; }; - F6258BE02142A4CCAEBB00A2C4CEE82B /* VIMObjectMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = AE0DF6D9E98751FE374466891CF22E93 /* VIMObjectMapper.m */; }; - F69AEBDF86112551CBE86B9A63D569AF /* VIMChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = B7F8E371904C34C30A4498FCCBE5F2AB /* VIMChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F76D02044108AE9B76A2EBC583A3F403 /* VIMProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70B44A30D123EB8B4E494C3750DC262F /* VIMProgrammedContent.swift */; }; - F80A5BF96718E74CF0164FF1CF6CACE6 /* VimeoResponseSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5E07926E2F0D6EBCCF626360CF3A857 /* VimeoResponseSerializer.swift */; }; - F82C4C45E9CC756A62AA0F72D001B83D /* VIMQuantityQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 33B7F78148EB2BCFE6839B0A753DA5A7 /* VIMQuantityQuota.m */; }; - F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = D65690666F392CD6883791300864C4BF /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F92477EC3C798D43C7DA759DF0AFDE34 /* VIMNotificationsConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 500FE9C937B576F7F751188E9C8B58C2 /* VIMNotificationsConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCE8E24B5551BD3ED1FD7ABD56C10386 /* VIMVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF8D5A5B94427B5A26BF7A110935D1D /* VIMVideo.m */; }; + DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EC36289436BC8F92161297A7A6BB279 /* AFNetworkReachabilityManager.m */; }; + DE18C4BDBECD0E69D0696F8BD2DCD577 /* VIMChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */; }; + DEA22BE9551003B62BF8C64C7B9E4352 /* VIMPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB75948A89DA6FAFB6053EFB7B39628 /* VIMPicture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1EEC50202199605B8FAA025E2300EE3 /* VIMPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 10C6713230A87A25B5761E5A3CFC15DD /* VIMPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E23B9A6F533461CB33C0FA6FB59E3AB2 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FC7D02188E2C34BE891C0A1C34CE10A /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E2BC5FB5EBF6496D18C35FA18DC85B2E /* VIMVideoUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = AA188B201DCC201C7D1451547279808D /* VIMVideoUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E322318676064FC0B87D0E9F79EA1A55 /* VIMProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 221D6F45BA640AE1C73F34B0D416ADA7 /* VIMProgrammedContent.swift */; }; + E32C95DB739D05A45EE140D658AD40C8 /* Request+Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD3546051FCB66387E4E83C5B7BBACE9 /* Request+Channel.swift */; }; + E44FBE84C5072D6406FCC4456333194E /* VIMVideoDRMFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D59C2A0B1AC7D635763EE682582F1C1 /* VIMVideoDRMFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E59B30AE3C849AECA3C525452E2AE055 /* VIMLiveTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1A9E4CA052B6791BE98CABC26BDAE96 /* VIMLiveTime.swift */; }; + E67F7F8543FC715AD3B30BC6CB366B6E /* VIMThumbnailUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */; }; + E6BC2F1EBCB35E455ECB7D63F1591E93 /* VIMQuantityQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DB8B03BA0C91F983BEBB7D468AA4F10 /* VIMQuantityQuota.m */; }; + E791D2683395A22962082E7163104379 /* NSError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED3D79C25378B9CD7F9F1F4D28F37C78 /* NSError+Extensions.swift */; }; + E9C53427664F14DBB8FCFAB186BCFB59 /* VIMVideoPlayRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CA19508165DFEEB376273E8D4214F59 /* VIMVideoPlayRepresentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9CCC4E47921BE30AAE21DE57E20BEFA /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C974CC35310983ABAED5BA8CF32332A6 /* Subscription.swift */; }; + E9FDD6AECB1F1502240718DD68585725 /* PlayProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E82E7A6452665F31AB0160C36C0040 /* PlayProgress.swift */; }; + EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 31D638862512159911B72BCEA7447DC2 /* AFHTTPSessionManager.m */; }; + F1B355E841C99D9DBA940D0E172DAE7F /* Objc_ExceptionCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */; }; + F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 7983F38BB3C81F07425BFAF1E6289C43 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2625E2811F90F09002CACB5816B66D5 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */; }; + F2D899C7AA0D7FC20160091BB9D31CF3 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D7668C9068459DA53626C11CC3A364 /* UIImageView+AFNetworking.m */; }; + F36EA44AC96E1D0AFBC3061569B66BF1 /* VIMRecommendation.h in Headers */ = {isa = PBXBuildFile; fileRef = 295021DB4F5EBF6BD2E1C60703E3E2D9 /* VIMRecommendation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F5E6F5F26F2A0FBAD39DFCC082B71083 /* VIMSoundtrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C5686958BB43876F21E70E9627CFA06 /* VIMSoundtrack.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B2B4EA4DB47084F317FFA4C51ADC9C /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F918C94B773F6FAE6B379A7A216C14DF /* VIMComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B2D0192E9B889AE401D325E73A05B /* VIMComment.m */; }; + F938EE05B1FA2FCD55CAE920B0275003 /* VIMNotificationsConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A744737CCC3FB2DDD29A8A01B7569A /* VIMNotificationsConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; F94CAA71DF535013FE840C72ED995ACA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - F9988F40EBF406C9B8DFBBED61ECFC9C /* Request+Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B39620FF19ACEB51C1DEA18A7A12B2D0 /* Request+Toggle.swift */; }; - FEF6EACE962EAE70E2EAC5F3C83EF7C8 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = A6B196AB2ADA189C96F4A92DF020A2AB /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F99681CD0018DD5318E1C75064153302 /* VIMMappable.h in Headers */ = {isa = PBXBuildFile; fileRef = D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB1D774E4A4E73BEC95B50B24530ADEC /* VIMCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = A962DA72E1B4C69B2EBB0CF5A88E990E /* VIMCategory.m */; }; + FC4467E7982DA5205C40F4CE3876FD62 /* VIMReviewPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57B784EA87250DC92F76F6BF0638D4D2 /* VIMReviewPage.swift */; }; + FD825BEAA765A7ECD5D1A5B90CFD793F /* Request+Trigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = F367284389C8299C9D163BC304C1B1AB /* Request+Trigger.swift */; }; + FDB166270374B08707CC182467E2272E /* Request+Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7426D8145A3155978F0515BEEFCB8447 /* Request+Comment.swift */; }; + FEF6EACE962EAE70E2EAC5F3C83EF7C8 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6BFE7016A60D816B0E3C15C0E2F3BF /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -263,256 +272,265 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 01B662642B6C94DAE9E304C3539BB0F0 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; - 01FD7E491D786675786392B66C27218C /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; - 0279AA9EFAF1A2B4A5CBF25821A5F353 /* Request+Trigger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Trigger.swift"; path = "VimeoNetworking/Sources/Request+Trigger.swift"; sourceTree = ""; }; - 029DD25355A20155F5263F91BB7FEB40 /* VIMCredit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCredit.m; path = VimeoNetworking/Sources/Models/VIMCredit.m; sourceTree = ""; }; - 0627D0F046BC1A05A689F1B332F10429 /* VIMVideoPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.h; sourceTree = ""; }; - 08D1BA8A90EDC00E8EB28A886F2B4CD7 /* VIMActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMActivity.m; path = VimeoNetworking/Sources/Models/VIMActivity.m; sourceTree = ""; }; - 0A255F1E920EA10EF5D5D5D29ABF77DA /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; - 0C2608F23A5BD6202F176337A9F85D70 /* ResponseCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseCache.swift; path = VimeoNetworking/Sources/ResponseCache.swift; sourceTree = ""; }; - 0E61F34F2E6B1E414299E9F4D8B5FFF8 /* VimeoSessionManager+Constructors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+Constructors.swift"; path = "VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift"; sourceTree = ""; }; - 0F622C8797560A4BC9EDB9A36960BB2C /* Objc_ExceptionCatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Objc_ExceptionCatcher.m; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.m; sourceTree = ""; }; - 0F7FE012B283AB95DB394786375AF14C /* VIMVideoFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFile.h; sourceTree = ""; }; + 02AA0046E026ED16E0F011492A681913 /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; + 0338339E81D84468FC3FEC3B4E0B751B /* VIMRecommendation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMRecommendation.m; path = VimeoNetworking/Sources/Models/VIMRecommendation.m; sourceTree = ""; }; + 038F1D2C4FFAF96EF3F4CC8CCA5E1C7D /* VIMUserBadge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUserBadge.m; path = VimeoNetworking/Sources/Models/VIMUserBadge.m; sourceTree = ""; }; + 03C2FA5B57F57E6E4C867E75DC638115 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; + 0910EEA1873F3C909758C2298877AA7E /* Request+Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Category.swift"; path = "VimeoNetworking/Sources/Request+Category.swift"; sourceTree = ""; }; + 0A751CF37C60078D4E14FD77EABB59EA /* VIMLiveStreams.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveStreams.swift; path = VimeoNetworking/Sources/Models/VIMLiveStreams.swift; sourceTree = ""; }; + 0B7817AC6B424B77B067539E39EDA9AB /* VIMUserBadge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUserBadge.h; path = VimeoNetworking/Sources/Models/VIMUserBadge.h; sourceTree = ""; }; + 0C8A79531959161891C56EDD3B8236F9 /* ErrorCode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorCode.swift; path = VimeoNetworking/Sources/ErrorCode.swift; sourceTree = ""; }; + 0CA19508165DFEEB376273E8D4214F59 /* VIMVideoPlayRepresentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayRepresentation.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.h; sourceTree = ""; }; 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-umbrella.h"; sourceTree = ""; }; - 1251E50741E644D6312C93A72D228CC2 /* AccountStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AccountStore.swift; path = VimeoNetworking/Sources/AccountStore.swift; sourceTree = ""; }; - 12603000BA159A15FCFE312613690391 /* VimeoRequestSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoRequestSerializer.swift; path = VimeoNetworking/Sources/VimeoRequestSerializer.swift; sourceTree = ""; }; - 13485EB89727E5D2EC453EE2ACF262B1 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; - 14988764C33C43F624F78A9FD05EA2D7 /* VIMActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMActivity.h; path = VimeoNetworking/Sources/Models/VIMActivity.h; sourceTree = ""; }; - 149A190283760F475F91178FCB276A53 /* VIMVideo+VOD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "VIMVideo+VOD.h"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.h"; sourceTree = ""; }; - 14EA79709F08DA21BEFAD6B727216E8A /* VIMSeason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSeason.h; path = VimeoNetworking/Sources/Models/VIMSeason.h; sourceTree = ""; }; - 1541E9FB35206F5192232467FC5B429D /* VIMUserBadge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUserBadge.m; path = VimeoNetworking/Sources/Models/VIMUserBadge.m; sourceTree = ""; }; - 1625E43ADF6E7014140E962E4D8D2E15 /* Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Subscription.swift; path = VimeoNetworking/Sources/Models/Subscription.swift; sourceTree = ""; }; - 19CEB26626C9812FA30C7379ACA089D6 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; + 10C6713230A87A25B5761E5A3CFC15DD /* VIMPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPreference.h; path = VimeoNetworking/Sources/Models/VIMPreference.h; sourceTree = ""; }; + 144AE47771CA26D2CE6BBA49A5088D4C /* VIMConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMConnection.h; path = VimeoNetworking/Sources/Models/VIMConnection.h; sourceTree = ""; }; + 14F2E19F2D2D74E49166614264DA1D27 /* VIMSeason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSeason.m; path = VimeoNetworking/Sources/Models/VIMSeason.m; sourceTree = ""; }; + 157C7EA514B07C841D376B315F5F1636 /* VIMPicture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPicture.m; path = VimeoNetworking/Sources/Models/VIMPicture.m; sourceTree = ""; }; + 18C1BE847651368C4C25045E57EB0E3F /* VIMVideoProgressiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoProgressiveFile.m; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.m; sourceTree = ""; }; + 198A0FC4821182C1441C3278B81533C1 /* Dictionary+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Dictionary+Extension.swift"; path = "VimeoNetworking/Sources/Dictionary+Extension.swift"; sourceTree = ""; }; + 199439094EAB2A988BAED89C1771A848 /* VIMSpace.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMSpace.swift; path = VimeoNetworking/Sources/Models/VIMSpace.swift; sourceTree = ""; }; + 19E82E7A6452665F31AB0160C36C0040 /* PlayProgress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlayProgress.swift; path = VimeoNetworking/Sources/Models/PlayProgress.swift; sourceTree = ""; }; + 1A455D143B6438B58518F3865A903EE1 /* VIMObjectMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMObjectMapper.h; path = VimeoNetworking/Sources/Models/VIMObjectMapper.h; sourceTree = ""; }; + 1A986CC4EDA505946FE3258B89387779 /* Request+Toggle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Toggle.swift"; path = "VimeoNetworking/Sources/Request+Toggle.swift"; sourceTree = ""; }; + 1AB2176333C0C42F40BD13E4DDE0640A /* SubscriptionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionCollection.swift; path = VimeoNetworking/Sources/Models/SubscriptionCollection.swift; sourceTree = ""; }; + 1B89681226395449BB402C81A1ED264E /* VimeoSessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoSessionManager.swift; path = VimeoNetworking/Sources/VimeoSessionManager.swift; sourceTree = ""; }; + 1BF8714B341C956CC960D5F6F5FD061B /* VIMComment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMComment.h; path = VimeoNetworking/Sources/Models/VIMComment.h; sourceTree = ""; }; 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-umbrella.h"; sourceTree = ""; }; 1C6422F81EA10F0A3062FC248BE9659A /* Pods_VimeoUpload_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS.framework; path = "Pods-VimeoUpload-iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1D06933F7D0190E13136B6084CCF19FD /* VIMVideoHLSFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoHLSFile.h; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.h; sourceTree = ""; }; - 1DD953AC1282A72EB724028504DB991B /* VIMPictureCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPictureCollection.m; path = VimeoNetworking/Sources/Models/VIMPictureCollection.m; sourceTree = ""; }; + 1DB8B03BA0C91F983BEBB7D468AA4F10 /* VIMQuantityQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMQuantityQuota.m; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.m; sourceTree = ""; }; 1E2C31E1C5219A492BA51ECF975649C4 /* Pods-VimeoUpload-iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-acknowledgements.plist"; sourceTree = ""; }; - 1F5BC750D923B3B868099617A48936CF /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + 1EE9E0E05929DC3AFDF6276C52E5988C /* ExceptionCatcher+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ExceptionCatcher+Swift.swift"; path = "VimeoNetworking/Sources/ExceptionCatcher+Swift.swift"; sourceTree = ""; }; 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-dummy.m"; sourceTree = ""; }; - 20B9A2C2DE00876AF465AD16D2C4C5BA /* VIMSizeQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSizeQuota.m; path = VimeoNetworking/Sources/Models/VIMSizeQuota.m; sourceTree = ""; }; - 213E236A9902F5C48054532E31B83A86 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; - 223024B664957866BB751A1110F1B9F0 /* VIMCredit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCredit.h; path = VimeoNetworking/Sources/Models/VIMCredit.h; sourceTree = ""; }; - 2258E00A17D080420C729F636C7DA1FF /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; - 23AB835CE25AE0CA04362D10838A3CF0 /* VIMCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCategory.h; path = VimeoNetworking/Sources/Models/VIMCategory.h; sourceTree = ""; }; - 281BE9E67D00EF177F449FA07B3FB9C6 /* VIMUserBadge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUserBadge.h; path = VimeoNetworking/Sources/Models/VIMUserBadge.h; sourceTree = ""; }; + 221D6F45BA640AE1C73F34B0D416ADA7 /* VIMProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMProgrammedContent.swift; path = VimeoNetworking/Sources/Models/VIMProgrammedContent.swift; sourceTree = ""; }; + 2306B631FE1354BD0E5B81E1EB94D032 /* AppConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppConfiguration.swift; path = VimeoNetworking/Sources/AppConfiguration.swift; sourceTree = ""; }; + 24231BD46B3810C7B980D8C357456050 /* VIMCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCategory.h; path = VimeoNetworking/Sources/Models/VIMCategory.h; sourceTree = ""; }; + 242A72850AA33ABD4DCB90C46D7EBBF7 /* VIMQuantityQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMQuantityQuota.h; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.h; sourceTree = ""; }; + 245BD1E8B3E5BE71C829B996E257207C /* VIMSeason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSeason.h; path = VimeoNetworking/Sources/Models/VIMSeason.h; sourceTree = ""; }; + 2712EE1D549F6E58A7BB81334B608446 /* Request+Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Cache.swift"; path = "VimeoNetworking/Sources/Request+Cache.swift"; sourceTree = ""; }; 2823D0E27387DEDA4CD0C3CFBCC0B44F /* Pods-VimeoUpload-iOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-frameworks.sh"; sourceTree = ""; }; + 295021DB4F5EBF6BD2E1C60703E3E2D9 /* VIMRecommendation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMRecommendation.h; path = VimeoNetworking/Sources/Models/VIMRecommendation.h; sourceTree = ""; }; + 29EC2A207160C6ABAABFFB2C7CEF0193 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = VimeoNetworking/Sources/Constants.swift; sourceTree = ""; }; 2A3F72A38ECAA6689938E0DD34F3126A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 2A556F76898649B5A28BDB5446ED8308 /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig"; sourceTree = ""; }; - 2B409357FA7F1EE47504EB11F838F1FD /* VIMVideoDRMFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDRMFiles.m; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.m; sourceTree = ""; }; - 2B670858BCB563B5FDA0DFAF36BAC42E /* VIMComment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMComment.m; path = VimeoNetworking/Sources/Models/VIMComment.m; sourceTree = ""; }; - 2BC19A9538D0325AF47F77D4BDAB05E5 /* VimeoClient.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoClient.swift; path = VimeoNetworking/Sources/VimeoClient.swift; sourceTree = ""; }; + 2A642117F7C53CF7A21E344EBF7E7936 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = VimeoNetworking/Sources/Request.swift; sourceTree = ""; }; + 2B791FB955CB509E19E5ECC15E7EA5C5 /* VIMVideoHLSFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoHLSFile.m; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.m; sourceTree = ""; }; 2BF35D801896FA2A238107E3F9288174 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-frameworks.sh"; sourceTree = ""; }; - 2C1DAA99F189991E9808E85A60902767 /* VIMTag.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTag.m; path = VimeoNetworking/Sources/Models/VIMTag.m; sourceTree = ""; }; + 2C5686958BB43876F21E70E9627CFA06 /* VIMSoundtrack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSoundtrack.h; path = VimeoNetworking/Sources/Models/VIMSoundtrack.h; sourceTree = ""; }; 2CF57E9BE891732B80AD558CB436D205 /* Pods_VimeoUpload_iOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOSTests.framework; path = "Pods-VimeoUpload-iOSTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D394EBCF2013AC95F4F316F6683EA0C /* VimeoReachability.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoReachability.swift; path = VimeoNetworking/Sources/VimeoReachability.swift; sourceTree = ""; }; - 2D775ED9A8AEEA1BBA968B5740A34BFD /* Request+User.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+User.swift"; path = "VimeoNetworking/Sources/Request+User.swift"; sourceTree = ""; }; - 2E6285983C1A0FF3F9827AE9B15D6EAB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2D8CA2B775AA3E87695D6EE18C37FFA4 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; + 2E0B01CEC75D6CABBC311CA2D4DCE1D9 /* VIMVideoFairPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFairPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.m; sourceTree = ""; }; 2EC7C61DABF8951A8EA0284CE90D8C35 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig"; sourceTree = ""; }; + 2F3866AD6DB44ABC273BA0B914652B6F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 300CFD20A787C853925F7BAE4CBFAA57 /* Request+Picture.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Picture.swift"; path = "VimeoNetworking/Sources/Request+Picture.swift"; sourceTree = ""; }; 30232B7C92B3EA202FD3EBDCE7FCA62E /* Pods-VimeoUpload-iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-acknowledgements.markdown"; sourceTree = ""; }; + 31D638862512159911B72BCEA7447DC2 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; 3210E8330EE38198AC23E6AE501C828F /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-resources.sh"; sourceTree = ""; }; - 338DFD9D7A1D0BF695F33079268D7506 /* VIMAccount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAccount.m; path = VimeoNetworking/Sources/Models/VIMAccount.m; sourceTree = ""; }; - 33B7F78148EB2BCFE6839B0A753DA5A7 /* VIMQuantityQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMQuantityQuota.m; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.m; sourceTree = ""; }; - 3731BACEDB31E0440FF7D8D8C0C5E492 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = VimeoNetworking/Sources/Constants.swift; sourceTree = ""; }; - 37C980B8A834DB882EE016253A514531 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; - 3955D9A7EC2CD5C86E892193E62E9E0F /* Request+Comment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Comment.swift"; path = "VimeoNetworking/Sources/Request+Comment.swift"; sourceTree = ""; }; - 3BD0889F5B218566401FFF6EFC7448B1 /* VIMSeason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSeason.m; path = VimeoNetworking/Sources/Models/VIMSeason.m; sourceTree = ""; }; - 3BFCEC6FBC3145714CC6CF4DFC949341 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; + 34C6DA693B07265C4DCBAE97EE2D5594 /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; + 3B507D130FFEBCD98C817BB196466C70 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + 3BB9383C2F5F90FE89247B5400744EEE /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; + 3C2D82462A8952625139EFE730A1D996 /* Request+User.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+User.swift"; path = "VimeoNetworking/Sources/Request+User.swift"; sourceTree = ""; }; + 3CEE095D5D41BE01E7A438719525079D /* VIMObjectMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMObjectMapper.m; path = VimeoNetworking/Sources/Models/VIMObjectMapper.m; sourceTree = ""; }; + 3DC534095BB14D1CFB95B341D8F3BA47 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; 3DF748E9534F1105869E8635FABD2DB5 /* Pods-VimeoUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-acknowledgements.markdown"; sourceTree = ""; }; - 40C278A2D7295B9C745A8F7C78D039A3 /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; - 40FF5ABC89E5B4D81BB332308EBD6ABA /* VIMVODConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODConnection.h; path = VimeoNetworking/Sources/Models/VIMVODConnection.h; sourceTree = ""; }; - 439CBA3DC46A23846FBD30F048BE086A /* VIMSoundtrack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSoundtrack.h; path = VimeoNetworking/Sources/Models/VIMSoundtrack.h; sourceTree = ""; }; - 494E66C69C53C64522E95F995B56BAB5 /* VIMVideoPlayRepresentation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayRepresentation.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.m; sourceTree = ""; }; + 3FCEA14CC7DF08D617ED59064F004953 /* VIMVideoPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.m; sourceTree = ""; }; + 404EBED1541B755FB84CEB0B6BF5B214 /* VIMUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMUploadTicket.m; sourceTree = ""; }; + 40F99392B8A59926F90CF0019AC7D57D /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = VimeoNetworking/Sources/Result.swift; sourceTree = ""; }; + 4148FF8C4708BAD38593A015777E7E41 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; + 434D92DDD616ED26F2A45C6EAB3DF3C2 /* VIMTrigger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTrigger.h; path = VimeoNetworking/Sources/Models/VIMTrigger.h; sourceTree = ""; }; + 44F122B80BACFA0494C2CFB8D9923E4C /* VIMInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMInteraction.h; path = VimeoNetworking/Sources/Models/VIMInteraction.h; sourceTree = ""; }; + 45A744737CCC3FB2DDD29A8A01B7569A /* VIMNotificationsConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotificationsConnection.h; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.h; sourceTree = ""; }; + 4649337C65FD272A0B75F156507DBF18 /* AuthenticationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationController.swift; path = VimeoNetworking/Sources/AuthenticationController.swift; sourceTree = ""; }; + 4791D611DF81AF66DC55313D98C6202C /* VIMVideoProgressiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoProgressiveFile.h; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.h; sourceTree = ""; }; + 48A729E1418F915B16FCDBA79BF2E2EF /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = AFNetworking.modulemap; sourceTree = ""; }; + 48ADFB75E39D89D3FC25BA8311A8A3F8 /* VIMPrivacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPrivacy.m; path = VimeoNetworking/Sources/Models/VIMPrivacy.m; sourceTree = ""; }; 49926875B9F5E4B438C6D0FDAEE093A2 /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-resources.sh"; sourceTree = ""; }; - 49CF485D82938742667C3CB53CCE9FED /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; - 49FDC86C4F0DDC07BF2B3A89084F05AF /* VIMUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUser.m; path = VimeoNetworking/Sources/Models/VIMUser.m; sourceTree = ""; }; - 4A5768E8C2A4AD09EE82653EC6A4E43A /* VIMChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMChannel.m; path = VimeoNetworking/Sources/Models/VIMChannel.m; sourceTree = ""; }; - 4A6089F06B69AA4011F16D1BE20C6240 /* VIMTrigger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTrigger.h; path = VimeoNetworking/Sources/Models/VIMTrigger.h; sourceTree = ""; }; - 4D38065BB0B23FBE674985A0F8B72EC9 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = VimeoNetworking/Sources/Result.swift; sourceTree = ""; }; - 4D485D3D976CC90259E83A2E9452E4A9 /* VIMComment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMComment.h; path = VimeoNetworking/Sources/Models/VIMComment.h; sourceTree = ""; }; - 4E79D6C3283CB5EF1812B0021DA11FC5 /* VIMUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMUploadTicket.h; sourceTree = ""; }; - 4F578FD9D3A32CB94B4560392C77383F /* Objc_ExceptionCatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Objc_ExceptionCatcher.h; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.h; sourceTree = ""; }; - 4FBA6678CB2E7680B2E44F4375609022 /* VimeoSessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoSessionManager.swift; path = VimeoNetworking/Sources/VimeoSessionManager.swift; sourceTree = ""; }; + 4DB684C35D18CE0200411F5A0B79CFCD /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; 4FD417247D6F2F5D88E1083E3FB8227F /* Pods-VimeoUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-acknowledgements.plist"; sourceTree = ""; }; - 500FE9C937B576F7F751188E9C8B58C2 /* VIMNotificationsConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotificationsConnection.h; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.h; sourceTree = ""; }; - 528FFF37101F041C21101734F752C2AE /* VIMVideoPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPreference.h; path = VimeoNetworking/Sources/Models/VIMVideoPreference.h; sourceTree = ""; }; + 50CF7C4EB12469B6AD2059AF45FA8ECB /* VIMVideoUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoUtils.m; path = VimeoNetworking/Sources/Models/VIMVideoUtils.m; sourceTree = ""; }; 533C56098EE9CDC9C94F3635F25A9F98 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.release.xcconfig"; sourceTree = ""; }; - 54035CD32BBAAD35D60CCBDDEC9CEE44 /* ExceptionCatcher+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ExceptionCatcher+Swift.swift"; path = "VimeoNetworking/Sources/ExceptionCatcher+Swift.swift"; sourceTree = ""; }; - 5427FA6B4360346236E6133084DFC10E /* Spatial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Spatial.swift; path = VimeoNetworking/Sources/Models/Spatial.swift; sourceTree = ""; }; 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 54DC90B45F8449D72BD99F888633B19A /* VIMPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPreference.h; path = VimeoNetworking/Sources/Models/VIMPreference.h; sourceTree = ""; }; - 58B62EE71CA018F665D8A742ADA3787A /* Request+PolicyDocument.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+PolicyDocument.swift"; path = "VimeoNetworking/Sources/Request+PolicyDocument.swift"; sourceTree = ""; }; - 58E8E3B2AB8BBBBA38D3F57103C1E48D /* VIMThumbnailUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMThumbnailUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.h; sourceTree = ""; }; + 55D5445B186DDBBEC7D7A9B467FC2E6A /* VIMObjectMapper+Generic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VIMObjectMapper+Generic.swift"; path = "VimeoNetworking/Sources/VIMObjectMapper+Generic.swift"; sourceTree = ""; }; + 574D37AFD6B63C7C543B8DDCC8BBCDCD /* Scope.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scope.swift; path = VimeoNetworking/Sources/Scope.swift; sourceTree = ""; }; + 57B784EA87250DC92F76F6BF0638D4D2 /* VIMReviewPage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMReviewPage.swift; path = VimeoNetworking/Sources/Models/VIMReviewPage.swift; sourceTree = ""; }; + 58047C8CC5F49283333E246CA9F56BFA /* VIMVideoPlayRepresentation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayRepresentation.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.m; sourceTree = ""; }; + 58588D4FE9CAD101CBA9E66CF55B111F /* VIMAppeal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAppeal.m; path = VimeoNetworking/Sources/Models/VIMAppeal.m; sourceTree = ""; }; 590A00F4B0511AE74E5A1DE651C5634A /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; + 592399628685EEA2CBCEAA22472FB309 /* Request+Authentication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Authentication.swift"; path = "VimeoNetworking/Sources/Request+Authentication.swift"; sourceTree = ""; }; + 594B408BD401FB948979F4BDA15CC9EA /* VIMVideo+VOD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VIMVideo+VOD.m"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.m"; sourceTree = ""; }; 59ACC3119383FFF4846D1E7814D14DFB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5A1207562C5BD2A71A7DC1A59A824D64 /* Request+Picture.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Picture.swift"; path = "VimeoNetworking/Sources/Request+Picture.swift"; sourceTree = ""; }; - 5AF82FDAADDBD52AD4A5E5FD40451B8F /* VIMSoundtrack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSoundtrack.m; path = VimeoNetworking/Sources/Models/VIMSoundtrack.m; sourceTree = ""; }; - 5C725AE77AFC85C663E9277B7E56E7F1 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5C9F540643D34B036DF1F955F1B4921C /* KeychainStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainStore.swift; path = VimeoNetworking/Sources/KeychainStore.swift; sourceTree = ""; }; + 5A3A4AC7EEAC2A5D6B93D6AA8DA6DEE8 /* Request+Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Notifications.swift"; path = "VimeoNetworking/Sources/Request+Notifications.swift"; sourceTree = ""; }; + 5C4B2D0192E9B889AE401D325E73A05B /* VIMComment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMComment.m; path = VimeoNetworking/Sources/Models/VIMComment.m; sourceTree = ""; }; 5CCA2741496873A942541EFBB5531983 /* Pods-VimeoUpload-iOSTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-resources.sh"; sourceTree = ""; }; - 5DFE210185943D679FFCBBA4B56CF1A6 /* Scope.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scope.swift; path = VimeoNetworking/Sources/Scope.swift; sourceTree = ""; }; - 5FECF370ACCB82ABBBADEB2C23066C4F /* Request+Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Cache.swift"; path = "VimeoNetworking/Sources/Request+Cache.swift"; sourceTree = ""; }; - 600D472EDC99CA818353A5D89F987011 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; - 635406386C5C563BE8F30C456CF4EBDE /* VIMConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMConnection.h; path = VimeoNetworking/Sources/Models/VIMConnection.h; sourceTree = ""; }; - 63AC97C994F4A5DEDCFAB03FE2835587 /* VIMPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPreference.m; path = VimeoNetworking/Sources/Models/VIMPreference.m; sourceTree = ""; }; - 6402A355C8648B1DF96ACEBE585B656F /* VIMVODConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODConnection.m; path = VimeoNetworking/Sources/Models/VIMVODConnection.m; sourceTree = ""; }; - 68D1AD311A8197BF776022C79C5F1ACE /* VIMVideoPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.m; sourceTree = ""; }; - 6A0A4AB2432D657C9297E64DCDDB03A9 /* VimeoNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VimeoNetworking-dummy.m"; sourceTree = ""; }; + 5D59C2A0B1AC7D635763EE682582F1C1 /* VIMVideoDRMFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDRMFiles.h; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.h; sourceTree = ""; }; + 5E4FA6AA687FAD3C73FA4D5F778B6994 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; + 5FC7D02188E2C34BE891C0A1C34CE10A /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; + 6009E10F0E97820B85D42C5B1B5EADFB /* VIMVideoDRMFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDRMFiles.m; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.m; sourceTree = ""; }; + 633F03E86937C4E4A5EB10440B86406E /* VIMTag.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTag.m; path = VimeoNetworking/Sources/Models/VIMTag.m; sourceTree = ""; }; + 6497695CF3E669E163206BB20DBAFE53 /* VIMGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMGroup.h; path = VimeoNetworking/Sources/Models/VIMGroup.h; sourceTree = ""; }; + 64F81D9AB162FD3AFF5E21392C105385 /* VIMVideo+VOD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "VIMVideo+VOD.h"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.h"; sourceTree = ""; }; + 66DF12E58DBB07F4E0A32A90407E7F10 /* VIMVideoPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPreference.h; path = VimeoNetworking/Sources/Models/VIMVideoPreference.h; sourceTree = ""; }; + 67584EC80399FD96630D745DA4D1A98F /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; + 67E8730E582CED91AFE4FA07B317CF43 /* VIMVideo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideo.h; path = VimeoNetworking/Sources/Models/VIMVideo.h; sourceTree = ""; }; + 686E7A5A8052386182347D07482C3C67 /* VIMUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMUploadTicket.h; sourceTree = ""; }; + 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VimeoNetworking.xcconfig; sourceTree = ""; }; 6A7DD13AE760F49BD336D2C01BAA7890 /* Pods-VimeoUpload-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.debug.xcconfig"; sourceTree = ""; }; - 6A8AD460DA5A2F6BCCC1E450EFCD4B60 /* VIMUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUser.h; path = VimeoNetworking/Sources/Models/VIMUser.h; sourceTree = ""; }; 6AC1A1CA96496068B2690A54CEA6343D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 6BF8E52D1956FDF3113B95BEC7B01C97 /* VimeoNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = VimeoNetworking.modulemap; sourceTree = ""; }; 6C6F9D9FE6FFC0791183DADBD393CBFE /* Pods_VimeoUpload_iOS_OldUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS_OldUpload.framework; path = "Pods-VimeoUpload-iOS-OldUpload.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 6C9FDB087D69B2FF78F76AAF8C24EA80 /* Pods-VimeoUpload-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS.modulemap"; sourceTree = ""; }; - 6E34B0E33381605BC20762BA521A846C /* VIMRecommendation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMRecommendation.h; path = VimeoNetworking/Sources/Models/VIMRecommendation.h; sourceTree = ""; }; + 6D47993D1669EDACAE23DDA31EE1D750 /* VIMActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMActivity.m; path = VimeoNetworking/Sources/Models/VIMActivity.m; sourceTree = ""; }; + 6DAFB57C55DAA0F49681B1626DBE7837 /* VimeoReachability.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoReachability.swift; path = VimeoNetworking/Sources/VimeoReachability.swift; sourceTree = ""; }; 6ED127F95CDCB38838CC180BF12E4D55 /* Pods-VimeoUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-resources.sh"; sourceTree = ""; }; - 70A33F9F7F54570EFF69A144E3A3F760 /* VIMVideo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideo.m; path = VimeoNetworking/Sources/Models/VIMVideo.m; sourceTree = ""; }; - 70B44A30D123EB8B4E494C3750DC262F /* VIMProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMProgrammedContent.swift; path = VimeoNetworking/Sources/Models/VIMProgrammedContent.swift; sourceTree = ""; }; 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUploadTests-dummy.m"; sourceTree = ""; }; + 714AC1F0B428E041A21A3D9426A0F56D /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; + 714C5B0978A3C1F5DFD5196353A4674C /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; + 71DED1DC4C3953219DB409A92F0E546F /* VIMAppeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAppeal.h; path = VimeoNetworking/Sources/Models/VIMAppeal.h; sourceTree = ""; }; + 72072E5C11559FE8537DE973FA72BA21 /* VimeoNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-prefix.pch"; sourceTree = ""; }; 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; - 761B02BADB3E7B60DB3FF23CD76B6AF2 /* VIMVideoHLSFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoHLSFile.m; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.m; sourceTree = ""; }; - 77C69108CD986B77A9C0122212FD6613 /* PlayProgress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlayProgress.swift; path = VimeoNetworking/Sources/Models/PlayProgress.swift; sourceTree = ""; }; - 78D4C6E7DFAF7621B138929C43CEAD58 /* VIMUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMUploadTicket.m; sourceTree = ""; }; - 78E698DE1E56024C0E969710944608D8 /* VimeoNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VimeoNetworking.h; path = VimeoNetworking/Sources/VimeoNetworking.h; sourceTree = ""; }; - 7AED40431616221804026E870D2C4C82 /* Request+Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Category.swift"; path = "VimeoNetworking/Sources/Request+Category.swift"; sourceTree = ""; }; - 7C61AA5DF51D49E9C9ADF4B82C45FE7B /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; - 7E1665CCFC918114440A9C679C0EBC34 /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; - 7EB63AB5D89A08887565D82CBAC4A0A3 /* ErrorCode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorCode.swift; path = VimeoNetworking/Sources/ErrorCode.swift; sourceTree = ""; }; - 7EDADBD03E681FF52A2DE74B6E5A00A4 /* VIMVideo+VOD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VIMVideo+VOD.m"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.m"; sourceTree = ""; }; - 7F86DFC5D05E754156CA58540DAA1BAC /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; - 7FA3810B9E6829C7403D5D0F19EDACFD /* VIMVideoPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPreference.m; path = VimeoNetworking/Sources/Models/VIMVideoPreference.m; sourceTree = ""; }; + 7426D8145A3155978F0515BEEFCB8447 /* Request+Comment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Comment.swift"; path = "VimeoNetworking/Sources/Request+Comment.swift"; sourceTree = ""; }; + 76326C8C4F0A2A5409134F265A781ACD /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; + 770CD4C87AE1AA8397D0F6E251DCC540 /* VIMTrigger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTrigger.m; path = VimeoNetworking/Sources/Models/VIMTrigger.m; sourceTree = ""; }; + 7983F38BB3C81F07425BFAF1E6289C43 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; + 7AC12ADD13D05812352645C5BAEFD99D /* digicert-sha2.cer */ = {isa = PBXFileReference; includeInIndex = 1; name = "digicert-sha2.cer"; path = "VimeoNetworking/Resources/digicert-sha2.cer"; sourceTree = ""; }; + 7BD6B4F1BB9B251C7BEC59722C42AB0B /* VIMActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMActivity.h; path = VimeoNetworking/Sources/Models/VIMActivity.h; sourceTree = ""; }; + 7D22624966A39C8E5C113CBF14F4C8CE /* VIMPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPreference.m; path = VimeoNetworking/Sources/Models/VIMPreference.m; sourceTree = ""; }; + 7DE0E38A99298F3EF954325E154AA215 /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; + 7FE473E948247E7F9972B5508A413C38 /* VIMLiveChat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveChat.swift; path = VimeoNetworking/Sources/Models/VIMLiveChat.swift; sourceTree = ""; }; 80E26D00B3A1139F9D88C0E57B6F0DA3 /* Pods-VimeoUpload-iOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.debug.xcconfig"; sourceTree = ""; }; - 813FFFC7FD25CCBEFAADC204524CBF26 /* VIMObjectMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMObjectMapper.h; path = VimeoNetworking/Sources/Models/VIMObjectMapper.h; sourceTree = ""; }; 81B9D7C302854F8DDD4076AE8D68B1B7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8251D7E0AE21801085F5938A385FEECA /* Request+Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Notifications.swift"; path = "VimeoNetworking/Sources/Request+Notifications.swift"; sourceTree = ""; }; 84027987FF22C70AB94CB6DB9FB0CBD5 /* Pods_VimeoUpload_iOS_OldUploadTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS_OldUploadTests.framework; path = "Pods-VimeoUpload-iOS-OldUploadTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 85AE31BCA21D12620C2D9B0F9386A7EA /* VIMVideoPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.h; sourceTree = ""; }; 8854A148A98E4C656CC085331FEE2A76 /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh"; sourceTree = ""; }; - 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; - 8A0EACC1726F08952CBA6D09D34A5E69 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; - 8A85F49E86198194EBD238BC4D17B241 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; - 8B32A79195E4789E0D38A7C199CAB76A /* Request+Channel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Channel.swift"; path = "VimeoNetworking/Sources/Request+Channel.swift"; sourceTree = ""; }; - 8B62CA840DF965405A11E44123254BAC /* VIMVideoDRMFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDRMFiles.h; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.h; sourceTree = ""; }; - 8C5391EE3E5EBC61C92F45484F77F90B /* VIMVODItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODItem.h; path = VimeoNetworking/Sources/Models/VIMVODItem.h; sourceTree = ""; }; + 8BA8C97144A1B46C16C2425AD02F2647 /* VIMChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMChannel.h; path = VimeoNetworking/Sources/Models/VIMChannel.h; sourceTree = ""; }; + 8BC4A625F838AE6E28EAA14F8EABBEEE /* VIMAccount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAccount.m; path = VimeoNetworking/Sources/Models/VIMAccount.m; sourceTree = ""; }; 8D434E487EE19FF84352C937F1008B3B /* Pods-VimeoUpload-iOS-OldUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS-OldUpload.modulemap"; sourceTree = ""; }; - 8E9A61DA32392AD194FABDB69398E9DA /* Request+ProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+ProgrammedContent.swift"; path = "VimeoNetworking/Sources/Request+ProgrammedContent.swift"; sourceTree = ""; }; - 90087B0D4E77D07B4E9F1D217680CB6B /* VIMVideoFairPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFairPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.h; sourceTree = ""; }; + 8D9225F1748860C325BC0B5470023589 /* Request+Configs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Configs.swift"; path = "VimeoNetworking/Sources/Request+Configs.swift"; sourceTree = ""; }; + 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUploadQuota.swift; path = VimeoNetworking/Sources/Models/VIMUploadQuota.swift; sourceTree = ""; }; + 8E6BFE7016A60D816B0E3C15C0E2F3BF /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; + 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMThumbnailUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.m; sourceTree = ""; }; + 8ED7E045948374FAE37E1258BA3366F1 /* VIMNotificationsConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotificationsConnection.m; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.m; sourceTree = ""; }; 90CE0CDA94D5A8DDA81A0AA529497EEB /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOSTests-acknowledgements.markdown"; sourceTree = ""; }; - 9181B76CF70F368A91B6164CF5EA35AF /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; - 927C6F167862BCAC06F4E08000EB8C58 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; + 91179DF7663D831C96D269BFB58AD522 /* VIMCredit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCredit.m; path = VimeoNetworking/Sources/Models/VIMCredit.m; sourceTree = ""; }; 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9468DEA78D57D9B0E4C7AC7F5E504C7B /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; 95D6664DF623C80FB5A5C526B85C924B /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload.framework; path = "Pods-VimeoUpload.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 95DCAF0CD8E8A04FB849D0EB3ED32D01 /* VIMPicture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPicture.h; path = VimeoNetworking/Sources/Models/VIMPicture.h; sourceTree = ""; }; - 9717512502B2CBB64AF956ABFD3ECF10 /* Request+Configs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Configs.swift"; path = "VimeoNetworking/Sources/Request+Configs.swift"; sourceTree = ""; }; - 994751133E5FF4982C5BCE1CAAB6A78B /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; - 9A4BE21C00C1529F947AEADC6AFEC0AB /* VIMRecommendation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMRecommendation.m; path = VimeoNetworking/Sources/Models/VIMRecommendation.m; sourceTree = ""; }; + 98158361BFB9C60E8591A14756CDA100 /* VimeoClient.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoClient.swift; path = VimeoNetworking/Sources/VimeoClient.swift; sourceTree = ""; }; + 9899127E9167B9D6EBA7784D892653A2 /* VIMModelObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMModelObject.m; path = VimeoNetworking/Sources/Models/VIMModelObject.m; sourceTree = ""; }; + 9916C267E80CB2567193FDE98D596CCC /* VimeoNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VimeoNetworking-dummy.m"; sourceTree = ""; }; + 9A25EFA17D3547663AC40E439C04067B /* AccountStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AccountStore.swift; path = VimeoNetworking/Sources/AccountStore.swift; sourceTree = ""; }; 9ACF5761B029845B3F2897FDE0D45BB0 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist"; sourceTree = ""; }; - 9AF9D80E0A02BB32BC9B773852EB179C /* VIMNotificationsConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotificationsConnection.m; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.m; sourceTree = ""; }; 9BB0F28B65CFA82A1097FD4C71DA0487 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist"; sourceTree = ""; }; - 9CB779FF1FA13F0CA99A13B6A0857464 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = VimeoNetworking/Sources/Response.swift; sourceTree = ""; }; - 9D84ED393688D7F4321FF3478294DAAA /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; + 9D02A2893866B878CFEE338D26DC5313 /* Request+Video.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Video.swift"; path = "VimeoNetworking/Sources/Request+Video.swift"; sourceTree = ""; }; 9E78D488EE2F56C490F374FBD83C1062 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown"; sourceTree = ""; }; - 9FE2618631D9AF7217C1FC477FE2046E /* VIMObjectMapper+Generic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VIMObjectMapper+Generic.swift"; path = "VimeoNetworking/Sources/VIMObjectMapper+Generic.swift"; sourceTree = ""; }; - A0648207A189AF57F74C57B6416EFA4B /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; - A17090BB86BF96FF7E88156C3CB28957 /* AuthenticationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationController.swift; path = VimeoNetworking/Sources/AuthenticationController.swift; sourceTree = ""; }; - A287772AED26189394F852F1383AC103 /* Request+Soundtrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Soundtrack.swift"; path = "VimeoNetworking/Sources/Request+Soundtrack.swift"; sourceTree = ""; }; - A33177A8F3A1862EEA26D30A1D63CC07 /* VIMPicture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPicture.m; path = VimeoNetworking/Sources/Models/VIMPicture.m; sourceTree = ""; }; - A59DE65C23DA87346FB7BB1F08A38182 /* VIMVideoUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoUtils.m; path = VimeoNetworking/Sources/Models/VIMVideoUtils.m; sourceTree = ""; }; - A5CFEC28DA0D60B074FCFDEBB948B940 /* VIMVideoPlayRepresentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayRepresentation.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.h; sourceTree = ""; }; - A5F7EE334D37C9A1E58488BE86B5C0EC /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = AFNetworking.modulemap; sourceTree = ""; }; - A69D06730C5B3566A7B8FF5A91C529C1 /* VIMPolicyDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPolicyDocument.h; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.h; sourceTree = ""; }; - A6B196AB2ADA189C96F4A92DF020A2AB /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; - A784B675172C4B624597642F4BFE56E7 /* SubscriptionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionCollection.swift; path = VimeoNetworking/Sources/Models/SubscriptionCollection.swift; sourceTree = ""; }; - A81FB057C4219FBF8BD3D002E9E7272B /* VimeoNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = VimeoNetworking.modulemap; sourceTree = ""; }; + 9EC36289436BC8F92161297A7A6BB279 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; + 9FD22B103D648342069FE779359C9A56 /* VIMVideoDASHFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDASHFile.m; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.m; sourceTree = ""; }; + A23F6E3249A977997C8255519997C806 /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; + A250189A49355B43BD9E62364DDB456F /* VIMBadge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMBadge.swift; path = VimeoNetworking/Sources/Models/VIMBadge.swift; sourceTree = ""; }; + A27737DBFB0A1312C26B1C96EFC0D9CC /* Mappable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Mappable.swift; path = VimeoNetworking/Sources/Mappable.swift; sourceTree = ""; }; + A303A435EC06435219B38263B54D05FA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A764F24CBBAA6CD584EE0CBFB5F80D40 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; + A7C668C5587BF895640E72EA227806D7 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; + A7C8E8C116C75D16F52EA1D3242FF59D /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOSTests-dummy.m"; sourceTree = ""; }; - A95F8642BCADE8FFFF3519DABF17AB95 /* VIMPrivacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPrivacy.m; path = VimeoNetworking/Sources/Models/VIMPrivacy.m; sourceTree = ""; }; + A962DA72E1B4C69B2EBB0CF5A88E990E /* VIMCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCategory.m; path = VimeoNetworking/Sources/Models/VIMCategory.m; sourceTree = ""; }; + A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; + AA188B201DCC201C7D1451547279808D /* VIMVideoUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoUtils.h; path = VimeoNetworking/Sources/Models/VIMVideoUtils.h; sourceTree = ""; }; AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - AE0DF6D9E98751FE374466891CF22E93 /* VIMObjectMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMObjectMapper.m; path = VimeoNetworking/Sources/Models/VIMObjectMapper.m; sourceTree = ""; }; - AF5691A664BC371E586B7A9B0EA405C8 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; - B39620FF19ACEB51C1DEA18A7A12B2D0 /* Request+Toggle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Toggle.swift"; path = "VimeoNetworking/Sources/Request+Toggle.swift"; sourceTree = ""; }; - B44AB41921F9D9B0620A5C3553FE4B72 /* Request+Video.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Video.swift"; path = "VimeoNetworking/Sources/Request+Video.swift"; sourceTree = ""; }; + AB1A7C0E9CF186DC326357962BEC7AF5 /* VIMPictureCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPictureCollection.m; path = VimeoNetworking/Sources/Models/VIMPictureCollection.m; sourceTree = ""; }; + AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseCache.swift; path = VimeoNetworking/Sources/ResponseCache.swift; sourceTree = ""; }; + AC1504799A29B9D2BC4470E3E39BCA33 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + AD3546051FCB66387E4E83C5B7BBACE9 /* Request+Channel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Channel.swift"; path = "VimeoNetworking/Sources/Request+Channel.swift"; sourceTree = ""; }; + ADD83665EF069AC4808284045A05F4BF /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; + AE40B3ABF25113AD8DB2293E39C0B740 /* Request+ProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+ProgrammedContent.swift"; path = "VimeoNetworking/Sources/Request+ProgrammedContent.swift"; sourceTree = ""; }; + AE97ADD7133B74F569CDBAA703BCFD65 /* VIMPolicyDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPolicyDocument.h; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.h; sourceTree = ""; }; + AEA5F1020ACBC1E16F7C377115328C63 /* Spatial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Spatial.swift; path = VimeoNetworking/Sources/Models/Spatial.swift; sourceTree = ""; }; + B0A90EF0370E7F413E923D813F419C81 /* String+Parameters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Parameters.swift"; path = "VimeoNetworking/Sources/String+Parameters.swift"; sourceTree = ""; }; + B0B2B4EA4DB47084F317FFA4C51ADC9C /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; + B0B8B622C89D248F892F70436F3C4927 /* Request+PolicyDocument.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+PolicyDocument.swift"; path = "VimeoNetworking/Sources/Request+PolicyDocument.swift"; sourceTree = ""; }; + B1A9E4CA052B6791BE98CABC26BDAE96 /* VIMLiveTime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveTime.swift; path = VimeoNetworking/Sources/Models/VIMLiveTime.swift; sourceTree = ""; }; + B3962DB52E64A2446FC1C17FE675A0E6 /* VIMLive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLive.swift; path = VimeoNetworking/Sources/Models/VIMLive.swift; sourceTree = ""; }; B4580F679371388C6FC87FF024534456 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOSTests-acknowledgements.plist"; sourceTree = ""; }; - B4C942B4810471391926C69DDF06F459 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; - B5BD0E4A9E13D4E5939E74CE749ACF61 /* VIMPrivacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPrivacy.h; path = VimeoNetworking/Sources/Models/VIMPrivacy.h; sourceTree = ""; }; + B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODItem.m; path = VimeoNetworking/Sources/Models/VIMVODItem.m; sourceTree = ""; }; + B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; + B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCredit.h; path = VimeoNetworking/Sources/Models/VIMCredit.h; sourceTree = ""; }; B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - B6671E602410D6092439152EADE23607 /* Request+Authentication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Authentication.swift"; path = "VimeoNetworking/Sources/Request+Authentication.swift"; sourceTree = ""; }; - B784B3FDEB773915E04502100EB6F701 /* VIMUploadQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadQuota.h; path = VimeoNetworking/Sources/Models/VIMUploadQuota.h; sourceTree = ""; }; - B7F8E371904C34C30A4498FCCBE5F2AB /* VIMChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMChannel.h; path = VimeoNetworking/Sources/Models/VIMChannel.h; sourceTree = ""; }; - B88A43F94D3F984AA9F607E6D336933C /* Dictionary+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Dictionary+Extension.swift"; path = "VimeoNetworking/Sources/Dictionary+Extension.swift"; sourceTree = ""; }; + B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveQuota.swift; path = VimeoNetworking/Sources/Models/VIMLiveQuota.swift; sourceTree = ""; }; + BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOSTests-umbrella.h"; sourceTree = ""; }; - BC9E61ED1EDFE2CD20FA90CF00D4608B /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; + BCB75948A89DA6FAFB6053EFB7B39628 /* VIMPicture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPicture.h; path = VimeoNetworking/Sources/Models/VIMPicture.h; sourceTree = ""; }; BDEBFF33778D5264ED6AEA58E613AE82 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown"; sourceTree = ""; }; BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - BFECB493111928B6FBC7E30A53CD6C0C /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; + BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Soundtrack.swift"; path = "VimeoNetworking/Sources/Request+Soundtrack.swift"; sourceTree = ""; }; + C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMChannel.m; path = VimeoNetworking/Sources/Models/VIMChannel.m; sourceTree = ""; }; C29192B1F683D403AFFD632D65221D49 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotification.h; path = VimeoNetworking/Sources/Models/VIMNotification.h; sourceTree = ""; }; C4CF223F05BF42A197EEB5B5F427FB15 /* Pods-VimeoUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.debug.xcconfig"; sourceTree = ""; }; - C550175B7EC7075E2835E8C7DCC2723F /* VIMBadge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMBadge.swift; path = VimeoNetworking/Sources/Models/VIMBadge.swift; sourceTree = ""; }; - C5624A087C10DE994D4F380D76D11CD8 /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; - C99148A0B79F2354BFE4ACBDE082A809 /* VIMMappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMMappable.h; path = VimeoNetworking/Sources/Models/VIMMappable.h; sourceTree = ""; }; - C99A95A93AB75AFFF2B725A21CFF7377 /* VIMPictureCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPictureCollection.h; path = VimeoNetworking/Sources/Models/VIMPictureCollection.h; sourceTree = ""; }; - C9EA8CD923B36DA3EAD55FD3879A502F /* VIMVideoUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoUtils.h; path = VimeoNetworking/Sources/Models/VIMVideoUtils.h; sourceTree = ""; }; - CA212CD04BA30762B1CD913421957487 /* VIMTag.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTag.h; path = VimeoNetworking/Sources/Models/VIMTag.h; sourceTree = ""; }; - CA3350835CEC5107C6C293FE2D04E77F /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; + C5E4251390579CA8A4647B705BD6DD41 /* VIMVideoFairPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFairPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.h; sourceTree = ""; }; + C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = VimeoNetworking/Sources/Response.swift; sourceTree = ""; }; + C716B4800FAD0DDAAAFFAB57FFC40242 /* VIMModelObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMModelObject.h; path = VimeoNetworking/Sources/Models/VIMModelObject.h; sourceTree = ""; }; + C83490C101E129974A2EEFB8C04E04EC /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; + C867648C482317091BC988216AE7BCEF /* VIMGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMGroup.m; path = VimeoNetworking/Sources/Models/VIMGroup.m; sourceTree = ""; }; + C8D7668C9068459DA53626C11CC3A364 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; + C8E3687C68FDA0D536295AA785351E89 /* VIMVideoFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFile.h; sourceTree = ""; }; + C913DD9402D7FCE7BBA97568950974A6 /* VIMAccount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAccount.h; path = VimeoNetworking/Sources/Models/VIMAccount.h; sourceTree = ""; }; + C974CC35310983ABAED5BA8CF32332A6 /* Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Subscription.swift; path = VimeoNetworking/Sources/Models/Subscription.swift; sourceTree = ""; }; CA537B840B304BCD493A48F81F820D06 /* Pods-VimeoUpload-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-resources.sh"; sourceTree = ""; }; - CB8AD1BB40CAF74E14801DCD2423742E /* VIMNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotification.m; path = VimeoNetworking/Sources/Models/VIMNotification.m; sourceTree = ""; }; + CAC4F7845137416DDE1B0102830EDF83 /* VIMVODItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODItem.h; path = VimeoNetworking/Sources/Models/VIMVODItem.h; sourceTree = ""; }; + CBE34181F7DEEA3A80140282BBC6AB0B /* VIMNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotification.m; path = VimeoNetworking/Sources/Models/VIMNotification.m; sourceTree = ""; }; CBED8FAC62EC97352938CA51099A55E9 /* Pods-VimeoUpload-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.release.xcconfig"; sourceTree = ""; }; - CC338E19D1B0972E20EE7505BA2A23D2 /* VIMInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMInteraction.h; path = VimeoNetworking/Sources/Models/VIMInteraction.h; sourceTree = ""; }; + CC35A7CF63A081875F9CF7A13AED2B6F /* VIMThumbnailUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMThumbnailUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.h; sourceTree = ""; }; CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUpload-umbrella.h"; sourceTree = ""; }; - CF8F7E3CBB1B67B094851E251BC41BC2 /* VIMSizeQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSizeQuota.h; path = VimeoNetworking/Sources/Models/VIMSizeQuota.h; sourceTree = ""; }; - D112466303A0600AF69CB9E02EAA27E5 /* VIMVideoProgressiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoProgressiveFile.m; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.m; sourceTree = ""; }; - D1C4237239681814FFDD6E43465463EE /* VIMAppeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAppeal.h; path = VimeoNetworking/Sources/Models/VIMAppeal.h; sourceTree = ""; }; - D1F5A4A4953624BBBEF0F5FCB89E5137 /* digicert-sha2.cer */ = {isa = PBXFileReference; includeInIndex = 1; name = "digicert-sha2.cer"; path = "VimeoNetworking/Resources/digicert-sha2.cer"; sourceTree = ""; }; - D2425F9FA4CEFF602F6F4A053F70B656 /* Mappable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Mappable.swift; path = VimeoNetworking/Sources/Mappable.swift; sourceTree = ""; }; - D24A7C1D41EE2BA30BB03DAF0C03B000 /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; - D39B2D537CC8914B5AB105B380641859 /* VIMQuantityQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMQuantityQuota.h; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.h; sourceTree = ""; }; - D3BA141A5553BAF7C116D19D1C669DC6 /* VIMVideoProgressiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoProgressiveFile.h; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.h; sourceTree = ""; }; + CCF8D5A5B94427B5A26BF7A110935D1D /* VIMVideo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideo.m; path = VimeoNetworking/Sources/Models/VIMVideo.m; sourceTree = ""; }; + CF73647B15392A1776EAC7769039E3C1 /* Objc_ExceptionCatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Objc_ExceptionCatcher.h; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.h; sourceTree = ""; }; + CFAE1CB42591FDBB0E3C6CDA2D9D8EBE /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; + CFF010DC16DF0D1F72CC6D06650AFAB1 /* VIMPeriodic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMPeriodic.swift; path = VimeoNetworking/Sources/Models/VIMPeriodic.swift; sourceTree = ""; }; + D14F412DA2B5A72B420B77A5DF82B391 /* VIMLiveChatUser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveChatUser.swift; path = VimeoNetworking/Sources/Models/VIMLiveChatUser.swift; sourceTree = ""; }; D41615CC354B8B0A35926E7CC9AD71F6 /* Pods-VimeoUpload-iOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOSTests.modulemap"; sourceTree = ""; }; - D53F12E8EBC660E39EA3C8787CA543C4 /* VIMAccount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAccount.h; path = VimeoNetworking/Sources/Models/VIMAccount.h; sourceTree = ""; }; - D65690666F392CD6883791300864C4BF /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; - D6E40E32356AA402232F099288457708 /* VIMConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMConnection.m; path = VimeoNetworking/Sources/Models/VIMConnection.m; sourceTree = ""; }; - D8008689D0B9CEE5A8B4F22EDD838235 /* VIMInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMInteraction.m; path = VimeoNetworking/Sources/Models/VIMInteraction.m; sourceTree = ""; }; - D91BABF53F46F9B94488819367CB559E /* VIMUploadQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadQuota.m; path = VimeoNetworking/Sources/Models/VIMUploadQuota.m; sourceTree = ""; }; - DA2A360A317E5BEEB0074445003EDB17 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; - DB074C96C719EAE42367359FBE57E21F /* VIMVideoDASHFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDASHFile.h; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.h; sourceTree = ""; }; - DE1A0D9A33DD15FBE6EBBA8E2BC96A15 /* String+Parameters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Parameters.swift"; path = "VimeoNetworking/Sources/String+Parameters.swift"; sourceTree = ""; }; - DEA77B71C751EBAB48B5E4F1CB110265 /* VIMModelObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMModelObject.m; path = VimeoNetworking/Sources/Models/VIMModelObject.m; sourceTree = ""; }; - DF54671CD48BA10A8DA67E5817580E1A /* VIMAppeal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAppeal.m; path = VimeoNetworking/Sources/Models/VIMAppeal.m; sourceTree = ""; }; - DF6081927D4DC329FD7ED0F883D3B576 /* PinCodeInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeInfo.swift; path = VimeoNetworking/Sources/Models/PinCodeInfo.swift; sourceTree = ""; }; + D4759F58D590C7673A8DD8D567CBAB74 /* VimeoResponseSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoResponseSerializer.swift; path = VimeoNetworking/Sources/VimeoResponseSerializer.swift; sourceTree = ""; }; + D4E0A7B176B3107F86D5A881E57AA5BC /* VimeoRequestSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoRequestSerializer.swift; path = VimeoNetworking/Sources/VimeoRequestSerializer.swift; sourceTree = ""; }; + D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeInfo.swift; path = VimeoNetworking/Sources/Models/PinCodeInfo.swift; sourceTree = ""; }; + D7478AE1D1B107593F1494EC8E78E8B8 /* VIMUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUpload.swift; path = VimeoNetworking/Sources/Models/VIMUpload.swift; sourceTree = ""; }; + D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMMappable.h; path = VimeoNetworking/Sources/Models/VIMMappable.h; sourceTree = ""; }; + D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMSizeQuota.swift; path = VimeoNetworking/Sources/Models/VIMSizeQuota.swift; sourceTree = ""; }; + D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMInteraction.m; path = VimeoNetworking/Sources/Models/VIMInteraction.m; sourceTree = ""; }; + D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Objc_ExceptionCatcher.m; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.m; sourceTree = ""; }; + D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+Constructors.swift"; path = "VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift"; sourceTree = ""; }; E02C81A3C7316395924E658D5BC8F10E /* Pods-VimeoUpload-iOSTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-frameworks.sh"; sourceTree = ""; }; - E057FC5D3359A0584EF6495E7E3F6939 /* NSURLSessionConfiguration+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSessionConfiguration+Extensions.swift"; path = "VimeoNetworking/Sources/NSURLSessionConfiguration+Extensions.swift"; sourceTree = ""; }; - E062278A9F4389EDD1742AD9257524FC /* VIMVideoFairPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFairPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.m; sourceTree = ""; }; - E0B7E1AC52305E19ED018CF401606970 /* NetworkingNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkingNotification.swift; path = VimeoNetworking/Sources/NetworkingNotification.swift; sourceTree = ""; }; E1D8B2BDDECC16F881030CB0199BCF01 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; sourceTree = ""; }; - E5E07926E2F0D6EBCCF626360CF3A857 /* VimeoResponseSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoResponseSerializer.swift; path = VimeoNetworking/Sources/VimeoResponseSerializer.swift; sourceTree = ""; }; - E658A3C4548684F7BC6D6A4843EBEE23 /* AppConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppConfiguration.swift; path = VimeoNetworking/Sources/AppConfiguration.swift; sourceTree = ""; }; + E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPolicyDocument.m; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.m; sourceTree = ""; }; + E356F5BC3EF410C1A8E290BF70EE42EC /* KeychainStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainStore.swift; path = VimeoNetworking/Sources/KeychainStore.swift; sourceTree = ""; }; + E3F3220930C10F8298CDEE754D07F73F /* VIMVideoFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFile.m; sourceTree = ""; }; + E4B18CFCBFD591833D9E6A8BE1F1172C /* VIMVideoPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPreference.m; path = VimeoNetworking/Sources/Models/VIMVideoPreference.m; sourceTree = ""; }; + E522AAA14794E33C4E9EFF0779388907 /* VIMTag.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTag.h; path = VimeoNetworking/Sources/Models/VIMTag.h; sourceTree = ""; }; + E592A244E83255AC4115A868FE02919D /* VIMUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUser.m; path = VimeoNetworking/Sources/Models/VIMUser.m; sourceTree = ""; }; + E5B2FE6582270D74BE0CBFC7A389FC8A /* VIMPictureCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPictureCollection.h; path = VimeoNetworking/Sources/Models/VIMPictureCollection.h; sourceTree = ""; }; E66CADEDAC09183F04136EEF61E99514 /* Pods-VimeoUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload.modulemap"; sourceTree = ""; }; - E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VimeoNetworking.xcconfig; sourceTree = ""; }; - E7907829F15403992DC9A4B548CD41E1 /* NSError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSError+Extensions.swift"; path = "VimeoNetworking/Sources/NSError+Extensions.swift"; sourceTree = ""; }; - E79ADD6A0AFBC97CBC10D3AC1EA024DC /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = VimeoNetworking/Sources/Request.swift; sourceTree = ""; }; - E7FF72F2B598E25BCF0422AC7894A20D /* VIMVODItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODItem.m; path = VimeoNetworking/Sources/Models/VIMVODItem.m; sourceTree = ""; }; - EB013DBE7F6A441F3FC60D8F0F84FE89 /* VIMVideoFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFile.m; sourceTree = ""; }; - ECF46B5E5956D18C9AAD34EE80C8F77E /* VIMModelObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMModelObject.h; path = VimeoNetworking/Sources/Models/VIMModelObject.h; sourceTree = ""; }; + E8614CB362CB4E3C9E03FCDFF2B3727C /* NSURLSessionConfiguration+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSessionConfiguration+Extensions.swift"; path = "VimeoNetworking/Sources/NSURLSessionConfiguration+Extensions.swift"; sourceTree = ""; }; + E8EE2BF5E54CD69A9A8E68E9AA8D06F4 /* VimeoNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VimeoNetworking.h; path = VimeoNetworking/Sources/VimeoNetworking.h; sourceTree = ""; }; + EB03BF3312FAD8B30A9EE17D0AA7BD36 /* NetworkingNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkingNotification.swift; path = VimeoNetworking/Sources/NetworkingNotification.swift; sourceTree = ""; }; + EB3CB90C71820EE74C9F0D2DA4A7B44F /* VIMUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUser.h; path = VimeoNetworking/Sources/Models/VIMUser.h; sourceTree = ""; }; + EC667DA5D9EC1B35E659F3B9E0341C85 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; + EC67B7AD7961570B52C42FF75E469EF7 /* VIMConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMConnection.m; path = VimeoNetworking/Sources/Models/VIMConnection.m; sourceTree = ""; }; + ED3D79C25378B9CD7F9F1F4D28F37C78 /* NSError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSError+Extensions.swift"; path = "VimeoNetworking/Sources/NSError+Extensions.swift"; sourceTree = ""; }; EDF2918E5CB02CFC1ADE04F783E882E5 /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AFNetworking.framework; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EF00725EFACBAD93B7F4DF1A20DC1F42 /* VIMVideoDASHFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDASHFile.m; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.m; sourceTree = ""; }; + EE4DA92A43826C17668392D0C859A80A /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; EF2AA60D6B2F3B5482588A54A11AEE2C /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig"; sourceTree = ""; }; + F014323346C8E3E2BEC80F2E5786B9C9 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUpload-dummy.m"; sourceTree = ""; }; F0E3C679036E864BB4FCA1E4E08863D9 /* VimeoNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = VimeoNetworking.framework; path = VimeoNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F268DB0DE841D483B2E3C48B95F2013B /* VIMTrigger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTrigger.m; path = VimeoNetworking/Sources/Models/VIMTrigger.m; sourceTree = ""; }; - F321BEF3CBD2446312D1D121E254290F /* VIMVideo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideo.h; path = VimeoNetworking/Sources/Models/VIMVideo.h; sourceTree = ""; }; - F4690B8E90016909BB0EA81C311C0953 /* VIMThumbnailUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMThumbnailUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.m; sourceTree = ""; }; - F482E1B7506500767CF4C18ED47EC41B /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; - F4B92013945EAA4735C74F5F20F119CB /* VIMCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCategory.m; path = VimeoNetworking/Sources/Models/VIMCategory.m; sourceTree = ""; }; + F27DFCF446A2BAED340E50B6F721E96C /* VIMVideoHLSFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoHLSFile.h; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.h; sourceTree = ""; }; + F367284389C8299C9D163BC304C1B1AB /* Request+Trigger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Trigger.swift"; path = "VimeoNetworking/Sources/Request+Trigger.swift"; sourceTree = ""; }; F4ED96BBE5EA3EC1EC3534905722909E /* Pods-VimeoUpload-iOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.release.xcconfig"; sourceTree = ""; }; - F5312CFD09774B20432B1B6F083A1BFB /* VimeoNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-prefix.pch"; sourceTree = ""; }; - F5C6F4E723ED9B6BE8833278899E2B7A /* VIMPolicyDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPolicyDocument.m; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.m; sourceTree = ""; }; - F6FB24A5536DD004B48F00834B72CAAA /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; + F5D5EE1E0744442AC49E909AD0D768A9 /* VIMVideoDASHFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDASHFile.h; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.h; sourceTree = ""; }; + F6C8A0A919CEE05D1634AFD91D8693BC /* VIMVODConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODConnection.h; path = VimeoNetworking/Sources/Models/VIMVODConnection.h; sourceTree = ""; }; F74BC0BC96EBD6E2C05C64B9D1AEBACD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F780713BAF9F48FFB39AC81244609869 /* VIMNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotification.h; path = VimeoNetworking/Sources/Models/VIMNotification.h; sourceTree = ""; }; - F9A28D7473445BAC2DF8ED3294808DCF /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; - FA2516A7CB0A50CB9CD1053367E53327 /* VIMGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMGroup.h; path = VimeoNetworking/Sources/Models/VIMGroup.h; sourceTree = ""; }; - FB6A99CF789B5BEA9456117EA2855947 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + F7ABBC91F9865BF0C8F0A5C033AC9F63 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; + F8420F0DF85E78490D2EC6895FB33030 /* VIMSoundtrack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSoundtrack.m; path = VimeoNetworking/Sources/Models/VIMSoundtrack.m; sourceTree = ""; }; + FA4D18A3DC38EBDE55B7E5C609CC71FC /* VIMLiveHeartbeat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveHeartbeat.swift; path = VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift; sourceTree = ""; }; + FC34BB5F2459B8BE2191283BCD59DFFC /* VIMVODConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODConnection.m; path = VimeoNetworking/Sources/Models/VIMVODConnection.m; sourceTree = ""; }; + FC7C28E2007A0256AC662EA7D40A6631 /* VIMPrivacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPrivacy.h; path = VimeoNetworking/Sources/Models/VIMPrivacy.h; sourceTree = ""; }; FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-dummy.m"; sourceTree = ""; }; - FF858E05AAA86C6C60607DC47DA2B2C9 /* VIMGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMGroup.m; path = VimeoNetworking/Sources/Models/VIMGroup.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -580,23 +598,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0688A28EFD0D0A1A7144514DA000857E /* Security */ = { - isa = PBXGroup; - children = ( - 7E1665CCFC918114440A9C679C0EBC34 /* AFSecurityPolicy.h */, - 7C61AA5DF51D49E9C9ADF4B82C45FE7B /* AFSecurityPolicy.m */, - ); - name = Security; - sourceTree = ""; - }; - 089180826529F9F68F4B5F6A9DDBB25C /* Resources */ = { - isa = PBXGroup; - children = ( - D1F5A4A4953624BBBEF0F5FCB89E5137 /* digicert-sha2.cer */, - ); - name = Resources; - sourceTree = ""; - }; 0FF05FD7261457A83FD94741651A2C03 /* Products */ = { isa = PBXGroup; children = ( @@ -611,18 +612,13 @@ name = Products; sourceTree = ""; }; - 12D003CEC8F6E7BBB84C7F33EA037BFD /* Support Files */ = { + 12FE66E65A2C61174B23DF2E4F7EB109 /* Security */ = { isa = PBXGroup; children = ( - A5F7EE334D37C9A1E58488BE86B5C0EC /* AFNetworking.modulemap */, - 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */, - 01B662642B6C94DAE9E304C3539BB0F0 /* AFNetworking-dummy.m */, - 2258E00A17D080420C729F636C7DA1FF /* AFNetworking-prefix.pch */, - 13485EB89727E5D2EC453EE2ACF262B1 /* AFNetworking-umbrella.h */, - 5C725AE77AFC85C663E9277B7E56E7F1 /* Info.plist */, + A7C8E8C116C75D16F52EA1D3242FF59D /* AFSecurityPolicy.h */, + EE4DA92A43826C17668392D0C859A80A /* AFSecurityPolicy.m */, ); - name = "Support Files"; - path = "../Target Support Files/AFNetworking"; + name = Security; sourceTree = ""; }; 2313536380DFE00F24F89A43A4D4F130 /* Targets Support Files */ = { @@ -654,13 +650,213 @@ path = "Target Support Files/Pods-VimeoUpload"; sourceTree = ""; }; - 35816D781B3D996C536649783ADD5C40 /* Pods */ = { + 2AB1EC7FF63F4B976FCFA5FDC11927C4 /* Serialization */ = { isa = PBXGroup; children = ( - 8E56B78AA496F7FABA78B2B4FD059BCF /* AFNetworking */, - DF19E6D93D5476A1FC6AE5732454D11C /* VimeoNetworking */, + 7983F38BB3C81F07425BFAF1E6289C43 /* AFURLRequestSerialization.h */, + 3BB9383C2F5F90FE89247B5400744EEE /* AFURLRequestSerialization.m */, + EC667DA5D9EC1B35E659F3B9E0341C85 /* AFURLResponseSerialization.h */, + 5E4FA6AA687FAD3C73FA4D5F778B6994 /* AFURLResponseSerialization.m */, ); - name = Pods; + name = Serialization; + sourceTree = ""; + }; + 2BF58D12549F816DF34EE3C9D98D1939 /* VimeoNetworking */ = { + isa = PBXGroup; + children = ( + 9A25EFA17D3547663AC40E439C04067B /* AccountStore.swift */, + 2306B631FE1354BD0E5B81E1EB94D032 /* AppConfiguration.swift */, + 4649337C65FD272A0B75F156507DBF18 /* AuthenticationController.swift */, + 29EC2A207160C6ABAABFFB2C7CEF0193 /* Constants.swift */, + 198A0FC4821182C1441C3278B81533C1 /* Dictionary+Extension.swift */, + 0C8A79531959161891C56EDD3B8236F9 /* ErrorCode.swift */, + 1EE9E0E05929DC3AFDF6276C52E5988C /* ExceptionCatcher+Swift.swift */, + E356F5BC3EF410C1A8E290BF70EE42EC /* KeychainStore.swift */, + A27737DBFB0A1312C26B1C96EFC0D9CC /* Mappable.swift */, + EB03BF3312FAD8B30A9EE17D0AA7BD36 /* NetworkingNotification.swift */, + ED3D79C25378B9CD7F9F1F4D28F37C78 /* NSError+Extensions.swift */, + E8614CB362CB4E3C9E03FCDFF2B3727C /* NSURLSessionConfiguration+Extensions.swift */, + CF73647B15392A1776EAC7769039E3C1 /* Objc_ExceptionCatcher.h */, + D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */, + D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */, + 19E82E7A6452665F31AB0160C36C0040 /* PlayProgress.swift */, + 2A642117F7C53CF7A21E344EBF7E7936 /* Request.swift */, + 592399628685EEA2CBCEAA22472FB309 /* Request+Authentication.swift */, + 2712EE1D549F6E58A7BB81334B608446 /* Request+Cache.swift */, + 0910EEA1873F3C909758C2298877AA7E /* Request+Category.swift */, + AD3546051FCB66387E4E83C5B7BBACE9 /* Request+Channel.swift */, + 7426D8145A3155978F0515BEEFCB8447 /* Request+Comment.swift */, + 8D9225F1748860C325BC0B5470023589 /* Request+Configs.swift */, + 5A3A4AC7EEAC2A5D6B93D6AA8DA6DEE8 /* Request+Notifications.swift */, + 300CFD20A787C853925F7BAE4CBFAA57 /* Request+Picture.swift */, + B0B8B622C89D248F892F70436F3C4927 /* Request+PolicyDocument.swift */, + AE40B3ABF25113AD8DB2293E39C0B740 /* Request+ProgrammedContent.swift */, + BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */, + 1A986CC4EDA505946FE3258B89387779 /* Request+Toggle.swift */, + F367284389C8299C9D163BC304C1B1AB /* Request+Trigger.swift */, + 3C2D82462A8952625139EFE730A1D996 /* Request+User.swift */, + 9D02A2893866B878CFEE338D26DC5313 /* Request+Video.swift */, + C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */, + AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */, + 40F99392B8A59926F90CF0019AC7D57D /* Result.swift */, + 574D37AFD6B63C7C543B8DDCC8BBCDCD /* Scope.swift */, + AEA5F1020ACBC1E16F7C377115328C63 /* Spatial.swift */, + B0A90EF0370E7F413E923D813F419C81 /* String+Parameters.swift */, + C974CC35310983ABAED5BA8CF32332A6 /* Subscription.swift */, + 1AB2176333C0C42F40BD13E4DDE0640A /* SubscriptionCollection.swift */, + C913DD9402D7FCE7BBA97568950974A6 /* VIMAccount.h */, + 8BC4A625F838AE6E28EAA14F8EABBEEE /* VIMAccount.m */, + 7BD6B4F1BB9B251C7BEC59722C42AB0B /* VIMActivity.h */, + 6D47993D1669EDACAE23DDA31EE1D750 /* VIMActivity.m */, + 71DED1DC4C3953219DB409A92F0E546F /* VIMAppeal.h */, + 58588D4FE9CAD101CBA9E66CF55B111F /* VIMAppeal.m */, + A250189A49355B43BD9E62364DDB456F /* VIMBadge.swift */, + 24231BD46B3810C7B980D8C357456050 /* VIMCategory.h */, + A962DA72E1B4C69B2EBB0CF5A88E990E /* VIMCategory.m */, + 8BA8C97144A1B46C16C2425AD02F2647 /* VIMChannel.h */, + C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */, + 1BF8714B341C956CC960D5F6F5FD061B /* VIMComment.h */, + 5C4B2D0192E9B889AE401D325E73A05B /* VIMComment.m */, + 144AE47771CA26D2CE6BBA49A5088D4C /* VIMConnection.h */, + EC67B7AD7961570B52C42FF75E469EF7 /* VIMConnection.m */, + B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */, + 91179DF7663D831C96D269BFB58AD522 /* VIMCredit.m */, + 98158361BFB9C60E8591A14756CDA100 /* VimeoClient.swift */, + E8EE2BF5E54CD69A9A8E68E9AA8D06F4 /* VimeoNetworking.h */, + 6DAFB57C55DAA0F49681B1626DBE7837 /* VimeoReachability.swift */, + D4E0A7B176B3107F86D5A881E57AA5BC /* VimeoRequestSerializer.swift */, + D4759F58D590C7673A8DD8D567CBAB74 /* VimeoResponseSerializer.swift */, + 1B89681226395449BB402C81A1ED264E /* VimeoSessionManager.swift */, + D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */, + 6497695CF3E669E163206BB20DBAFE53 /* VIMGroup.h */, + C867648C482317091BC988216AE7BCEF /* VIMGroup.m */, + 44F122B80BACFA0494C2CFB8D9923E4C /* VIMInteraction.h */, + D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */, + B3962DB52E64A2446FC1C17FE675A0E6 /* VIMLive.swift */, + 7FE473E948247E7F9972B5508A413C38 /* VIMLiveChat.swift */, + D14F412DA2B5A72B420B77A5DF82B391 /* VIMLiveChatUser.swift */, + FA4D18A3DC38EBDE55B7E5C609CC71FC /* VIMLiveHeartbeat.swift */, + B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */, + 0A751CF37C60078D4E14FD77EABB59EA /* VIMLiveStreams.swift */, + B1A9E4CA052B6791BE98CABC26BDAE96 /* VIMLiveTime.swift */, + D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */, + C716B4800FAD0DDAAAFFAB57FFC40242 /* VIMModelObject.h */, + 9899127E9167B9D6EBA7784D892653A2 /* VIMModelObject.m */, + C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */, + CBE34181F7DEEA3A80140282BBC6AB0B /* VIMNotification.m */, + 45A744737CCC3FB2DDD29A8A01B7569A /* VIMNotificationsConnection.h */, + 8ED7E045948374FAE37E1258BA3366F1 /* VIMNotificationsConnection.m */, + 1A455D143B6438B58518F3865A903EE1 /* VIMObjectMapper.h */, + 3CEE095D5D41BE01E7A438719525079D /* VIMObjectMapper.m */, + 55D5445B186DDBBEC7D7A9B467FC2E6A /* VIMObjectMapper+Generic.swift */, + CFF010DC16DF0D1F72CC6D06650AFAB1 /* VIMPeriodic.swift */, + BCB75948A89DA6FAFB6053EFB7B39628 /* VIMPicture.h */, + 157C7EA514B07C841D376B315F5F1636 /* VIMPicture.m */, + E5B2FE6582270D74BE0CBFC7A389FC8A /* VIMPictureCollection.h */, + AB1A7C0E9CF186DC326357962BEC7AF5 /* VIMPictureCollection.m */, + AE97ADD7133B74F569CDBAA703BCFD65 /* VIMPolicyDocument.h */, + E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */, + 10C6713230A87A25B5761E5A3CFC15DD /* VIMPreference.h */, + 7D22624966A39C8E5C113CBF14F4C8CE /* VIMPreference.m */, + FC7C28E2007A0256AC662EA7D40A6631 /* VIMPrivacy.h */, + 48ADFB75E39D89D3FC25BA8311A8A3F8 /* VIMPrivacy.m */, + 221D6F45BA640AE1C73F34B0D416ADA7 /* VIMProgrammedContent.swift */, + 242A72850AA33ABD4DCB90C46D7EBBF7 /* VIMQuantityQuota.h */, + 1DB8B03BA0C91F983BEBB7D468AA4F10 /* VIMQuantityQuota.m */, + 295021DB4F5EBF6BD2E1C60703E3E2D9 /* VIMRecommendation.h */, + 0338339E81D84468FC3FEC3B4E0B751B /* VIMRecommendation.m */, + 57B784EA87250DC92F76F6BF0638D4D2 /* VIMReviewPage.swift */, + 245BD1E8B3E5BE71C829B996E257207C /* VIMSeason.h */, + 14F2E19F2D2D74E49166614264DA1D27 /* VIMSeason.m */, + D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */, + 2C5686958BB43876F21E70E9627CFA06 /* VIMSoundtrack.h */, + F8420F0DF85E78490D2EC6895FB33030 /* VIMSoundtrack.m */, + 199439094EAB2A988BAED89C1771A848 /* VIMSpace.swift */, + E522AAA14794E33C4E9EFF0779388907 /* VIMTag.h */, + 633F03E86937C4E4A5EB10440B86406E /* VIMTag.m */, + CC35A7CF63A081875F9CF7A13AED2B6F /* VIMThumbnailUploadTicket.h */, + 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */, + 434D92DDD616ED26F2A45C6EAB3DF3C2 /* VIMTrigger.h */, + 770CD4C87AE1AA8397D0F6E251DCC540 /* VIMTrigger.m */, + D7478AE1D1B107593F1494EC8E78E8B8 /* VIMUpload.swift */, + 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */, + 686E7A5A8052386182347D07482C3C67 /* VIMUploadTicket.h */, + 404EBED1541B755FB84CEB0B6BF5B214 /* VIMUploadTicket.m */, + EB3CB90C71820EE74C9F0D2DA4A7B44F /* VIMUser.h */, + E592A244E83255AC4115A868FE02919D /* VIMUser.m */, + 0B7817AC6B424B77B067539E39EDA9AB /* VIMUserBadge.h */, + 038F1D2C4FFAF96EF3F4CC8CCA5E1C7D /* VIMUserBadge.m */, + 67E8730E582CED91AFE4FA07B317CF43 /* VIMVideo.h */, + CCF8D5A5B94427B5A26BF7A110935D1D /* VIMVideo.m */, + 64F81D9AB162FD3AFF5E21392C105385 /* VIMVideo+VOD.h */, + 594B408BD401FB948979F4BDA15CC9EA /* VIMVideo+VOD.m */, + F5D5EE1E0744442AC49E909AD0D768A9 /* VIMVideoDASHFile.h */, + 9FD22B103D648342069FE779359C9A56 /* VIMVideoDASHFile.m */, + 5D59C2A0B1AC7D635763EE682582F1C1 /* VIMVideoDRMFiles.h */, + 6009E10F0E97820B85D42C5B1B5EADFB /* VIMVideoDRMFiles.m */, + C5E4251390579CA8A4647B705BD6DD41 /* VIMVideoFairPlayFile.h */, + 2E0B01CEC75D6CABBC311CA2D4DCE1D9 /* VIMVideoFairPlayFile.m */, + C8E3687C68FDA0D536295AA785351E89 /* VIMVideoFile.h */, + E3F3220930C10F8298CDEE754D07F73F /* VIMVideoFile.m */, + F27DFCF446A2BAED340E50B6F721E96C /* VIMVideoHLSFile.h */, + 2B791FB955CB509E19E5ECC15E7EA5C5 /* VIMVideoHLSFile.m */, + 85AE31BCA21D12620C2D9B0F9386A7EA /* VIMVideoPlayFile.h */, + 3FCEA14CC7DF08D617ED59064F004953 /* VIMVideoPlayFile.m */, + 0CA19508165DFEEB376273E8D4214F59 /* VIMVideoPlayRepresentation.h */, + 58047C8CC5F49283333E246CA9F56BFA /* VIMVideoPlayRepresentation.m */, + 66DF12E58DBB07F4E0A32A90407E7F10 /* VIMVideoPreference.h */, + E4B18CFCBFD591833D9E6A8BE1F1172C /* VIMVideoPreference.m */, + 4791D611DF81AF66DC55313D98C6202C /* VIMVideoProgressiveFile.h */, + 18C1BE847651368C4C25045E57EB0E3F /* VIMVideoProgressiveFile.m */, + AA188B201DCC201C7D1451547279808D /* VIMVideoUtils.h */, + 50CF7C4EB12469B6AD2059AF45FA8ECB /* VIMVideoUtils.m */, + F6C8A0A919CEE05D1634AFD91D8693BC /* VIMVODConnection.h */, + FC34BB5F2459B8BE2191283BCD59DFFC /* VIMVODConnection.m */, + CAC4F7845137416DDE1B0102830EDF83 /* VIMVODItem.h */, + B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */, + 6A391CD898592360813FABFDC28A3266 /* Resources */, + E728CAD589156662CAFA63615EC4A02F /* Support Files */, + ); + name = VimeoNetworking; + path = VimeoNetworking; + sourceTree = ""; + }; + 3BDA58E9E81F2E50764F2C6A156CED6D /* UIKit */ = { + isa = PBXGroup; + children = ( + 7DE0E38A99298F3EF954325E154AA215 /* AFAutoPurgingImageCache.h */, + 3DC534095BB14D1CFB95B341D8F3BA47 /* AFAutoPurgingImageCache.m */, + 8E6BFE7016A60D816B0E3C15C0E2F3BF /* AFImageDownloader.h */, + A7C668C5587BF895640E72EA227806D7 /* AFImageDownloader.m */, + 3B507D130FFEBCD98C817BB196466C70 /* AFNetworkActivityIndicatorManager.h */, + 9468DEA78D57D9B0E4C7AC7F5E504C7B /* AFNetworkActivityIndicatorManager.m */, + AC1504799A29B9D2BC4470E3E39BCA33 /* UIActivityIndicatorView+AFNetworking.h */, + F7ABBC91F9865BF0C8F0A5C033AC9F63 /* UIActivityIndicatorView+AFNetworking.m */, + CFAE1CB42591FDBB0E3C6CDA2D9D8EBE /* UIButton+AFNetworking.h */, + 67584EC80399FD96630D745DA4D1A98F /* UIButton+AFNetworking.m */, + B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */, + 34C6DA693B07265C4DCBAE97EE2D5594 /* UIImageView+AFNetworking.h */, + C8D7668C9068459DA53626C11CC3A364 /* UIImageView+AFNetworking.m */, + 5FC7D02188E2C34BE891C0A1C34CE10A /* UIKit+AFNetworking.h */, + B0B2B4EA4DB47084F317FFA4C51ADC9C /* UIProgressView+AFNetworking.h */, + A764F24CBBAA6CD584EE0CBFB5F80D40 /* UIProgressView+AFNetworking.m */, + 714AC1F0B428E041A21A3D9426A0F56D /* UIRefreshControl+AFNetworking.h */, + C83490C101E129974A2EEFB8C04E04EC /* UIRefreshControl+AFNetworking.m */, + 714C5B0978A3C1F5DFD5196353A4674C /* UIWebView+AFNetworking.h */, + 02AA0046E026ED16E0F011492A681913 /* UIWebView+AFNetworking.m */, + ); + name = UIKit; + sourceTree = ""; + }; + 3D0D373019BD513FCAC555BC063A9889 /* NSURLSession */ = { + isa = PBXGroup; + children = ( + A23F6E3249A977997C8255519997C806 /* AFHTTPSessionManager.h */, + 31D638862512159911B72BCEA7447DC2 /* AFHTTPSessionManager.m */, + 03C2FA5B57F57E6E4C867E75DC638115 /* AFURLSessionManager.h */, + 4DB684C35D18CE0200411F5A0B79CFCD /* AFURLSessionManager.m */, + ); + name = NSURLSession; sourceTree = ""; }; 460F4E21B8A744E66CC3D6E8DAC45F9C /* Pods-VimeoUpload-iOSTests */ = { @@ -693,27 +889,12 @@ name = iOS; sourceTree = ""; }; - 601565E25F27ABFAD5D460A428D41214 /* Support Files */ = { - isa = PBXGroup; - children = ( - 2E6285983C1A0FF3F9827AE9B15D6EAB /* Info.plist */, - A81FB057C4219FBF8BD3D002E9E7272B /* VimeoNetworking.modulemap */, - E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */, - 6A0A4AB2432D657C9297E64DCDDB03A9 /* VimeoNetworking-dummy.m */, - F5312CFD09774B20432B1B6F083A1BFB /* VimeoNetworking-prefix.pch */, - 7F86DFC5D05E754156CA58540DAA1BAC /* VimeoNetworking-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/VimeoNetworking"; - sourceTree = ""; - }; - 71A4F6DC5F9A209CAB8F044E013717B9 /* Reachability */ = { + 6A391CD898592360813FABFDC28A3266 /* Resources */ = { isa = PBXGroup; children = ( - 40C278A2D7295B9C745A8F7C78D039A3 /* AFNetworkReachabilityManager.h */, - B4C942B4810471391926C69DDF06F459 /* AFNetworkReachabilityManager.m */, + 7AC12ADD13D05812352645C5BAEFD99D /* digicert-sha2.cer */, ); - name = Reachability; + name = Resources; sourceTree = ""; }; 7C47F48E4D14E65448AE0EDF0794BE9B /* Pods-VimeoUpload-iOS */ = { @@ -739,7 +920,7 @@ children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, EFC8D1216166DE80CF4A6175E6193664 /* Frameworks */, - 35816D781B3D996C536649783ADD5C40 /* Pods */, + 8472E4DC9CA6E5916A778824897CEB10 /* Pods */, 0FF05FD7261457A83FD94741651A2C03 /* Products */, 2313536380DFE00F24F89A43A4D4F130 /* Targets Support Files */, ); @@ -763,30 +944,13 @@ path = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload"; sourceTree = ""; }; - 8B8CDD38562AECC9D2192D3735570568 /* NSURLSession */ = { + 8472E4DC9CA6E5916A778824897CEB10 /* Pods */ = { isa = PBXGroup; children = ( - F6FB24A5536DD004B48F00834B72CAAA /* AFHTTPSessionManager.h */, - 9D84ED393688D7F4321FF3478294DAAA /* AFHTTPSessionManager.m */, - 01FD7E491D786675786392B66C27218C /* AFURLSessionManager.h */, - CA3350835CEC5107C6C293FE2D04E77F /* AFURLSessionManager.m */, + D0CB0ECBF0AE862930CC3AD43D10DEF3 /* AFNetworking */, + 2BF58D12549F816DF34EE3C9D98D1939 /* VimeoNetworking */, ); - name = NSURLSession; - sourceTree = ""; - }; - 8E56B78AA496F7FABA78B2B4FD059BCF /* AFNetworking */ = { - isa = PBXGroup; - children = ( - 927C6F167862BCAC06F4E08000EB8C58 /* AFNetworking.h */, - 8B8CDD38562AECC9D2192D3735570568 /* NSURLSession */, - 71A4F6DC5F9A209CAB8F044E013717B9 /* Reachability */, - 0688A28EFD0D0A1A7144514DA000857E /* Security */, - B5E6DA0E3E0AC270FEEA7AB27E3E5D95 /* Serialization */, - 12D003CEC8F6E7BBB84C7F33EA037BFD /* Support Files */, - B23733533370FD3EC60B6BCB3950F37D /* UIKit */, - ); - name = AFNetworking; - path = AFNetworking; + name = Pods; sourceTree = ""; }; 9981A11047C5F8F251522C5E56C9B686 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { @@ -807,193 +971,56 @@ path = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests"; sourceTree = ""; }; - B23733533370FD3EC60B6BCB3950F37D /* UIKit */ = { + A5F561CA7214D3E588F35FFEF7509048 /* Support Files */ = { isa = PBXGroup; children = ( - C5624A087C10DE994D4F380D76D11CD8 /* AFAutoPurgingImageCache.h */, - 600D472EDC99CA818353A5D89F987011 /* AFAutoPurgingImageCache.m */, - A6B196AB2ADA189C96F4A92DF020A2AB /* AFImageDownloader.h */, - 3BFCEC6FBC3145714CC6CF4DFC949341 /* AFImageDownloader.m */, - FB6A99CF789B5BEA9456117EA2855947 /* AFNetworkActivityIndicatorManager.h */, - 19CEB26626C9812FA30C7379ACA089D6 /* AFNetworkActivityIndicatorManager.m */, - 1F5BC750D923B3B868099617A48936CF /* UIActivityIndicatorView+AFNetworking.h */, - 0A255F1E920EA10EF5D5D5D29ABF77DA /* UIActivityIndicatorView+AFNetworking.m */, - BC9E61ED1EDFE2CD20FA90CF00D4608B /* UIButton+AFNetworking.h */, - 9181B76CF70F368A91B6164CF5EA35AF /* UIButton+AFNetworking.m */, - BFECB493111928B6FBC7E30A53CD6C0C /* UIImage+AFNetworking.h */, - 994751133E5FF4982C5BCE1CAAB6A78B /* UIImageView+AFNetworking.h */, - 8A0EACC1726F08952CBA6D09D34A5E69 /* UIImageView+AFNetworking.m */, - AF5691A664BC371E586B7A9B0EA405C8 /* UIKit+AFNetworking.h */, - D65690666F392CD6883791300864C4BF /* UIProgressView+AFNetworking.h */, - DA2A360A317E5BEEB0074445003EDB17 /* UIProgressView+AFNetworking.m */, - 49CF485D82938742667C3CB53CCE9FED /* UIRefreshControl+AFNetworking.h */, - A0648207A189AF57F74C57B6416EFA4B /* UIRefreshControl+AFNetworking.m */, - D24A7C1D41EE2BA30BB03DAF0C03B000 /* UIWebView+AFNetworking.h */, - F9A28D7473445BAC2DF8ED3294808DCF /* UIWebView+AFNetworking.m */, + 48A729E1418F915B16FCDBA79BF2E2EF /* AFNetworking.modulemap */, + BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */, + 76326C8C4F0A2A5409134F265A781ACD /* AFNetworking-dummy.m */, + 2D8CA2B775AA3E87695D6EE18C37FFA4 /* AFNetworking-prefix.pch */, + F014323346C8E3E2BEC80F2E5786B9C9 /* AFNetworking-umbrella.h */, + A303A435EC06435219B38263B54D05FA /* Info.plist */, ); - name = UIKit; + name = "Support Files"; + path = "../Target Support Files/AFNetworking"; sourceTree = ""; }; - B5E6DA0E3E0AC270FEEA7AB27E3E5D95 /* Serialization */ = { + CEAE45069CFCC48961DD462C4CF3717A /* Reachability */ = { isa = PBXGroup; children = ( - 8A85F49E86198194EBD238BC4D17B241 /* AFURLRequestSerialization.h */, - 37C980B8A834DB882EE016253A514531 /* AFURLRequestSerialization.m */, - F482E1B7506500767CF4C18ED47EC41B /* AFURLResponseSerialization.h */, - 213E236A9902F5C48054532E31B83A86 /* AFURLResponseSerialization.m */, + A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */, + 9EC36289436BC8F92161297A7A6BB279 /* AFNetworkReachabilityManager.m */, ); - name = Serialization; + name = Reachability; sourceTree = ""; }; - DF19E6D93D5476A1FC6AE5732454D11C /* VimeoNetworking */ = { + D0CB0ECBF0AE862930CC3AD43D10DEF3 /* AFNetworking */ = { isa = PBXGroup; children = ( - 1251E50741E644D6312C93A72D228CC2 /* AccountStore.swift */, - E658A3C4548684F7BC6D6A4843EBEE23 /* AppConfiguration.swift */, - A17090BB86BF96FF7E88156C3CB28957 /* AuthenticationController.swift */, - 3731BACEDB31E0440FF7D8D8C0C5E492 /* Constants.swift */, - B88A43F94D3F984AA9F607E6D336933C /* Dictionary+Extension.swift */, - 7EB63AB5D89A08887565D82CBAC4A0A3 /* ErrorCode.swift */, - 54035CD32BBAAD35D60CCBDDEC9CEE44 /* ExceptionCatcher+Swift.swift */, - 5C9F540643D34B036DF1F955F1B4921C /* KeychainStore.swift */, - D2425F9FA4CEFF602F6F4A053F70B656 /* Mappable.swift */, - E0B7E1AC52305E19ED018CF401606970 /* NetworkingNotification.swift */, - E7907829F15403992DC9A4B548CD41E1 /* NSError+Extensions.swift */, - E057FC5D3359A0584EF6495E7E3F6939 /* NSURLSessionConfiguration+Extensions.swift */, - 4F578FD9D3A32CB94B4560392C77383F /* Objc_ExceptionCatcher.h */, - 0F622C8797560A4BC9EDB9A36960BB2C /* Objc_ExceptionCatcher.m */, - DF6081927D4DC329FD7ED0F883D3B576 /* PinCodeInfo.swift */, - 77C69108CD986B77A9C0122212FD6613 /* PlayProgress.swift */, - E79ADD6A0AFBC97CBC10D3AC1EA024DC /* Request.swift */, - B6671E602410D6092439152EADE23607 /* Request+Authentication.swift */, - 5FECF370ACCB82ABBBADEB2C23066C4F /* Request+Cache.swift */, - 7AED40431616221804026E870D2C4C82 /* Request+Category.swift */, - 8B32A79195E4789E0D38A7C199CAB76A /* Request+Channel.swift */, - 3955D9A7EC2CD5C86E892193E62E9E0F /* Request+Comment.swift */, - 9717512502B2CBB64AF956ABFD3ECF10 /* Request+Configs.swift */, - 8251D7E0AE21801085F5938A385FEECA /* Request+Notifications.swift */, - 5A1207562C5BD2A71A7DC1A59A824D64 /* Request+Picture.swift */, - 58B62EE71CA018F665D8A742ADA3787A /* Request+PolicyDocument.swift */, - 8E9A61DA32392AD194FABDB69398E9DA /* Request+ProgrammedContent.swift */, - A287772AED26189394F852F1383AC103 /* Request+Soundtrack.swift */, - B39620FF19ACEB51C1DEA18A7A12B2D0 /* Request+Toggle.swift */, - 0279AA9EFAF1A2B4A5CBF25821A5F353 /* Request+Trigger.swift */, - 2D775ED9A8AEEA1BBA968B5740A34BFD /* Request+User.swift */, - B44AB41921F9D9B0620A5C3553FE4B72 /* Request+Video.swift */, - 9CB779FF1FA13F0CA99A13B6A0857464 /* Response.swift */, - 0C2608F23A5BD6202F176337A9F85D70 /* ResponseCache.swift */, - 4D38065BB0B23FBE674985A0F8B72EC9 /* Result.swift */, - 5DFE210185943D679FFCBBA4B56CF1A6 /* Scope.swift */, - 5427FA6B4360346236E6133084DFC10E /* Spatial.swift */, - DE1A0D9A33DD15FBE6EBBA8E2BC96A15 /* String+Parameters.swift */, - 1625E43ADF6E7014140E962E4D8D2E15 /* Subscription.swift */, - A784B675172C4B624597642F4BFE56E7 /* SubscriptionCollection.swift */, - D53F12E8EBC660E39EA3C8787CA543C4 /* VIMAccount.h */, - 338DFD9D7A1D0BF695F33079268D7506 /* VIMAccount.m */, - 14988764C33C43F624F78A9FD05EA2D7 /* VIMActivity.h */, - 08D1BA8A90EDC00E8EB28A886F2B4CD7 /* VIMActivity.m */, - D1C4237239681814FFDD6E43465463EE /* VIMAppeal.h */, - DF54671CD48BA10A8DA67E5817580E1A /* VIMAppeal.m */, - C550175B7EC7075E2835E8C7DCC2723F /* VIMBadge.swift */, - 23AB835CE25AE0CA04362D10838A3CF0 /* VIMCategory.h */, - F4B92013945EAA4735C74F5F20F119CB /* VIMCategory.m */, - B7F8E371904C34C30A4498FCCBE5F2AB /* VIMChannel.h */, - 4A5768E8C2A4AD09EE82653EC6A4E43A /* VIMChannel.m */, - 4D485D3D976CC90259E83A2E9452E4A9 /* VIMComment.h */, - 2B670858BCB563B5FDA0DFAF36BAC42E /* VIMComment.m */, - 635406386C5C563BE8F30C456CF4EBDE /* VIMConnection.h */, - D6E40E32356AA402232F099288457708 /* VIMConnection.m */, - 223024B664957866BB751A1110F1B9F0 /* VIMCredit.h */, - 029DD25355A20155F5263F91BB7FEB40 /* VIMCredit.m */, - 2BC19A9538D0325AF47F77D4BDAB05E5 /* VimeoClient.swift */, - 78E698DE1E56024C0E969710944608D8 /* VimeoNetworking.h */, - 2D394EBCF2013AC95F4F316F6683EA0C /* VimeoReachability.swift */, - 12603000BA159A15FCFE312613690391 /* VimeoRequestSerializer.swift */, - E5E07926E2F0D6EBCCF626360CF3A857 /* VimeoResponseSerializer.swift */, - 4FBA6678CB2E7680B2E44F4375609022 /* VimeoSessionManager.swift */, - 0E61F34F2E6B1E414299E9F4D8B5FFF8 /* VimeoSessionManager+Constructors.swift */, - FA2516A7CB0A50CB9CD1053367E53327 /* VIMGroup.h */, - FF858E05AAA86C6C60607DC47DA2B2C9 /* VIMGroup.m */, - CC338E19D1B0972E20EE7505BA2A23D2 /* VIMInteraction.h */, - D8008689D0B9CEE5A8B4F22EDD838235 /* VIMInteraction.m */, - C99148A0B79F2354BFE4ACBDE082A809 /* VIMMappable.h */, - ECF46B5E5956D18C9AAD34EE80C8F77E /* VIMModelObject.h */, - DEA77B71C751EBAB48B5E4F1CB110265 /* VIMModelObject.m */, - F780713BAF9F48FFB39AC81244609869 /* VIMNotification.h */, - CB8AD1BB40CAF74E14801DCD2423742E /* VIMNotification.m */, - 500FE9C937B576F7F751188E9C8B58C2 /* VIMNotificationsConnection.h */, - 9AF9D80E0A02BB32BC9B773852EB179C /* VIMNotificationsConnection.m */, - 813FFFC7FD25CCBEFAADC204524CBF26 /* VIMObjectMapper.h */, - AE0DF6D9E98751FE374466891CF22E93 /* VIMObjectMapper.m */, - 9FE2618631D9AF7217C1FC477FE2046E /* VIMObjectMapper+Generic.swift */, - 95DCAF0CD8E8A04FB849D0EB3ED32D01 /* VIMPicture.h */, - A33177A8F3A1862EEA26D30A1D63CC07 /* VIMPicture.m */, - C99A95A93AB75AFFF2B725A21CFF7377 /* VIMPictureCollection.h */, - 1DD953AC1282A72EB724028504DB991B /* VIMPictureCollection.m */, - A69D06730C5B3566A7B8FF5A91C529C1 /* VIMPolicyDocument.h */, - F5C6F4E723ED9B6BE8833278899E2B7A /* VIMPolicyDocument.m */, - 54DC90B45F8449D72BD99F888633B19A /* VIMPreference.h */, - 63AC97C994F4A5DEDCFAB03FE2835587 /* VIMPreference.m */, - B5BD0E4A9E13D4E5939E74CE749ACF61 /* VIMPrivacy.h */, - A95F8642BCADE8FFFF3519DABF17AB95 /* VIMPrivacy.m */, - 70B44A30D123EB8B4E494C3750DC262F /* VIMProgrammedContent.swift */, - D39B2D537CC8914B5AB105B380641859 /* VIMQuantityQuota.h */, - 33B7F78148EB2BCFE6839B0A753DA5A7 /* VIMQuantityQuota.m */, - 6E34B0E33381605BC20762BA521A846C /* VIMRecommendation.h */, - 9A4BE21C00C1529F947AEADC6AFEC0AB /* VIMRecommendation.m */, - 14EA79709F08DA21BEFAD6B727216E8A /* VIMSeason.h */, - 3BD0889F5B218566401FFF6EFC7448B1 /* VIMSeason.m */, - CF8F7E3CBB1B67B094851E251BC41BC2 /* VIMSizeQuota.h */, - 20B9A2C2DE00876AF465AD16D2C4C5BA /* VIMSizeQuota.m */, - 439CBA3DC46A23846FBD30F048BE086A /* VIMSoundtrack.h */, - 5AF82FDAADDBD52AD4A5E5FD40451B8F /* VIMSoundtrack.m */, - CA212CD04BA30762B1CD913421957487 /* VIMTag.h */, - 2C1DAA99F189991E9808E85A60902767 /* VIMTag.m */, - 58E8E3B2AB8BBBBA38D3F57103C1E48D /* VIMThumbnailUploadTicket.h */, - F4690B8E90016909BB0EA81C311C0953 /* VIMThumbnailUploadTicket.m */, - 4A6089F06B69AA4011F16D1BE20C6240 /* VIMTrigger.h */, - F268DB0DE841D483B2E3C48B95F2013B /* VIMTrigger.m */, - B784B3FDEB773915E04502100EB6F701 /* VIMUploadQuota.h */, - D91BABF53F46F9B94488819367CB559E /* VIMUploadQuota.m */, - 4E79D6C3283CB5EF1812B0021DA11FC5 /* VIMUploadTicket.h */, - 78D4C6E7DFAF7621B138929C43CEAD58 /* VIMUploadTicket.m */, - 6A8AD460DA5A2F6BCCC1E450EFCD4B60 /* VIMUser.h */, - 49FDC86C4F0DDC07BF2B3A89084F05AF /* VIMUser.m */, - 281BE9E67D00EF177F449FA07B3FB9C6 /* VIMUserBadge.h */, - 1541E9FB35206F5192232467FC5B429D /* VIMUserBadge.m */, - F321BEF3CBD2446312D1D121E254290F /* VIMVideo.h */, - 70A33F9F7F54570EFF69A144E3A3F760 /* VIMVideo.m */, - 149A190283760F475F91178FCB276A53 /* VIMVideo+VOD.h */, - 7EDADBD03E681FF52A2DE74B6E5A00A4 /* VIMVideo+VOD.m */, - DB074C96C719EAE42367359FBE57E21F /* VIMVideoDASHFile.h */, - EF00725EFACBAD93B7F4DF1A20DC1F42 /* VIMVideoDASHFile.m */, - 8B62CA840DF965405A11E44123254BAC /* VIMVideoDRMFiles.h */, - 2B409357FA7F1EE47504EB11F838F1FD /* VIMVideoDRMFiles.m */, - 90087B0D4E77D07B4E9F1D217680CB6B /* VIMVideoFairPlayFile.h */, - E062278A9F4389EDD1742AD9257524FC /* VIMVideoFairPlayFile.m */, - 0F7FE012B283AB95DB394786375AF14C /* VIMVideoFile.h */, - EB013DBE7F6A441F3FC60D8F0F84FE89 /* VIMVideoFile.m */, - 1D06933F7D0190E13136B6084CCF19FD /* VIMVideoHLSFile.h */, - 761B02BADB3E7B60DB3FF23CD76B6AF2 /* VIMVideoHLSFile.m */, - 0627D0F046BC1A05A689F1B332F10429 /* VIMVideoPlayFile.h */, - 68D1AD311A8197BF776022C79C5F1ACE /* VIMVideoPlayFile.m */, - A5CFEC28DA0D60B074FCFDEBB948B940 /* VIMVideoPlayRepresentation.h */, - 494E66C69C53C64522E95F995B56BAB5 /* VIMVideoPlayRepresentation.m */, - 528FFF37101F041C21101734F752C2AE /* VIMVideoPreference.h */, - 7FA3810B9E6829C7403D5D0F19EDACFD /* VIMVideoPreference.m */, - D3BA141A5553BAF7C116D19D1C669DC6 /* VIMVideoProgressiveFile.h */, - D112466303A0600AF69CB9E02EAA27E5 /* VIMVideoProgressiveFile.m */, - C9EA8CD923B36DA3EAD55FD3879A502F /* VIMVideoUtils.h */, - A59DE65C23DA87346FB7BB1F08A38182 /* VIMVideoUtils.m */, - 40FF5ABC89E5B4D81BB332308EBD6ABA /* VIMVODConnection.h */, - 6402A355C8648B1DF96ACEBE585B656F /* VIMVODConnection.m */, - 8C5391EE3E5EBC61C92F45484F77F90B /* VIMVODItem.h */, - E7FF72F2B598E25BCF0422AC7894A20D /* VIMVODItem.m */, - 089180826529F9F68F4B5F6A9DDBB25C /* Resources */, - 601565E25F27ABFAD5D460A428D41214 /* Support Files */, + 4148FF8C4708BAD38593A015777E7E41 /* AFNetworking.h */, + 3D0D373019BD513FCAC555BC063A9889 /* NSURLSession */, + CEAE45069CFCC48961DD462C4CF3717A /* Reachability */, + 12FE66E65A2C61174B23DF2E4F7EB109 /* Security */, + 2AB1EC7FF63F4B976FCFA5FDC11927C4 /* Serialization */, + A5F561CA7214D3E588F35FFEF7509048 /* Support Files */, + 3BDA58E9E81F2E50764F2C6A156CED6D /* UIKit */, ); - name = VimeoNetworking; - path = VimeoNetworking; + name = AFNetworking; + path = AFNetworking; + sourceTree = ""; + }; + E728CAD589156662CAFA63615EC4A02F /* Support Files */ = { + isa = PBXGroup; + children = ( + 2F3866AD6DB44ABC273BA0B914652B6F /* Info.plist */, + 6BF8E52D1956FDF3113B95BEC7B01C97 /* VimeoNetworking.modulemap */, + 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */, + 9916C267E80CB2567193FDE98D596CCC /* VimeoNetworking-dummy.m */, + 72072E5C11559FE8537DE973FA72BA21 /* VimeoNetworking-prefix.pch */, + ADD83665EF069AC4808284045A05F4BF /* VimeoNetworking-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/VimeoNetworking"; sourceTree = ""; }; EFC8D1216166DE80CF4A6175E6193664 /* Frameworks */ = { @@ -1008,62 +1035,6 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 117A8DE7291D5E8AA42C06C16D65274E /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - B9B6393A6D55E217BE87C42FAD925D07 /* Objc_ExceptionCatcher.h in Headers */, - 35169A4520324E50813E653E223FA16F /* VIMAccount.h in Headers */, - 5D862A3CE5B17C76E3F21ED62FBDB757 /* VIMActivity.h in Headers */, - 678D568B6F7293E48418DA96A3C9A81D /* VIMAppeal.h in Headers */, - 341C039B056DC8521ACB07FDC4857104 /* VIMCategory.h in Headers */, - F69AEBDF86112551CBE86B9A63D569AF /* VIMChannel.h in Headers */, - 178CD9C9934A47118DBF6ABCEF74DE0C /* VIMComment.h in Headers */, - 290A5C980B9B4A45125C22A3C6F4D52E /* VIMConnection.h in Headers */, - 173FC74D6CDD662BB7A7820D48E92CAF /* VIMCredit.h in Headers */, - B1A9884315D8230C190E19E5B8E87C5A /* VimeoNetworking-umbrella.h in Headers */, - F42023CADF80388A7EE24CDC3378D896 /* VimeoNetworking.h in Headers */, - 25C7F1E0679C775BC68F3F91A41898AB /* VIMGroup.h in Headers */, - 1B55EABBDFF3E11D188FC728597AD739 /* VIMInteraction.h in Headers */, - 8DC561474BEA410319DF3774BD2FE0D8 /* VIMMappable.h in Headers */, - 59660663BC5E565B0F4F994E3688083D /* VIMModelObject.h in Headers */, - D71682AD848B134EB74BB0B27F9EE2F6 /* VIMNotification.h in Headers */, - F92477EC3C798D43C7DA759DF0AFDE34 /* VIMNotificationsConnection.h in Headers */, - B793155915EDF853F2B515F87230AEC4 /* VIMObjectMapper.h in Headers */, - 862CA2F597532E9D63DB4C787AD17AA7 /* VIMPicture.h in Headers */, - 57A40C3321A9157AB2711E100C58DD2E /* VIMPictureCollection.h in Headers */, - CE513A764AEF1DF8E3788D05B03CD15E /* VIMPolicyDocument.h in Headers */, - D30636F1DCCA97413888F0D0DFB63ADF /* VIMPreference.h in Headers */, - CCFCAB315F227FF02C9DCACB24FA0AAD /* VIMPrivacy.h in Headers */, - A280ED07778424BB4FB5E2596B927323 /* VIMQuantityQuota.h in Headers */, - BD3361E6028D2FD289D7E9BEF5392A6A /* VIMRecommendation.h in Headers */, - EAEBAD0876E9C66617B5366DC192ABDB /* VIMSeason.h in Headers */, - 6B0432E81EC7132ADF0516729B74C724 /* VIMSizeQuota.h in Headers */, - B7A153052BBBE07EE5C653777F052C3F /* VIMSoundtrack.h in Headers */, - A8E116A9A098FE44D9CEAA85FCF9D408 /* VIMTag.h in Headers */, - 32F90DCD5121984682C68D40A51EC126 /* VIMThumbnailUploadTicket.h in Headers */, - 9E155F6AE09BB4243CAE115081560893 /* VIMTrigger.h in Headers */, - 91258FC91233FB6DA9C05902C106514B /* VIMUploadQuota.h in Headers */, - 85849DB10CF2386821DEB59E77404730 /* VIMUploadTicket.h in Headers */, - D73A12F20CB1A1B5669AF75288D52029 /* VIMUser.h in Headers */, - 048DF2FE55300A19AE363640BE8C2CA2 /* VIMUserBadge.h in Headers */, - 40630E6FBAF3FA1BA0316B7DEAB82F44 /* VIMVideo+VOD.h in Headers */, - 84F4F2115F97F8FE14D0BEBE38A772E0 /* VIMVideo.h in Headers */, - 69B1AF537561D8F581165B58FCDD81FB /* VIMVideoDASHFile.h in Headers */, - D1D2D9F03C9CBF28F01F5F293325881F /* VIMVideoDRMFiles.h in Headers */, - 80E8BEBDC57B013AB61A2D4AFED25076 /* VIMVideoFairPlayFile.h in Headers */, - F1201DC66104CE2A45B7D54394115AFC /* VIMVideoFile.h in Headers */, - 6002D7357AE628BBDB572FC9EFB211B0 /* VIMVideoHLSFile.h in Headers */, - 294377C03BC03F5CF2CCD7992872ECEF /* VIMVideoPlayFile.h in Headers */, - A346ABB83FE181956A7DC49EDF3EF2DB /* VIMVideoPlayRepresentation.h in Headers */, - DE38B59B4D7D872FEF317D301D7D0113 /* VIMVideoPreference.h in Headers */, - 3DB6964EE0B28369CE1F7A6892E75CCA /* VIMVideoProgressiveFile.h in Headers */, - 78A21D825370B0C218AEF351105AC567 /* VIMVideoUtils.h in Headers */, - C7A8FB48AC76C370F585B5E609AFC6F9 /* VIMVODConnection.h in Headers */, - 47EEFB29B92A111BE2E154B699814BBF /* VIMVODItem.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 155D10C569A39D79D0978C5417AAD601 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1088,6 +1059,60 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 73544E2697F1D548BD0B20F57BFFC46E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B096979D89174D895ACAA9130A84C751 /* Objc_ExceptionCatcher.h in Headers */, + C08010E9B33FEB8A829FBFB76BA1A56A /* VIMAccount.h in Headers */, + AA20F58AB9ADF9E981355D9DDD6F43CA /* VIMActivity.h in Headers */, + D814EAEF15E35911C154C9706ACAFAB2 /* VIMAppeal.h in Headers */, + 167ACEC255DCBED6BFDC64FAD93DC1BA /* VIMCategory.h in Headers */, + BB2BB064BA029A5772F1B80A2504B6D4 /* VIMChannel.h in Headers */, + 5C0337211CDC4579019DC0704EA66370 /* VIMComment.h in Headers */, + 68E37408801BDFE64FE284EB926C84D3 /* VIMConnection.h in Headers */, + 34ACDFAC012CB5AE7996D0B1157ED336 /* VIMCredit.h in Headers */, + C9FBFA4214F4CE291C59D52DFA886C02 /* VimeoNetworking-umbrella.h in Headers */, + 67DC334CA1B22722C3A2E2C20EBF74A4 /* VimeoNetworking.h in Headers */, + 7F701AD6C1E16AC30D5A089603B3F29A /* VIMGroup.h in Headers */, + 78471141D3A567C068C60243ED3554B8 /* VIMInteraction.h in Headers */, + F99681CD0018DD5318E1C75064153302 /* VIMMappable.h in Headers */, + 7AD4CE7ABA24F180CCFBD6C0310DC1AA /* VIMModelObject.h in Headers */, + 3C178E120BAF6B59E24F466C8FF23D6B /* VIMNotification.h in Headers */, + F938EE05B1FA2FCD55CAE920B0275003 /* VIMNotificationsConnection.h in Headers */, + 9D71889BF97F2D2F4C191F9F679F841A /* VIMObjectMapper.h in Headers */, + DEA22BE9551003B62BF8C64C7B9E4352 /* VIMPicture.h in Headers */, + 12F8248721BA64F46CB0036E970CA4D2 /* VIMPictureCollection.h in Headers */, + 4D3532EDF43F7631961FBCE2118906D1 /* VIMPolicyDocument.h in Headers */, + E1EEC50202199605B8FAA025E2300EE3 /* VIMPreference.h in Headers */, + B3734EA9CE5ABDD53677CBBF95218D93 /* VIMPrivacy.h in Headers */, + 8BAC1702671F9373055297301A078026 /* VIMQuantityQuota.h in Headers */, + F36EA44AC96E1D0AFBC3061569B66BF1 /* VIMRecommendation.h in Headers */, + 52527D3845CA7EBE0E2C3CAED510C19A /* VIMSeason.h in Headers */, + F5E6F5F26F2A0FBAD39DFCC082B71083 /* VIMSoundtrack.h in Headers */, + B530B7CEF7393543955FC9EEC6C9D797 /* VIMTag.h in Headers */, + 94CABFC144E1224E093EC7B5057F08BD /* VIMThumbnailUploadTicket.h in Headers */, + D86979E7D5F083AE83F26A54375E0BE6 /* VIMTrigger.h in Headers */, + 932CA521D19C5DB870B9EA5163CDF9D0 /* VIMUploadTicket.h in Headers */, + 4FA2FC796ACCCC463EEE77542BE8D142 /* VIMUser.h in Headers */, + 730A439176273D3D0BBEF1C123CB4B87 /* VIMUserBadge.h in Headers */, + 53E43BCD6CA9C9AB125E4E8D605FC903 /* VIMVideo+VOD.h in Headers */, + CC9E35985FC0082D929D45BA28334A1C /* VIMVideo.h in Headers */, + 455719CCD0654F72FBFCF510DE328339 /* VIMVideoDASHFile.h in Headers */, + E44FBE84C5072D6406FCC4456333194E /* VIMVideoDRMFiles.h in Headers */, + 006C915A85EACBE60F75135986A6BDB4 /* VIMVideoFairPlayFile.h in Headers */, + 42002EAFB3E488172644B9CCEEBBDD5E /* VIMVideoFile.h in Headers */, + 56E84D090BF8AD39FA38E51807779BD2 /* VIMVideoHLSFile.h in Headers */, + 1E555F7B50932D19657F6BACF6482891 /* VIMVideoPlayFile.h in Headers */, + E9C53427664F14DBB8FCFAB186BCFB59 /* VIMVideoPlayRepresentation.h in Headers */, + 7184A2EBE622AC5493861089EB852BC9 /* VIMVideoPreference.h in Headers */, + BB2D516BB64D23CB562B41D9C0DCFF91 /* VIMVideoProgressiveFile.h in Headers */, + E2BC5FB5EBF6496D18C35FA18DC85B2E /* VIMVideoUtils.h in Headers */, + B9E6048FDEF1EDF00DBD5E7603882B0F /* VIMVODConnection.h in Headers */, + 986442954EB5E0C1224B22AA9DA15A3A /* VIMVODItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; A38D8CD0CD98E23F47E1E8793E8033B2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1156,9 +1181,9 @@ isa = PBXNativeTarget; buildConfigurationList = BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */; buildPhases = ( - 69EA8A3B2B045C39F3FEAE055C1971DE /* Sources */, + 44385DFD4F4908A1717F1B54812661D4 /* Sources */, CAF8D4EE064B6B1E4B79174DA6AA5F6C /* Frameworks */, - 117A8DE7291D5E8AA42C06C16D65274E /* Headers */, + 73544E2697F1D548BD0B20F57BFFC46E /* Headers */, 8EBBDB3B4D1EB2379318B416840C565D /* Resources */, ); buildRules = ( @@ -1304,112 +1329,123 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 48A6D60BFBEA60A2A5034A42587756EB /* Sources */ = { + 44385DFD4F4908A1717F1B54812661D4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, + 907C0418B3BEBF279E024CD35630D91D /* AccountStore.swift in Sources */, + 110895699164F5489FEA1B5862189EF1 /* AppConfiguration.swift in Sources */, + 5D4A19EA76D7EA2F9AFD1D2114FE0282 /* AuthenticationController.swift in Sources */, + 4D78E4A293A03E543CB947C6E2B5BFC7 /* Constants.swift in Sources */, + 6A0B3B27B44D1B549931CA04D05FDA5F /* Dictionary+Extension.swift in Sources */, + 69D4E81727D4C0E26D58BB5A47263C6A /* ErrorCode.swift in Sources */, + A92AFBF2EA1D8470C045152905FE94EC /* ExceptionCatcher+Swift.swift in Sources */, + C740EA611A1A0708069379C21CC91D22 /* KeychainStore.swift in Sources */, + 85DA40B231DA346D3F81F5C05721E8A5 /* Mappable.swift in Sources */, + D545E07F830B9DEE5029CCAE066F5E48 /* NetworkingNotification.swift in Sources */, + E791D2683395A22962082E7163104379 /* NSError+Extensions.swift in Sources */, + 0122CB804FBC8DBEDE9E3F1C5DE370E7 /* NSURLSessionConfiguration+Extensions.swift in Sources */, + F1B355E841C99D9DBA940D0E172DAE7F /* Objc_ExceptionCatcher.m in Sources */, + 6D7348E2B052AF437E6DD693FA1BB372 /* PinCodeInfo.swift in Sources */, + E9FDD6AECB1F1502240718DD68585725 /* PlayProgress.swift in Sources */, + A90067E931B67F86573B5310EF33BEE4 /* Request+Authentication.swift in Sources */, + 1E8B612557640DDAACEB2240D859E51B /* Request+Cache.swift in Sources */, + 50240EC86EC6E3D0FE279D39C1157394 /* Request+Category.swift in Sources */, + E32C95DB739D05A45EE140D658AD40C8 /* Request+Channel.swift in Sources */, + FDB166270374B08707CC182467E2272E /* Request+Comment.swift in Sources */, + 9B5D2A28338705252BAEC9F1CDF6DB16 /* Request+Configs.swift in Sources */, + A21C97C53C6187C07993E331BB9D1BDB /* Request+Notifications.swift in Sources */, + 2F4D4E3413C1336621AD3EF5461281C6 /* Request+Picture.swift in Sources */, + 660EE8ED9CED19C9E8FD510F864F2953 /* Request+PolicyDocument.swift in Sources */, + 327BE3456189E37F229074A8E0E59D67 /* Request+ProgrammedContent.swift in Sources */, + A81D296D35F0C54AD7EFAF9C6162EEEB /* Request+Soundtrack.swift in Sources */, + A6C453AA6D3CA78851EB47381AFD4462 /* Request+Toggle.swift in Sources */, + FD825BEAA765A7ECD5D1A5B90CFD793F /* Request+Trigger.swift in Sources */, + 76FB450A67E351FEF558473DF85A052A /* Request+User.swift in Sources */, + 01BFDB7E7E77498861406FE7F563EC2F /* Request+Video.swift in Sources */, + 7EB9BEBED79E8411B9797F9B7E41B2C3 /* Request.swift in Sources */, + F2625E2811F90F09002CACB5816B66D5 /* Response.swift in Sources */, + 173092A45F57338768EE067ECFDF126F /* ResponseCache.swift in Sources */, + 2697B3FCADF5B44B1B19381D7B54F194 /* Result.swift in Sources */, + 530B47788A94A38FE1F07B0D9A0026E4 /* Scope.swift in Sources */, + 6286BBCC9E8308998C92DE6A732153C0 /* Spatial.swift in Sources */, + B8A0FD0C3B86C1B68BC177F0E4F46FF0 /* String+Parameters.swift in Sources */, + E9CCC4E47921BE30AAE21DE57E20BEFA /* Subscription.swift in Sources */, + A0BD9EC2D4DFF7F092F03C98B9A04EAC /* SubscriptionCollection.swift in Sources */, + 6AFAD442B4AAEECF1318FA8525604051 /* VIMAccount.m in Sources */, + CBB0A1DE5A92E8A8AA8EDF47F90D4704 /* VIMActivity.m in Sources */, + 6203DE451A85E5A0AA5C13D751699B1B /* VIMAppeal.m in Sources */, + 2BE918B073FD534F3D63785B26F34726 /* VIMBadge.swift in Sources */, + FB1D774E4A4E73BEC95B50B24530ADEC /* VIMCategory.m in Sources */, + DE18C4BDBECD0E69D0696F8BD2DCD577 /* VIMChannel.m in Sources */, + F918C94B773F6FAE6B379A7A216C14DF /* VIMComment.m in Sources */, + 7E9D810438EAF1EC8C73357A66E2F745 /* VIMConnection.m in Sources */, + BCBA69CD7C8C0C72ED283C9E23F1E9E8 /* VIMCredit.m in Sources */, + 44C4F1F6F4236CB76C0C34FFFBEC9E93 /* VimeoClient.swift in Sources */, + 25178C93155A9DC0484E1F299E2F7CB7 /* VimeoNetworking-dummy.m in Sources */, + D7B60EFC0FBAA6322F0E8BB9A9A81DED /* VimeoReachability.swift in Sources */, + 54C37CD332C73F67F7754DAE3F3D4B3D /* VimeoRequestSerializer.swift in Sources */, + B326931A696FDB9E8D38DACFC9B16575 /* VimeoResponseSerializer.swift in Sources */, + 3E9017BD1F6A95F49D9534FED7AEE8E0 /* VimeoSessionManager+Constructors.swift in Sources */, + D8876D8D889C6B0E96CF2AFD3CDB8B97 /* VimeoSessionManager.swift in Sources */, + 828EB50094BB958BEE3B094F96465E3E /* VIMGroup.m in Sources */, + 2F3A5EFEDFA43593DC5AA806D91BFA5A /* VIMInteraction.m in Sources */, + A07809AF47318F63FABD8430E9D2D5BA /* VIMLive.swift in Sources */, + A7B7691B6B973F3E7F1F21F416BD3613 /* VIMLiveChat.swift in Sources */, + 926D0D88C69D6E64C4F079963246D773 /* VIMLiveChatUser.swift in Sources */, + 13B2648F4C8600A30243D27AC672A0A5 /* VIMLiveHeartbeat.swift in Sources */, + 84D5E7F02850F93CBFE2114DE63556DE /* VIMLiveQuota.swift in Sources */, + 49256D3D8A3D5ECF3865BD63A889E783 /* VIMLiveStreams.swift in Sources */, + E59B30AE3C849AECA3C525452E2AE055 /* VIMLiveTime.swift in Sources */, + AF31E2ADAC20108EB84BDE3DAC89B5AD /* VIMModelObject.m in Sources */, + 84FCB295072BFCC1B8C766B77B2A4355 /* VIMNotification.m in Sources */, + B19D1BB51563B94A63A6D1AAD3318B07 /* VIMNotificationsConnection.m in Sources */, + 81D0F571B178C2F82F146F1F5E50C097 /* VIMObjectMapper+Generic.swift in Sources */, + D452173C5942C7EF4BADA8F49E73EEBB /* VIMObjectMapper.m in Sources */, + 26F8805B8DFCDA44EC786A09D93900DA /* VIMPeriodic.swift in Sources */, + 8EB0FBBB983197A428EB2C6B4F6E604F /* VIMPicture.m in Sources */, + 01C097A72389242F9B53E8A8B21AD7E8 /* VIMPictureCollection.m in Sources */, + 17AF6E91051C40A1909641FBD81CFCE6 /* VIMPolicyDocument.m in Sources */, + 79FD18E3550C4D60892402C954D89D58 /* VIMPreference.m in Sources */, + BD430763476A5C43180E216E8DF6814C /* VIMPrivacy.m in Sources */, + E322318676064FC0B87D0E9F79EA1A55 /* VIMProgrammedContent.swift in Sources */, + E6BC2F1EBCB35E455ECB7D63F1591E93 /* VIMQuantityQuota.m in Sources */, + 1A19B0C55294E4016F6F29DF11B37286 /* VIMRecommendation.m in Sources */, + FC4467E7982DA5205C40F4CE3876FD62 /* VIMReviewPage.swift in Sources */, + 1454895436E2AEDC9FBE797C83971E31 /* VIMSeason.m in Sources */, + B8C936EBBA62FA2DB48E61C49C63631B /* VIMSizeQuota.swift in Sources */, + 9CF285BF9B73A83B35CEF6FCFBF18675 /* VIMSoundtrack.m in Sources */, + D109CF550CC4B4207ABD5A8BDA5D7FB2 /* VIMSpace.swift in Sources */, + 6FC69948AF7AED0F67402F8044ABE1BC /* VIMTag.m in Sources */, + E67F7F8543FC715AD3B30BC6CB366B6E /* VIMThumbnailUploadTicket.m in Sources */, + 1F0BE13B306FC15641F3B48939AD0389 /* VIMTrigger.m in Sources */, + 21F296CA85D7E8EDCE29C153376A8E20 /* VIMUpload.swift in Sources */, + 080981D0829053FB0D91C3AC721C22E6 /* VIMUploadQuota.swift in Sources */, + C7D618E6E16BAB6EE81D7A943430A155 /* VIMUploadTicket.m in Sources */, + 9A15FF8933713870E90F69BBC18908B0 /* VIMUser.m in Sources */, + 7CCA55971A69EA53482B0040647808A8 /* VIMUserBadge.m in Sources */, + 1C762B3B85A259872E5A315B3C9FEC2F /* VIMVideo+VOD.m in Sources */, + DCE8E24B5551BD3ED1FD7ABD56C10386 /* VIMVideo.m in Sources */, + 46DE5BBE30FCA924541AC026D793A3D7 /* VIMVideoDASHFile.m in Sources */, + 25A450E1078CE9EB3462CF2D94651C0D /* VIMVideoDRMFiles.m in Sources */, + 5E954272295CF70B4C2C2815117255AB /* VIMVideoFairPlayFile.m in Sources */, + A1187C43A1E035111DE63C082E28A393 /* VIMVideoFile.m in Sources */, + B0A505817B511F3A35762CD3DC47A80A /* VIMVideoHLSFile.m in Sources */, + B8E04F3BBEBBD14C2D12C53535CEED63 /* VIMVideoPlayFile.m in Sources */, + D1CC6C140311BDF560402C7B261EC749 /* VIMVideoPlayRepresentation.m in Sources */, + 466C821E26B82F57C0936DE3A6F16554 /* VIMVideoPreference.m in Sources */, + CBD0A5C342505975B14B0722C0A40644 /* VIMVideoProgressiveFile.m in Sources */, + 2D8D15E021ED742C95A7893F7A3877DC /* VIMVideoUtils.m in Sources */, + 5C0565FFE84B204D8F6C99772868BDEB /* VIMVODConnection.m in Sources */, + 3B01A1344CDDAD474BAB3A4972534FF4 /* VIMVODItem.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 69EA8A3B2B045C39F3FEAE055C1971DE /* Sources */ = { + 48A6D60BFBEA60A2A5034A42587756EB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A90F6D31147BD8FCEC444B7D99EB4798 /* AccountStore.swift in Sources */, - 2D99923831FFCE9F73C0C7D1E9F850E2 /* AppConfiguration.swift in Sources */, - 409A333CEF46B3875FD07DFD2D9C351B /* AuthenticationController.swift in Sources */, - F42AFA87354F2430D2381ABF91869006 /* Constants.swift in Sources */, - B3389B8752DF8E9154754220D09D26C9 /* Dictionary+Extension.swift in Sources */, - 8C006C64C5E77BEBECE54877B7BA22F0 /* ErrorCode.swift in Sources */, - 8670EB68C4D288954C15F2F9C2C935EE /* ExceptionCatcher+Swift.swift in Sources */, - F28BC46F4F246E19C0A9B040C5834B32 /* KeychainStore.swift in Sources */, - 080339FE8D3D0888FDF6C05AFF7FC108 /* Mappable.swift in Sources */, - A08EFFFF7DFACA49EB5F271ACD172E91 /* NetworkingNotification.swift in Sources */, - 6DF3CEDD6910937636F93F666E1FEF2C /* NSError+Extensions.swift in Sources */, - 99B51DB5B80BBD7A2597A8E79C34290D /* NSURLSessionConfiguration+Extensions.swift in Sources */, - 643CE7142699088977B0ACB353A4FE6B /* Objc_ExceptionCatcher.m in Sources */, - 8EA375C3F30127C965344B1369E6CC16 /* PinCodeInfo.swift in Sources */, - CB84112F8B8F712719EA050973CCC8D1 /* PlayProgress.swift in Sources */, - 19A239662363D8BFC6BA9BF3D5067368 /* Request+Authentication.swift in Sources */, - DDC2160DEE810F9EB54D5F4A4085FD06 /* Request+Cache.swift in Sources */, - D7B8668CAC424FB726E911830640210E /* Request+Category.swift in Sources */, - 7093D03FB36F62140CD7CB962C129184 /* Request+Channel.swift in Sources */, - A4CD0619CCDE6268C1769EF1379D3C5F /* Request+Comment.swift in Sources */, - 5FF671C4F478DAC06FFC03103078E43C /* Request+Configs.swift in Sources */, - 3BA7D30869081B9F81B6AD4DB1F37EA2 /* Request+Notifications.swift in Sources */, - B259265059C9F541C99A43E37B2CEFA6 /* Request+Picture.swift in Sources */, - D8384F0B4B1075A71813D409FD144A3F /* Request+PolicyDocument.swift in Sources */, - 5B6A5C2A7EC9E33337DE6287258CE806 /* Request+ProgrammedContent.swift in Sources */, - 301E7201FA2B9D755BCB08E3159E9F50 /* Request+Soundtrack.swift in Sources */, - F9988F40EBF406C9B8DFBBED61ECFC9C /* Request+Toggle.swift in Sources */, - 187D2040010AAE21EB338F950BA62F30 /* Request+Trigger.swift in Sources */, - 3D0097FB9A164EF53868F633A5D83647 /* Request+User.swift in Sources */, - 6E4D1B3AADC1FD45199854A24E146F0C /* Request+Video.swift in Sources */, - DCD624F830FDEDF0AE7E3DB66BBFFEC2 /* Request.swift in Sources */, - 8CE568F7A75458FEE8E5920F28460A1A /* Response.swift in Sources */, - 95FFAABEF0F35C113EC0189D39FF80A0 /* ResponseCache.swift in Sources */, - 719B05BF832EB807BD9313C39D9C1923 /* Result.swift in Sources */, - D4812514244A32F4EF17A3403CEB49E0 /* Scope.swift in Sources */, - C99047215776E7CB95C77ADC520B7001 /* Spatial.swift in Sources */, - 5AFC1E2FD02BA2FADA6BA4E264CD032A /* String+Parameters.swift in Sources */, - CF276AE6C6EFAF02D2DD4373E92D0648 /* Subscription.swift in Sources */, - 9FE718C13D939CB402496CD9D1644692 /* SubscriptionCollection.swift in Sources */, - DA1A46D62BEA2431AC6FD66D58E28C27 /* VIMAccount.m in Sources */, - 6A4FBD31811C902A97F3B75EE81B0ADD /* VIMActivity.m in Sources */, - 82752C5EBCDE2118D9B50C7623D5BF3B /* VIMAppeal.m in Sources */, - 43E008C211B853777039F3785D922B98 /* VIMBadge.swift in Sources */, - 430264544D67783EE06E5CBD9F8A7538 /* VIMCategory.m in Sources */, - 8A689A9EF197DC68E6947A869A6EE657 /* VIMChannel.m in Sources */, - 39A7BA428B81014747047554360D5933 /* VIMComment.m in Sources */, - D2D5FEA35F9DC0817488AC6B206C9C5B /* VIMConnection.m in Sources */, - 02605A6A0E2F37A37F765B54D8435EFE /* VIMCredit.m in Sources */, - 9AA200004AD2C86C440D0365294E8C25 /* VimeoClient.swift in Sources */, - 5BA9E478846DD5BD2F10533663C65DB0 /* VimeoNetworking-dummy.m in Sources */, - 1439E0621A820C1E240A135EDB917A78 /* VimeoReachability.swift in Sources */, - 5D3BDA09F740ECC2062E1876B3E9397C /* VimeoRequestSerializer.swift in Sources */, - F80A5BF96718E74CF0164FF1CF6CACE6 /* VimeoResponseSerializer.swift in Sources */, - 247BEC62A7A059F149C2F1DEE37EC117 /* VimeoSessionManager+Constructors.swift in Sources */, - 7417910A809FB46D7CBE239E1E41F40E /* VimeoSessionManager.swift in Sources */, - 39C4E7D235F2488DC19D3F16FFF5EF30 /* VIMGroup.m in Sources */, - 325DB73E71BF50607177ED27D34C4DEA /* VIMInteraction.m in Sources */, - D59D192A899629E78E80F8EA3AD0122B /* VIMModelObject.m in Sources */, - CE5AC9A4F95093069A44087A1689ACCB /* VIMNotification.m in Sources */, - CD632493290A2E4430F2F12E548B03B2 /* VIMNotificationsConnection.m in Sources */, - D27E342A895F8F0BF51D6B926ECA83FF /* VIMObjectMapper+Generic.swift in Sources */, - F6258BE02142A4CCAEBB00A2C4CEE82B /* VIMObjectMapper.m in Sources */, - 57782C2C26EC21E455E8B710E011BBAE /* VIMPicture.m in Sources */, - 8588C695824D58E2A9EAAE4D4A0E1BB9 /* VIMPictureCollection.m in Sources */, - 331895E3C644AC16BE2DFF952ACA9A1B /* VIMPolicyDocument.m in Sources */, - 86BE885A7FB6FC6F0B4E1C905DA7B64C /* VIMPreference.m in Sources */, - A73687DB3AA0983108BAEBF72C2340ED /* VIMPrivacy.m in Sources */, - F76D02044108AE9B76A2EBC583A3F403 /* VIMProgrammedContent.swift in Sources */, - F82C4C45E9CC756A62AA0F72D001B83D /* VIMQuantityQuota.m in Sources */, - F5B609F28B2E1EBF8AA9348E28333378 /* VIMRecommendation.m in Sources */, - 4F4DAAC9FD07C2F53A8FCAB14DDC976D /* VIMSeason.m in Sources */, - D90CAB5734D50648EE042D7F6EF739C7 /* VIMSizeQuota.m in Sources */, - 3DD477AEFC34A1B8BE6C21CB3737112D /* VIMSoundtrack.m in Sources */, - 93096AB36C54BB032194725968A44EA3 /* VIMTag.m in Sources */, - 1C415F8572AB31B576839CD7D07F5ACA /* VIMThumbnailUploadTicket.m in Sources */, - AC2F13906A8DF6AB50AB826835026D89 /* VIMTrigger.m in Sources */, - 20B1A3A44C5B99E3C0E0111980E2D166 /* VIMUploadQuota.m in Sources */, - 8E1AF09B6DC4CAE39BD8296809C3EB0E /* VIMUploadTicket.m in Sources */, - 2E50A1D999933C0305B3BD6C8E3DB6A8 /* VIMUser.m in Sources */, - 91DFEC02233D3AB83A35E5756A18A36C /* VIMUserBadge.m in Sources */, - 2158EA68FF692EC0E79E21A1868DDADC /* VIMVideo+VOD.m in Sources */, - E9083640FA1E37FD7F1CD8C3D3113F71 /* VIMVideo.m in Sources */, - 39B6EA71EDF5F8DDFEE1E4F5BEA0159B /* VIMVideoDASHFile.m in Sources */, - C1539E868EAA683B1B80A0F530ACCDF1 /* VIMVideoDRMFiles.m in Sources */, - 0FF332A4A3B2E0FC72A18026068678FA /* VIMVideoFairPlayFile.m in Sources */, - BF2E64C3355CB069145EAF61D1223910 /* VIMVideoFile.m in Sources */, - 8BFB2E98B986C0843E8FB1D4C63DC4B1 /* VIMVideoHLSFile.m in Sources */, - A8F1B4C9D1D600563C86DF374BB1FF59 /* VIMVideoPlayFile.m in Sources */, - 778D21F2C8E74994835AF74CF639561E /* VIMVideoPlayRepresentation.m in Sources */, - B9331886EB47FEE9CC9739C45CEE35CB /* VIMVideoPreference.m in Sources */, - 1CBE32C0E7A5B487D85887CECE9070E0 /* VIMVideoProgressiveFile.m in Sources */, - 29F875173B766FA11C5852EA61C674DC /* VIMVideoUtils.m in Sources */, - F51ECD19F851C26CEB4925B83D85ABDA /* VIMVODConnection.m in Sources */, - 7DEBA2ACA54253C65CA292BCF51B476B /* VIMVODItem.m in Sources */, + CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1518,7 +1554,7 @@ /* Begin XCBuildConfiguration section */ 00F87340FE541E1103068D879CA2CF38 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */; + baseConfigurationReference = 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1701,7 +1737,7 @@ }; 2DD310F88AC219696E5427287889ABE7 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */; + baseConfigurationReference = BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1855,7 +1891,7 @@ }; 9E3B0F5EFF14D554D71BB8100B4A6C5C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */; + baseConfigurationReference = BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1926,7 +1962,7 @@ }; B017DF19B619918B580DB5352814A431 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */; + baseConfigurationReference = 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; diff --git a/Pods/Target Support Files/VimeoNetworking/Info.plist b/Pods/Target Support Files/VimeoNetworking/Info.plist index cba25855..b0b461e3 100644 --- a/Pods/Target Support Files/VimeoNetworking/Info.plist +++ b/Pods/Target Support Files/VimeoNetworking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.0.1 + 3.0.1 CFBundleSignature ???? CFBundleVersion diff --git a/Pods/Target Support Files/VimeoNetworking/VimeoNetworking-umbrella.h b/Pods/Target Support Files/VimeoNetworking/VimeoNetworking-umbrella.h index e091d155..5c78fbda 100644 --- a/Pods/Target Support Files/VimeoNetworking/VimeoNetworking-umbrella.h +++ b/Pods/Target Support Files/VimeoNetworking/VimeoNetworking-umbrella.h @@ -33,12 +33,10 @@ #import "VIMQuantityQuota.h" #import "VIMRecommendation.h" #import "VIMSeason.h" -#import "VIMSizeQuota.h" #import "VIMSoundtrack.h" #import "VIMTag.h" #import "VIMThumbnailUploadTicket.h" #import "VIMTrigger.h" -#import "VIMUploadQuota.h" #import "VIMUploadTicket.h" #import "VIMUser.h" #import "VIMUserBadge.h" diff --git a/Pods/VimeoNetworking/README.md b/Pods/VimeoNetworking/README.md index fe8b0162..fef1f9df 100644 --- a/Pods/VimeoNetworking/README.md +++ b/Pods/VimeoNetworking/README.md @@ -1,6 +1,6 @@ # VimeoNetworking [![](https://circleci.com/gh/vimeo/VimeoNetworking.png?style=shield&circle-token=0443de366b231f05e3b1b1b3bf64a434b9ec1cfe)](https://circleci.com/gh/vimeo/VimeoNetworking) -**VimeoNetworking** is the authoritative Swift networking library for the Vimeo API. Fully designed and implemented with Swift in mind, **VimeoNetworking** is type-safe, well `enum`erated, and never, ever, *ever* force-unwrapped. +**VimeoNetworking** is the authoritative Swift networking library for the Vimeo API. Fully designed and implemented with Swift in mind, **VimeoNetworking** is type-safe, well `enum`erated, and never, ever, *ever* force-unwrapped. ##### Hey Creator, if you're primarily interested in uploading videos to Vimeo, you should also check out [VimeoUpload](https://github.com/vimeo/VimeoUpload). @@ -9,7 +9,8 @@ - iOS (8.0+) - tvOS (9.0+) -## Installing with CocoaPods +## Installing +At this stage of development VimeoNetworking is not yet available as a CocoaPod via the public Podspecs repo. For now we recommend including it in your project as a submodule. If you'd still like to work with VimeoNetworking as a development pod, simply configure your Podfile as shown below. To get started integrating `VimeoNetworking`, add the following lines to your `Podfile` and run `pod install`: @@ -17,7 +18,7 @@ To get started integrating `VimeoNetworking`, add the following lines to your `P use_frameworks! # required for Swift frameworks target 'YourAppTargetName' do - pod 'VimeoNetworking', '1.0' + pod 'VimeoNetworking', :path => './Submodules/VimeoNetworking' end ``` @@ -52,15 +53,15 @@ Before we can actually start getting meaningful data from the API, there's one l Client credentials allow you to see everything that's publicly available on Vimeo. This is essentially equivalent to visiting Vimeo.com without signing up for an account or logging in. This is the simplest authentication method to implement, just one function completes the grant. -```Swift +```Swift let authenticationController = AuthenticationController(client: vimeoClient) -authenticationController.clientCredentialsGrant { result in +authenticationController.clientCredentialsGrant { result in switch result { case .Success(let account): print("Successfully authenticated with account: \(account)") case .Failure(let error): - print("error authenticating: \(error)") + print("error authenticating: \(error)") } } ``` @@ -88,7 +89,7 @@ The user will be prompted to log in and grant permissions to your application. func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { authenticationController.codeGrant(responseURL: url) { result in - switch result + switch result { case .Success(let account): print("authenticated successfully: \(account)") @@ -96,7 +97,7 @@ func application(app: UIApplication, openURL url: NSURL, options: [String : AnyO print("failure authenticating: \(error)") } } - + return true } ``` @@ -123,18 +124,18 @@ authenticationController.accessToken("your_access_tocken") { result in `AuthenticationController` saves the accounts it successfully authenticates in the Keychain. The next time your application launches, you should first attempt to load a previously authenticated account before prompting the user to authenticate. ```Swift -do +do { - if let account = try authenticationController.loadSavedAccount() + if let account = try authenticationController.loadSavedAccount() { print("account loaded successfully: \(account)" - } - else + } + else { print("no saved account found, authenticate...") } } -catch let error +catch let error { print("error loading account: \(error)") } @@ -163,7 +164,7 @@ By declaring the expected model object type, we can ensure that both the request After we send that request, we'll get a `Result` enum back. This could be either a `.Success` or a `.Failure` value. `.Success` will contain a `Response` object, while `.Failure` will contain an `NSError`. Switch between these two cases to handle whichever is encountered: ```Swift -vimeoClient.request(videoRequest) { result in +vimeoClient.request(videoRequest) { result in switch result { case .Success(let response: Response): let video: VIMVideo = response.model @@ -182,12 +183,12 @@ One neat **ProTip**: Your `Request` model type doesn't just have to be a single ```Swift let staffPickedVideosRequest = Request<[VIMVideo]>(path: "/channels/staffpicks/videos") -vimeoClient.request(staffPickedVideosRequest) { result in - switch result +vimeoClient.request(staffPickedVideosRequest) { result in + switch result { case .Success(let response: Response): let videos: [VIMVideo] = response.model - for video in videos + for video in videos { print("retrieved video: \(video)") } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift index f171085c..74de18a2 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift @@ -259,7 +259,7 @@ final public class AuthenticationController */ public func accessToken(token: String, completion: @escaping AuthenticationCompletion) { - let customSessionManager = VimeoSessionManager.defaultSessionManager(baseUrl: self.configuration.baseUrl, accessTokenProvider: {token}) + let customSessionManager = VimeoSessionManager.defaultSessionManager(baseUrl: self.configuration.baseUrl, accessTokenProvider: {token}, apiVersion: VimeoDefaultAPIVersionString) let adhocClient = VimeoClient(appConfiguration: self.configuration, sessionManager: customSessionManager) let request = AuthenticationRequest.verifyAccessTokenRequest() @@ -519,13 +519,19 @@ final public class AuthenticationController try self.accountStore.removeAccount(ofType: .user) } - // MARK: - Private - - private func authenticate(with request: AuthenticationRequest, completion: @escaping AuthenticationCompletion) + /** + Executes the specified authentication request, then the specified completion. + + - request: A request to fetch a VIMAccount. + - completion: A closure to handle the VIMAccount or error received. + */ + public func authenticate(with request: AuthenticationRequest, completion: @escaping AuthenticationCompletion) { self.authenticate(with: self.authenticatorClient, request: request, completion: completion) } + // MARK: - Private + private func authenticate(with client: VimeoClient, request: AuthenticationRequest, completion: @escaping AuthenticationCompletion) { let _ = client.request(request) { result in diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift index e4bb86c9..b15883b4 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift @@ -30,4 +30,4 @@ import Foundation public let VimeoBaseURL = URL(string: "https://api.vimeo.com")! /// Default API version to use for requests -internal let VimeoDefaultAPIVersionString = "3.2" +internal let VimeoDefaultAPIVersionString = "3.4" diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift index 48626d98..5986bba5 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift @@ -32,7 +32,8 @@ public enum VimeoErrorCode: Int // Upload case uploadStorageQuotaExceeded = 4101 case uploadDailyQuotaExceeded = 4102 - + case uploadQuotaSizeExceededCap = 3428 + case invalidRequestInput = 2204 // root error code for all invalid parameters errors below // Password-protected video playback @@ -68,6 +69,19 @@ public enum VimeoErrorCode: Int case facebookInvalidToken = 2300 case facebookMissingProperty = 2301 case facebookMalformedToken = 2302 + case googleUnableToCreateUserMissingEmail = 2325 + case googleUnableToCreateUserTokenTooLong = 2326 + case googleUnableToLoginNoToken = 2327 + case googleUnableToLoginNonExistentProperty = 2328 + case googleUnableToLoginEmailNotFoundViaToken = 2329 + case googleUnableToCreateUserInsufficientPermissions = 2330 + case googleUnableToCreateUserCannotValidateToken = 2331 + case googleUnableToCreateUserDailyLimit = 2332 + case googleUnableToLoginInsufficientPermissions = 2333 + case googleUnableToLoginCannotValidateToken = 2334 + case googleUnableToLoginDailyLimit = 2335 + case googleUnableToLoginCouldNotVerifyToken = 2336 + case googleUnableToCreateUserCouldNotVerifyToken = 2337 case emailAlreadyRegistered = 2400 case emailBlocked = 2401 case emailSpammer = 2402 @@ -88,6 +102,11 @@ public enum VimeoErrorCode: Int case userNotAllowedToFollowChannels = 3418 case batchFollowUserRequestFailed = 4005 case batchSubscribeChannelRequestFailed = 4006 + + // Live Streaming + case userNotAllowedToLiveStream = 3422 + case userHitSimultaneousLiveStreamingLimit = 3423 + case userHitMonthlyLiveStreamingMinutesQuota = 3424 } /// `HTTPStatusCode` contains HTTP status code constants used to inspect response status diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift index 47da6ed5..235e8ab0 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift @@ -28,14 +28,14 @@ import Foundation public class PinCodeInfo: VIMModelObject { - dynamic public var deviceCode: String? - dynamic public var userCode: String? - dynamic public var authorizeLink: String? - dynamic public var activateLink: String? + @objc dynamic public private(set) var deviceCode: String? + @objc dynamic public private(set) var userCode: String? + @objc dynamic public private(set) var authorizeLink: String? + @objc dynamic public private(set) var activateLink: String? // TODO: These are non-optional Ints with -1 invalid sentinel values because // an optional Int can't be represented in Objective-C and can't be marked // dynamic, which leads to it not getting parsed by VIMObjectMapper [RH] - dynamic public var expiresIn: Int = -1 - dynamic public var interval: Int = -1 + @objc dynamic public private(set) var expiresIn: Int = -1 + @objc dynamic public private(set) var interval: Int = -1 } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift index 33ef07f1..1c067949 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift @@ -12,5 +12,5 @@ import Foundation public class PlayProgress: VIMModelObject { /// The time, in seconds, that the video has been viewed. - public var seconds: NSNumber? + @objc dynamic public var seconds: NSNumber? } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift index f4f59859..b1287ed7 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift @@ -15,10 +15,10 @@ public class Spatial: VIMModelObject public static let StereoFormatTopBottom = "top-bottom" /// Represents the projection. Value returned by the server can be: "equirectangular", "cylindrical", "cubical", "pyramid", "dome". - public var projection: String? + @objc dynamic public private(set) var projection: String? /// Represents the format. Value returned by the server can be: "mono", "left-right", "top-bottom" - public var stereoFormat: String? + @objc dynamic public private(set) var stereoFormat: String? // MARK: - VIMMappable diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift index 0ba72b57..13efddde 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift @@ -12,50 +12,54 @@ public class Subscription: VIMModelObject // MARK: - Properties /// Represents wether the user is subscribed to the `comment` notification. - var comment: NSNumber? + @objc dynamic public private(set) var comment: NSNumber? /// Represents wether the user is subscribed to the `credit` notification. - var credit: NSNumber? + @objc dynamic public private(set) var credit: NSNumber? /// Represents wether the user is subscribed to the `like` notification. - var like: NSNumber? + @objc dynamic public private(set) var like: NSNumber? /// Represents wether the user is subscribed to the `mention` notification. - var mention: NSNumber? + @objc dynamic public private(set) var mention: NSNumber? /// Represents wether the user is subscribed to the `reply` notification. - var reply: NSNumber? + @objc dynamic public private(set) var reply: NSNumber? /// Represents wether the user is subscribed to the `follow` notification. - var follow: NSNumber? + @objc dynamic public private(set) var follow: NSNumber? /// Represents wether the user is subscribed to the `video available` notification. - var videoAvailable: NSNumber? + @objc dynamic public private(set) var videoAvailable: NSNumber? /// Represents wether the user is subscribed to the `vod pre order available` notification. - var vodPreorderAvailable: NSNumber? + @objc dynamic public private(set) var vodPreorderAvailable: NSNumber? /// Represents wether the user is subscribed to the `vod rental expiration warning` notification. - var vodRentalExpirationWarning: NSNumber? + @objc dynamic public private(set) var vodRentalExpirationWarning: NSNumber? /// Represents wether the user is subscribed to the `account expiration warning` notification. - var accountExpirationWarning: NSNumber? + @objc dynamic public private(set) var accountExpirationWarning: NSNumber? /// Represents wether the user is subscribed to the `share` notification. - var share: NSNumber? + @objc dynamic public private(set) var share: NSNumber? + + /// Represents wether the is subscribed to the `New video available from followed user` notification. + @objc dynamic public private(set) var followedUserVideoAvailable: NSNumber? /// Represents the Subscription object as a Dictionary public var toDictionary: [AnyHashable: Any] { - let dictionary = ["comment": self.comment ?? false, - "credit": self.credit ?? false, - "like": self.like ?? false, - "mention": self.mention ?? false, - "reply": self.reply ?? false, - "follow": self.follow ?? false, - "vod_preorder_available": self.vodPreorderAvailable ?? false, - "video_available": self.videoAvailable ?? false, - "share": self.share ?? false] + let dictionary: [AnyHashable: Any] = ["comment": self.comment ?? false, + "credit": self.credit ?? false, + "like": self.like ?? false, + "mention": self.mention ?? false, + "reply": self.reply ?? false, + "follow": self.follow ?? false, + "vod_preorder_available": self.vodPreorderAvailable ?? false, + "video_available": self.videoAvailable ?? false, + "share": self.share ?? false, + "followed_user_video_available": self.followedUserVideoAvailable ?? false] return dictionary } @@ -68,7 +72,8 @@ public class Subscription: VIMModelObject "video_available": "videoAvailable", "vod_preorder_available": "vodPreorderAvailable", "vod_rental_expiration_warning": "vodRentalExpirationWarning", - "account_expiration_warning": "accountExpirationWarning"] + "account_expiration_warning": "accountExpirationWarning", + "followed_user_video_available": "followedUserVideoAvailable"] } // MARK: - Helpers @@ -86,6 +91,7 @@ public class Subscription: VIMModelObject self.follow == false && self.vodPreorderAvailable == false && self.videoAvailable == false && - self.share == false) + self.share == false && + self.followedUserVideoAvailable == false) } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift index eea4d188..e41dd2a5 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift @@ -12,13 +12,13 @@ public class SubscriptionCollection: VIMModelObject // MARK: - Properties /// Represents the uri - public var uri: String? + @objc dynamic public private(set) var uri: String? /// Represents the subscription - public var subscription: Subscription? + @objc dynamic public private(set) var subscription: Subscription? /// Represents the migration that indicates whether the user has migrated from the old system `VIMTrigger` to new new system `Localytics`. - public var migrated: NSNumber? + @objc dynamic public private(set) var migrated: NSNumber? // MARK: - VIMMappable diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h index 1b8d7a6a..c6c23d06 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h @@ -59,6 +59,8 @@ extern NSString *const __nonnull VIMConnectionNameRecommendedUsers; extern NSString *const __nonnull VIMConnectionNameModeratedChannels; extern NSString *const __nonnull VIMConnectionNameContents; extern NSString *const __nonnull VIMConnectionNameNotifications; +extern NSString *const __nonnull VIMConnectionNameBlockUser; +extern NSString *const __nonnull VIMConnectionNameLiveStats; @interface VIMConnection : VIMModelObject diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m index b79ef442..d15bf9b3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m @@ -59,6 +59,9 @@ NSString *const VIMConnectionNameModeratedChannels = @"moderated_channels"; NSString *const VIMConnectionNameContents = @"contents"; NSString *const VIMConnectionNameNotifications = @"notifications"; +NSString *const VIMConnectionNameBlockUser = @"block"; +NSString *const VIMConnectionNameLiveStats = @"live_stats"; + @implementation VIMConnection diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h index 96219d23..c1ea7d67 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h @@ -34,6 +34,7 @@ extern NSString * const __nonnull VIMInteractionNameLike; extern NSString * const __nonnull VIMInteractionNameBuy; extern NSString * const __nonnull VIMInteractionNameRent; extern NSString * const __nonnull VIMInteractionNameSubscribe; +extern NSString * const __nonnull VIMInteractionNamePurchase; typedef NS_ENUM(NSInteger, VIMInteractionStreamStatus) { VIMInteractionStreamStatusUnavailable = 0, // user cannot purchase @@ -48,6 +49,8 @@ typedef NS_ENUM(NSInteger, VIMInteractionStreamStatus) { @property (nonatomic, strong, nullable) NSNumber *added; @property (nonatomic, strong, nullable) NSDate *addedTime; +@property (nonatomic, strong, nullable) NSString *status; + # pragma mark - VOD related only @property (nonatomic, copy, nullable) NSString *link; @property (nonatomic, copy, nullable) NSString *download; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m index 3d342d97..df70c425 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m @@ -34,6 +34,7 @@ NSString * const VIMInteractionNameBuy = @"buy"; NSString * const VIMInteractionNameRent = @"rent"; NSString * const VIMInteractionNameSubscribe = @"subscribe"; +NSString * const VIMInteractionNamePurchase = @"purchase"; @interface VIMInteraction() @property (nonatomic, copy, nullable) NSString *added_time; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift new file mode 100644 index 00000000..aae0de47 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift @@ -0,0 +1,142 @@ +// +// VIMLive.swift +// VimeoNetworking +// +// Created by Van Nguyen on 08/29/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// The streaming status of a live video. +/// +/// - unavailable: The RTMP link is visible but not yet able to receive the stream. +/// - pending: Vimeo is working on setting up the connection. +/// - ready: The RTMP's URL is ready to receive video content. +/// - streamingPreview: The stream is in a "preview" state. It will be accessible to the public when you transition to "streaming". +/// - streaming: The stream is open and receiving content. +/// - streamingError: The stream has failed due to an error relating to the broadcaster; They may have reached their monthly broadcast limit, for example. +/// - archiving: The stream has finished, and the video is in the process of being archived, but is not ready to play yet. +/// - archiveError: There was a problem archiving the stream. +/// - done: The stream has been ended intentionally by the end-user. +public enum LiveStreamingStatus: String +{ + case unavailable = "unavailable" + case pending = "pending" + case ready = "ready" + case streamingPreview = "streaming_preview" + case streaming = "streaming" + case streamingError = "streaming_error" + case archiving = "archiving" + case archiveError = "archive_error" + case done = "done" +} + +/// An object that represents the `live` field in +/// a `clip` response. +public class VIMLive: VIMModelObject +{ + private struct Constants + { + static let ChatKey = "chat" + } + + /// The RTMP link is visible but not yet able to receive the stream. + public static let LiveStreamStatusUnavailable = "unavailable" + + /// Vimeo is working on setting up the connection. + public static let LiveStreamStatusPending = "pending" + + /// The RTMP's URL is ready to receive video content. + public static let LiveStreamStatusReady = "ready" + + /// The stream is in a "preview" state. It will be accessible to the public when you transition to "streaming". + public static let LiveStreamStatusStreamingPreview = "streaming_preview" + + /// The stream is open and receiving content. + public static let LiveStreamStatusStreaming = "streaming" + + /// The stream has failed due to an error relating to the broadcaster; They may have reached their monthly broadcast limit, for example. + public static let LiveStreamStatusStreamingError = "streaming_error" + + /// The stream has finished, and the video is in the process of being archived, but is not ready to play yet. + public static let LiveStreamStatusArchiving = "archiving" + + /// There was a problem archiving the stream. + public static let LiveStreamStatusArchiveError = "archive_error" + + /// The stream has been ended intentionally by the end-user. + public static let LiveStreamStatusDone = "done" + + /// An RTMP link used to host a live stream. + @objc dynamic public private(set) var link: String? + + /// A token for streaming. + @objc dynamic public private(set) var key: String? + + /// The timestamp that the stream is active. + @objc dynamic public private(set) var activeTime: NSDate? + + /// The timestamp that the stream is over. + @objc dynamic public private(set) var endedTime: NSDate? + + /// The timestamp that the live video is + /// archived. + @objc dynamic public private(set) var archivedTime: NSDate? + + /// The timestamp that the live video is + /// scheduled to be online. + @objc dynamic public private(set) var scheduledStartTime: NSDate? + + /** + The status of the live video in string. + + - Note: + Technically, this property should not be used to + check the status of a live video. Use + `liveStreamingStatus` instead for easy checking. + */ + @objc dynamic public private(set) var status: String? + + /// The status of the live video in `LiveStreamingStatus` enum. + public var liveStreamingStatus: LiveStreamingStatus? + { + guard let status = self.status else + { + return nil + } + + return LiveStreamingStatus(rawValue: status) + } + + /// The live event's chat. + public private(set) var chat: VIMLiveChat? + + public override func getClassForObjectKey(_ key: String!) -> AnyClass? + { + if key == Constants.ChatKey + { + return VIMLiveChat.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift similarity index 56% rename from Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.m rename to Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift index 893a7944..c271a5d3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift @@ -1,9 +1,9 @@ // -// VIMSizeQuota.m +// VIMLiveChat.swift // VimeoNetworking // -// Created by Hanssen, Alfie on 11/6/15. -// Copyright (c) 2015 Vimeo (https://vimeo.com) +// Created by Van Nguyen on 10/10/2017. +// Copyright (c) Vimeo (https://vimeo.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -24,8 +24,31 @@ // THE SOFTWARE. // -#import "VIMSizeQuota.h" - -@implementation VIMSizeQuota - -@end +/// An object representing the `chat` field in a `live` response. This +/// `live` response is part of the `clip` representation. +public class VIMLiveChat: VIMModelObject +{ + private struct Constants + { + static let UserKey = "user" + } + + /// The ID of the live event chat room. + public private(set) var roomId: NSNumber? + + /// JWT for the user to access the live event chat room. + public private(set) var token: String? + + /// The current user. + public private(set) var user: VIMLiveChatUser? + + public override func getClassForObjectKey(_ key: String!) -> AnyClass? + { + if key == Constants.UserKey + { + return VIMLiveChatUser.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift new file mode 100644 index 00000000..810cbac0 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift @@ -0,0 +1,98 @@ +// +// VIMLiveChatUser.swift +// VimeoNetworking +// +// Created by Van Nguyen on 10/10/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +/// The user's account type. +/// +/// - basic: "Vimeo Basic" tier. +/// - business: "Vimeo Business" tier. +/// - liveBusiness: "Business Live" tier. +/// - livePro: "PRO Live" tier. +/// - plus: "Vimeo Plus" tier. +/// - pro: "Vimeo PRO" tier. +/// - proUnlimited: "Custom Live" tier. +public enum AccountType: String +{ + case basic = "basic" + case business = "business" + case liveBusiness = "live_business" + case livePro = "live_pro" + case plus = "plus" + case pro = "pro" + case proUnlimited = "pro_unlimited" +} + +/// An object representing the `user` field in a `chat` response. +public class VIMLiveChatUser: VIMModelObject +{ + private struct Constants + { + static let PictureResponseKey = "pictures" + } + + private(set) var account: String? + + /// The user's account type in `AccountType`. + public var accountType: AccountType? + { + guard let accountValue = self.account else + { + return nil + } + + return AccountType(rawValue: accountValue) + } + + /// The user's ID. + public private(set) var id: NSNumber? + + /// Is this user the creator of the live event? + public private(set) var isCreator: NSNumber? + + /// Is this user a Vimeo staff member? + public private(set) var isStaff: NSNumber? + + /// The users' display name. + public private(set) var name: String? + + /// The active picture for this user. + public private(set) var pictures: VIMPictureCollection? + + /// URI of the current user. + public private(set) var uri: String? + + /// Absolute URL of the current user. + public private(set) var link: String? + + public override func getClassForObjectKey(_ key: String!) -> AnyClass? + { + if key == Constants.PictureResponseKey + { + return VIMPictureCollection.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift similarity index 65% rename from Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.m rename to Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift index fe2f66ae..1c1b4557 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift @@ -1,9 +1,9 @@ // -// VIMUploadQuota.m +// VIMLiveHeartbeat.swift // VimeoNetworking // -// Created by Hanssen, Alfie on 11/6/15. -// Copyright (c) 2015 Vimeo (https://vimeo.com) +// Created by Van Nguyen on 10/04/2017. +// Copyright (c) Vimeo (https://vimeo.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -24,33 +24,21 @@ // THE SOFTWARE. // -#import "VIMUploadQuota.h" -#import "VIMQuantityQuota.h" -#import "VIMSizeQuota.h" +import Foundation -@implementation VIMUploadQuota - -#pragma mark - VIMMappable - -- (NSDictionary *)getObjectMapping -{ - return @{@"quota": @"quantityQuota", - @"space": @"sizeQuota"}; -} - -- (Class)getClassForObjectKey:(NSString *)key +/// An object representing the `live` object in either an `hls` or a `dash` response. +public class VIMLiveHeartbeat: VIMModelObject { - if ([key isEqualToString:@"quota"]) + private struct Constants { - return [VIMQuantityQuota class]; + static let HeartbeatUrlKey = "heartbeat" } - - if ([key isEqualToString:@"space"]) + + /// The heartbeat URL that the client should send requests to. + @objc dynamic public private(set) var heartbeatUrl: String? + + override public func getObjectMapping() -> Any? { - return [VIMSizeQuota class]; + return [Constants.HeartbeatUrlKey: "heartbeatUrl"] } - - return nil; } - -@end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift new file mode 100644 index 00000000..cf2f335f --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift @@ -0,0 +1,59 @@ +// +// VIMLiveQuota.swift +// VimeoNetworking +// +// Created by Van Nguyen on 09/11/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An object that represents the `live_quota` +/// field in a `user` response. +public class VIMLiveQuota: VIMModelObject +{ + private struct Constants + { + static let StreamsKey = "streams" + static let TimeKey = "time" + } + + /// The `streams` field in a `live_quota` response. + @objc dynamic public private(set) var streams: VIMLiveStreams? + + /// The `time` field in a `live_quota` response. + @objc dynamic public private(set) var time: VIMLiveTime? + + override public func getClassForObjectKey(_ key: String!) -> AnyClass! + { + if key == Constants.StreamsKey + { + return VIMLiveStreams.self + } + + if key == Constants.TimeKey + { + return VIMLiveTime.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveStreams.swift similarity index 64% rename from Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.h rename to Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveStreams.swift index d7973796..8ab56f2b 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveStreams.swift @@ -1,9 +1,9 @@ // -// VIMSizeQuota.h +// VIMLiveStreams.swift // VimeoNetworking // -// Created by Hanssen, Alfie on 11/6/15. -// Copyright (c) 2015 Vimeo (https://vimeo.com) +// Created by Van Nguyen on 09/11/2017. +// Copyright (c) Vimeo (https://vimeo.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -24,12 +24,20 @@ // THE SOFTWARE. // -#import "VIMModelObject.h" +import Foundation -@interface VIMSizeQuota : VIMModelObject +/// An object that represents the `streams` field +/// in a `live_quota` response. +public class VIMLiveStreams: VIMModelObject +{ + /// The maximum streams a user can make. + @objc dynamic public private(set) var maxStreams: NSNumber? -@property (nonatomic, strong, nullable) NSNumber *free; -@property (nonatomic, strong, nullable) NSNumber *max; -@property (nonatomic, strong, nullable) NSNumber *used; - -@end + /// The remaining streams a user can make. + @objc dynamic public private(set) var remainingStreams: NSNumber? + + override public func getObjectMapping() -> Any! + { + return ["remaining": "remainingStreams", "maximum": "maxStreams"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveTime.swift similarity index 55% rename from Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.h rename to Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveTime.swift index f97b2a45..37322348 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveTime.swift @@ -1,9 +1,9 @@ // -// VIMUploadQuota.h +// VIMLiveTime.swift // VimeoNetworking // -// Created by Hanssen, Alfie on 11/6/15. -// Copyright (c) 2015 Vimeo (https://vimeo.com) +// Created by Van Nguyen on 09/11/2017. +// Copyright (c) Vimeo (https://vimeo.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -24,14 +24,23 @@ // THE SOFTWARE. // -#import "VIMModelObject.h" +import Foundation -@class VIMQuantityQuota; -@class VIMSizeQuota; - -@interface VIMUploadQuota : VIMModelObject - -@property (nonatomic, strong, nullable) VIMQuantityQuota *quantityQuota; -@property (nonatomic, strong, nullable) VIMSizeQuota *sizeQuota; - -@end +/// An object that represents the `time` field in +/// a `live_quota` response. +public class VIMLiveTime: VIMModelObject +{ + /// The maximum time (in seconds) per event a user can stream. + @objc dynamic public private(set) var maxTimePerEvent: NSNumber? + + /// The maximum time (in seconds) per month a user can stream. + @objc dynamic public private(set) var maxTimePerMonth: NSNumber? + + /// The remaining time (in seconds) this month a user can stream. + @objc dynamic public private(set) var remainingTimeThisMonth: NSNumber? + + override public func getObjectMapping() -> Any! + { + return ["monthly_remaining": "remainingTimeThisMonth", "monthly_maximum": "maxTimePerMonth", "event_maximum": "maxTimePerEvent"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h index 561c4c7f..1ff9808a 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h @@ -38,7 +38,8 @@ typedef NS_ENUM(NSUInteger, VIMNotificationType) { VIMNotificationTypeFollow, VIMNotificationTypeLike, VIMNotificationTypeReply, - VIMNotificationTypeVideoAvailable + VIMNotificationTypeVideoAvailable, // User new video available + VIMNotificationTypeFollowedUserVideoAvailable // Followed user new video available }; @interface VIMNotification : VIMModelObject @@ -57,4 +58,6 @@ typedef NS_ENUM(NSUInteger, VIMNotificationType) { + (nonnull NSDictionary *)supportedTypeMap; +@property (nonatomic, strong, nullable) NSNumber *typeUnseenCount; + @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m index d2e148cb..fa338e71 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m @@ -42,7 +42,8 @@ @implementation VIMNotification @"follow" : @(VIMNotificationTypeFollow), @"like" : @(VIMNotificationTypeLike), @"reply" : @(VIMNotificationTypeReply), - @"video_available" : @(VIMNotificationTypeVideoAvailable)}; + @"video_available" : @(VIMNotificationTypeVideoAvailable), + @"followed_user_video_available" : @(VIMNotificationTypeFollowedUserVideoAvailable)}; }); return _typeMap; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h index 043a9f02..3bf1f859 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h @@ -16,5 +16,6 @@ @return An NSInteger specifying the total of new notifications currently supported */ - (NSInteger)supportedNotificationNewTotal; +- (NSInteger)supportedNotificationUnseenTotal; @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m index bdee4763..525ad87f 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m @@ -12,11 +12,23 @@ @interface VIMNotificationsConnection () @property (nonatomic, copy, nullable) NSDictionary *type_count; +@property (nonatomic, copy, nullable) NSDictionary *type_unseen_count; @end @implementation VIMNotificationsConnection +- (void)didFinishMapping +{ + // This is a migration for the outage on 2/20/18 where these counts were being returned as empty arrays for some users. + // https://vimean.atlassian.net/browse/VIM-5996 [ghking] 2/22/18 + + if (![self.type_count isKindOfClass:[NSDictionary class]]) + { + self.type_count = [NSDictionary new]; + } +} + - (NSInteger)supportedNotificationNewTotal { NSArray *supportedNotificationKeys = [[VIMNotification supportedTypeMap] allKeys]; @@ -30,4 +42,17 @@ - (NSInteger)supportedNotificationNewTotal return total; } +- (NSInteger)supportedNotificationUnseenTotal +{ + NSArray *supportedNotificationKeys = [[VIMNotification supportedTypeMap] allKeys]; + + NSInteger total = 0; + for (NSString *key in supportedNotificationKeys) + { + total += self.type_unseen_count[key].integerValue; + } + + return total; +} + @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift new file mode 100644 index 00000000..532a2d05 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift @@ -0,0 +1,19 @@ +// +// VIMPeriodic.swift +// VimeoNetworking +// +// Created by Lim, Jennifer on 4/3/18. +// + +public class VIMPeriodic: VIMSizeQuota +{ + /// The time in ISO 8601 format when your upload quota resets. + @objc dynamic public private(set) var resetDate: NSDate? + + // MARK: - VIMMappable + + public override func getObjectMapping() -> Any + { + return ["reset_date" : "resetDate"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift index 356eb901..80df35e4 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift @@ -28,13 +28,13 @@ import Foundation public class VIMProgrammedContent: VIMModelObject { - dynamic public var uri: String? - dynamic public var name: String? - dynamic public var type: String? - dynamic public var content: NSArray? + @objc dynamic public private(set) var uri: String? + @objc dynamic public private(set) var name: String? + @objc dynamic public private(set) var type: String? + @objc dynamic public private(set) var content: NSArray? - dynamic private var metadata: [AnyHashable: Any]? - dynamic private var connections: [AnyHashable: Any]? + @objc dynamic private var metadata: [AnyHashable: Any]? + @objc dynamic private var connections: [AnyHashable: Any]? private struct Constants { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m index 68f58e00..7331c742 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m @@ -39,8 +39,8 @@ @implementation VIMQuantityQuota - (void)didFinishMapping { - self.canUploadHd = [self.hd boolValue]; - self.canUploadSd = [self.sd boolValue]; + self.canUploadHd = [self.hd respondsToSelector:@selector(boolValue)] ? [self.hd boolValue] : NO; + self.canUploadSd = [self.sd respondsToSelector:@selector(boolValue)] ? [self.sd boolValue] : NO; } @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift new file mode 100644 index 00000000..79ae4d55 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift @@ -0,0 +1,21 @@ +// +// VIMReviewPage.swift +// VimeoNetworking +// +// Created by Lim, Jennifer on 3/19/18. +// + +/// VIMReviewPage stores all information related to review a video +public class VIMReviewPage: VIMModelObject +{ + /// Represents whether the review page is active for this video + @objc dynamic public private(set) var isActive: NSNumber? + + /// Represents the review page link + @objc dynamic public private(set) var link: String? + + public override func getObjectMapping() -> Any + { + return ["active" : "isActive"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift new file mode 100644 index 00000000..2ed185ff --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift @@ -0,0 +1,18 @@ +// +// VIMSizeQuota.swift +// VimeoNetworking +// +// Created by Lim, Jennifer on 4/3/18. +// + +public class VIMSizeQuota: VIMModelObject +{ + /// Indicates the free space size + @objc dynamic public private(set) var free: NSNumber? + + /// Indicates the maximum size quota + @objc dynamic public private(set) var max: NSNumber? + + /// Indicates the used size quota + @objc dynamic public private(set) var used: NSNumber? +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift new file mode 100644 index 00000000..ad029867 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift @@ -0,0 +1,19 @@ +// +// VIMSpace.swift +// VimeoNetworking +// +// Created by Lim, Jennifer on 4/3/18. +// + +public class VIMSpace: VIMSizeQuota +{ + /// Whether the values of the upload_quota.space fields are for the lifetime quota or the periodic quota. Values can be `lifetime` or `periodic`. + @objc dynamic public private(set) var type: String? + + // MARK: - VIMMappable + + public override func getObjectMapping() -> Any + { + return ["showing" : "type"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift new file mode 100644 index 00000000..152dc83c --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift @@ -0,0 +1,102 @@ +// +// VIMUpload.swift +// Pods +// +// Created by Lehrer, Nicole on 4/18/18. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Encapsulates the upload-related information on a video object. +public class VIMUpload: VIMModelObject +{ + /// The approach for uploading the video, expressed as a Swift-only enum + /// + /// - streaming: Two-step upload without using tus; this will be deprecated + /// - post: Upload with an HTML form or POST + /// - pull: Upload from a video file that already exists on the internet + /// - tus: Upload using the open-source tus protocol + public enum UploadApproach: String + { + case streaming + case post + case pull + case tus + } + + /// The status code for the availability of the uploaded video, expressed as a Swift-only enum + /// + /// - complete: The upload is complete + /// - error: The upload ended with an error + /// - underway: The upload is in progress + public enum UploadStatus: String + { + case complete + case error + case underway = "in_progress" + } + + /// The approach for uploading the video + @objc dynamic public private(set) var approach: String? + + /// The file size in bytes of the uploaded video + @objc dynamic public private(set) var size: NSNumber? + + /// The status code for the availability of the uploaded video + @objc dynamic public private(set) var status: String? + + /// The HTML form for uploading a video through the post approach + @objc dynamic public private(set) var form: String? + + /// The link of the video to capture through the pull approach + @objc dynamic public private(set) var link: String? + + /// The URI for completing the upload + @objc dynamic public private(set) var completeUri: String? + + /// The redirect URL for the upload app + @objc dynamic public private(set) var redirectUrl: String? + + /// The link for sending video file data + @objc dynamic public private(set) var uploadLink: String? + + /// The approach for uploading the video, mapped to a Swift-only enum + public private(set) var uploadApproach: UploadApproach? + + /// The status code for the availability of the uploaded video, mapped to a Swift-only enum + public private(set) var uploadStatus: UploadStatus? + + // MARK: - VIMMappable Protocol Conformance + + /// Called when automatic object mapping completes + public override func didFinishMapping() + { + if let approachString = self.approach + { + self.uploadApproach = UploadApproach(rawValue: approachString) + } + + if let statusString = self.status + { + self.uploadStatus = UploadStatus(rawValue: statusString) + } + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift new file mode 100644 index 00000000..d0746568 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift @@ -0,0 +1,43 @@ +// +// VIMUploadQuota.swift +// VimeoNetworking +// +// Created by Lim, Jennifer on 3/26/18. +// + +import Foundation + +public class VIMUploadQuota: VIMModelObject +{ + /// The values within `VIMSpace` reflect the lowest of lifetime or period for free and max. + @objc dynamic public private(set) var space: VIMSpace? + + /// Represents the current quota period + @objc dynamic public private(set) var periodic: VIMPeriodic? + + /// Represents the lifetime quota period + @objc dynamic public private(set) var lifetime: VIMSizeQuota? + + public override func getClassForObjectKey(_ key: String!) -> AnyClass! + { + if key == "space" + { + return VIMSpace.self + } + else if key == "periodic" + { + return VIMPeriodic.self + } + else if key == "lifetime" + { + return VIMSizeQuota.self + } + + return nil + } + + /// Determines whether the user has a periodic storage quota limit or has a lifetime upload quota storage limit only. + @objc public lazy var isPeriodicQuota: Bool = { + return self.space?.type == "periodic" + }() +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h index 2b2b1b54..752cb024 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h @@ -33,13 +33,17 @@ @class VIMPreference; @class VIMUploadQuota; @class VIMUserBadge; +@class VIMLiveQuota; typedef NS_ENUM(NSInteger, VIMUserAccountType) { VIMUserAccountTypeBasic = 0, VIMUserAccountTypePro, VIMUserAccountTypePlus, - VIMUserAccountTypeBusiness + VIMUserAccountTypeBusiness, + VIMUserAccountTypeLivePro, + VIMUserAccountTypeLiveBusiness, + VIMUserAccountTypeLivePremium }; @interface VIMUser : VIMModelObject @@ -61,6 +65,7 @@ typedef NS_ENUM(NSInteger, VIMUserAccountType) @property (nonatomic, strong, nullable) VIMPreference *preferences; @property (nonatomic, strong, nullable) VIMUploadQuota *uploadQuota; @property (nonatomic, copy, nullable) NSString *account; +@property (nonatomic, strong, nullable) VIMLiveQuota *liveQuota; - (nullable VIMConnection *)connectionWithName:(nonnull NSString *)connectionName; - (nullable VIMNotificationsConnection *)notificationsConnection; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m index 35483c4c..d4469306 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m @@ -31,8 +31,16 @@ #import "VIMPictureCollection.h" #import "VIMPicture.h" #import "VIMPreference.h" -#import "VIMUploadQuota.h" #import "VIMUserBadge.h" +#import + +static NSString *const Basic = @"basic"; +static NSString *const Plus = @"plus"; +static NSString *const Pro = @"pro"; +static NSString *const Business = @"business"; +static NSString *const LivePro = @"live_pro"; +static NSString *const LiveBusiness = @"live_business"; +static NSString *const LivePremium = @"live_premium"; @interface VIMUser () @@ -92,6 +100,11 @@ - (Class)getClassForObjectKey:(NSString *)key { return [VIMUploadQuota class]; } + + if ([key isEqualToString:@"live_quota"]) + { + return [VIMLiveQuota class]; + } return nil; } @@ -199,22 +212,34 @@ - (void)parseInteractions - (void)parseAccountType { - if ([self.account isEqualToString:@"plus"]) + if ([self.account isEqualToString:Plus]) { self.accountType = VIMUserAccountTypePlus; } - else if ([self.account isEqualToString:@"pro"]) + else if ([self.account isEqualToString:Pro]) { self.accountType = VIMUserAccountTypePro; } - else if ([self.account isEqualToString:@"basic"]) + else if ([self.account isEqualToString:Basic]) { self.accountType = VIMUserAccountTypeBasic; } - else if ([self.account isEqualToString:@"business"]) + else if ([self.account isEqualToString:Business]) { self.accountType = VIMUserAccountTypeBusiness; } + else if ([self.account isEqualToString:LivePro]) + { + self.accountType = VIMUserAccountTypeLivePro; + } + else if ([self.account isEqualToString:LiveBusiness]) + { + self.accountType = VIMUserAccountTypeLiveBusiness; + } + else if ([self.account isEqualToString:LivePremium]) + { + self.accountType = VIMUserAccountTypeLivePremium; + } } - (void)parseEmails @@ -270,13 +295,19 @@ - (NSString *)accountTypeAnalyticsIdentifier { default: case VIMUserAccountTypeBasic: - return @"basic"; + return Basic; case VIMUserAccountTypePlus: - return @"plus"; + return Plus; case VIMUserAccountTypePro: - return @"pro"; + return Pro; case VIMUserAccountTypeBusiness: - return @"business"; + return Business; + case VIMUserAccountTypeLivePro: + return LivePro; + case VIMUserAccountTypeLiveBusiness: + return LiveBusiness; + case VIMUserAccountTypeLivePremium: + return LivePremium; } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h index 247c3b3f..c7feb119 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h @@ -32,6 +32,8 @@ typedef NS_ENUM(NSInteger, VIMUserBadgeType) VIMUserBadgeTypePlus, VIMUserBadgeTypePro, VIMUserBadgeTypeBusiness, + VIMUserBadgeTypeLiveBusiness, + VIMUserBadgeTypeLivePro, VIMUserBadgeTypeAlum, VIMUserBadgeTypeStaff, VIMUserBadgeTypeSupport, diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m index 984d9c90..3346836b 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m @@ -35,6 +35,8 @@ @implementation VIMUserBadge static NSString *const Curation = @"curation"; static NSString *const Support = @"support"; static NSString *const Alum = @"alum"; +static NSString *const LivePro = @"live_pro"; +static NSString *const LiveBusiness = @"live_business"; - (void)didFinishMapping { @@ -71,6 +73,14 @@ - (void)parseBadge { self.badgeType = VIMUserBadgeTypeAlum; } + else if ([self.type isEqualToString:LivePro]) + { + self.badgeType = VIMUserBadgeTypeLivePro; + } + else if ([self.type isEqualToString:LiveBusiness]) + { + self.badgeType = VIMUserBadgeTypeLiveBusiness; + } else { self.badgeType = VIMUserBadgeTypeDefault; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h index 370864f8..aad16e6b 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h @@ -36,6 +36,9 @@ @class VIMVideoPlayRepresentation; @class VIMBadge; @class Spatial; +@class VIMLive; +@class VIMReviewPage; +@class VIMUpload; extern NSString * __nonnull VIMContentRating_Language; extern NSString * __nonnull VIMContentRating_Drugs; @@ -45,6 +48,7 @@ extern NSString * __nonnull VIMContentRating_Unrated; extern NSString * __nonnull VIMContentRating_Safe; typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { + VIMVideoProcessingStatusUnavailable, VIMVideoProcessingStatusAvailable, VIMVideoProcessingStatusUploading, VIMVideoProcessingStatusTranscodeStarting, // New state added to API 11/18/2015 with in-app support added 2/11/2016 [AH] @@ -84,6 +88,9 @@ typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { @property (nonatomic, copy, nullable) NSString *password; @property (nonatomic, strong, nullable) VIMBadge *badge; @property (nonatomic, strong, nullable) Spatial *spatial; +@property (nonatomic, strong, nullable) VIMLive *live; +@property (nonatomic, strong, nullable) VIMReviewPage *reviewPage; +@property (nonatomic, strong, nullable) VIMUpload *upload; @property (nonatomic, assign) VIMVideoProcessingStatus videoStatus; @@ -108,9 +115,58 @@ typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { - (BOOL)isDRMProtected; - (NSInteger)likesCount; - (NSInteger)commentsCount; + +/** + Checks for the existence of a Spatial object on this VIMVideo and returns @p true if one exists. + + @return Returns @p true if a Spatial object exists for this VIMVideo. + */ - (BOOL)is360; +/** + Checks for the existence of a VIMLive object on this VIMVideo and returns @p true if one exists, but does not check the state of the live event. + + @return Returns @p true if a VIMLive object exists for this VIMVideo. + */ +- (BOOL)isLive; + +/** + Determines whether the current video represents a live event and if the event is in the pre, mid, or archiving state indicating that a live event is currently underway. + + @return Returns @p true if the live video's broadcast is about to begin, is underway, or is being archived. Returns @p false if the live video's broadcast has already been archived. + */ +- (BOOL)isLiveEventInProgress; + +/** + Determines whether the current video represents a live event and whether or not the broadcast has started. + + @return Returns @p true if the live video's broadcast has not begun. + */ +- (BOOL)isPreBroadcast; + +/** + Determines whether the current video represents a live event and if the broadcast is underway. + + @return Returns @p true when the live video's broadcast is underway. + */ +- (BOOL)isMidBroadcast; + +/** + Determines whether the current video represents a live event that is in the process of being archived. + + @return Returns @p true when the live video's broadcast has ended and is being archived. + */ +- (BOOL)isArchivingBroadcast; + +/** + Determines whether the current video represents a live event, whether it has ended, and if an archive of the broadcast is ready for playback. + + @return Returns @p true when the live video event has ended and an archive of the broadcast is available. + */ +- (BOOL)isPostBroadcast; + - (void)setIsLiked:(BOOL)isLiked; - (void)setIsWatchLater:(BOOL)isWatchLater; +- (BOOL)hasReviewPage; @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m index a77b0f3e..c6a01f4f 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m @@ -77,7 +77,9 @@ - (NSDictionary *)getObjectMapping { return @{@"description": @"videoDescription", @"pictures": @"pictureCollection", - @"play": @"playRepresentation"}; + @"play": @"playRepresentation", + @"review_page": @"reviewPage", + }; } - (Class)getClassForCollectionKey:(NSString *)key @@ -133,7 +135,22 @@ - (Class)getClassForObjectKey:(NSString *)key if ([key isEqualToString:@"spatial"]) { - return [Spatial class]; + return [Spatial class]; + } + + if ([key isEqualToString:@"live"]) + { + return [VIMLive class]; + } + + if ([key isEqualToString:@"review_page"]) + { + return [VIMReviewPage class]; + } + + if ([key isEqualToString:@"upload"]) + { + return [VIMUpload class]; } return nil; @@ -309,6 +326,7 @@ - (void)formatModifiedTime - (void)setVideoStatus { NSDictionary *statusDictionary = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInt:VIMVideoProcessingStatusUnavailable], @"unavailable", [NSNumber numberWithInt:VIMVideoProcessingStatusAvailable], @"available", [NSNumber numberWithInt:VIMVideoProcessingStatusUploading], @"uploading", [NSNumber numberWithInt:VIMVideoProcessingStatusTranscoding], @"transcoding", @@ -496,4 +514,44 @@ - (BOOL)is360 return self.spatial != nil; } +- (BOOL)isLive +{ + return self.live != nil; +} + +- (BOOL)isLiveEventInProgress +{ + return self.live != nil && (self.isPreBroadcast || self.isMidBroadcast || self.isArchivingBroadcast); +} + +- (BOOL)isPreBroadcast +{ + return self.isLive && ([self.live.status isEqual: VIMLive.LiveStreamStatusUnavailable] || [self.live.status isEqual: VIMLive.LiveStreamStatusReady] || [self.live.status isEqual: VIMLive.LiveStreamStatusPending]); +} + +- (BOOL)isMidBroadcast +{ + return self.isLive && [self.live.status isEqual: VIMLive.LiveStreamStatusStreaming]; +} + +- (BOOL)isArchivingBroadcast +{ + return self.isLive && [self.live.status isEqualToString:VIMLive.LiveStreamStatusArchiving]; +} + +- (BOOL)isPostBroadcast +{ + return self.isLive && ([self.live.status isEqual: VIMLive.LiveStreamStatusDone]); +} + +- (BOOL)hasReviewPage +{ + NSString *trimmedReviewLink = [self.reviewPage.link stringByReplacingOccurrencesOfString:@" " withString:@""]; + + return self.reviewPage != nil && + self.reviewPage.isActive.boolValue == true && + self.reviewPage.link != nil && + trimmedReviewLink.length > 0; +} + @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h index 8408c132..8a9fd74c 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h @@ -28,11 +28,14 @@ #import "VIMModelObject.h" +@class VIMLiveHeartbeat; + @interface VIMVideoPlayFile : VIMModelObject @property (nonatomic, copy, nullable) NSString *link; @property (nonatomic, strong, nullable) NSDate *expirationDate; @property (nonatomic, copy, nullable) NSString *log; +@property (nonatomic, strong, nullable) VIMLiveHeartbeat *heartbeat; - (BOOL)isExpired; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m index b55960a4..4186df02 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m @@ -25,6 +25,7 @@ // #import "VIMVideoPlayFile.h" +#import @interface VIMVideoPlayFile() @@ -36,6 +37,16 @@ @implementation VIMVideoPlayFile #pragma mark - VIMMappable +- (Class)getClassForObjectKey:(NSString *)key +{ + if ([key isEqualToString:@"live"]) + { + return [VIMLiveHeartbeat class]; + } + + return nil; +} + - (void)didFinishMapping { if ([self.expires isKindOfClass:[NSString class]]) @@ -57,7 +68,7 @@ - (void)didFinishMapping - (NSDictionary *)getObjectMapping { - return @{@"link_expiration_time": @"expires"}; + return @{@"link_expiration_time": @"expires", @"live": @"heartbeat"}; } #pragma mark - Instance methods diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift index 8d478d9e..802edb5d 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift @@ -26,6 +26,8 @@ import Foundation +public typealias AuthenticationRequest = Request + private let GrantTypeKey = "grant_type" private let ScopeKey = "scope" private let CodeKey = "code" @@ -55,13 +57,10 @@ private let AuthenticationPathPinCode = "oauth/device" private let AuthenticationPathPinCodeAuthorize = "oauth/device/authorize" private let AuthenticationPathAppTokenExchange = "oauth/appexchange" - // MARK: - private let AuthenticationPathTokens = "/tokens" -typealias AuthenticationRequest = Request - extension Request where ModelType: VIMAccount { /** diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift index a7e4b64f..5fd4b7c2 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift @@ -38,6 +38,8 @@ public extension Request private static var VideosPath: String { return "/videos" } + private static var SelectedUsersPrivacyPath: String { return "/privacy/users" } + // MARK: - /** @@ -92,7 +94,9 @@ public extension Request { let parameters = [VimeoClient.Constants.PerPageKey: 100] - return Request(path: videoURI, parameters: parameters) + let path = videoURI + self.SelectedUsersPrivacyPath + + return Request(path: path, parameters: parameters) } // MARK: - Search diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift index 925a18df..e874817a 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift @@ -169,7 +169,7 @@ public struct Request { let queryString = AFQueryStringFromParameters(parameters) - if queryString.characters.count > 0 + if queryString.count > 0 { components?.query = queryString } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift index fb2fbb1b..13a773bd 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift @@ -26,33 +26,36 @@ import Foundation - /// `Scope` describes a permission that your application requests from the API +/// `Scope` describes a permission that your application requests from the API public enum Scope: String { - /// View public videos + /// View public videos case Public = "public" - /// View private videos + /// View private videos case Private = "private" - /// View Vimeo On Demand purchase history + /// View Vimeo On Demand purchase history case Purchased = "purchased" - /// Create new videos, groups, albums, etc. + /// Create new videos, groups, albums, etc. case Create = "create" - /// Edit videos, groups, albums, etc. + /// Edit videos, groups, albums, etc. case Edit = "edit" - /// Delete videos, groups, albums, etc. + /// Delete videos, groups, albums, etc. case Delete = "delete" - /// Interact with a video on behalf of a user, such as liking a video or adding it to your watch later queue + /// Interact with a video on behalf of a user, such as liking a video or adding it to your watch later queue case Interact = "interact" - /// Upload a video + /// Upload a video case Upload = "upload" + /// Receive live-related statistics. + case Stats = "stats" + /** Combines an array of scopes into a scope string as expected by the api diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift index 028c32fc..5f437c54 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift @@ -61,7 +61,8 @@ final public class VimeoClient /// The path of the request public let path: String? - fileprivate let task: URLSessionDataTask? + /// The data task of the request + public let task: URLSessionDataTask? /** Cancel the request diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoNetworking.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoNetworking.h index 96bbdb29..1999cdd7 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoNetworking.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoNetworking.h @@ -48,10 +48,8 @@ FOUNDATION_EXPORT const unsigned char VimeoNetworkingVersionString[]; #import #import #import -#import #import #import -#import #import #import #import diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift index 77c5495e..f370bd32 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift @@ -37,6 +37,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { static let AcceptHeaderKey = "Accept" static let AuthorizationHeaderKey = "Authorization" + static let UserAgentKey = "User-Agent" } public typealias AccessTokenProvider = (Void) -> String? @@ -59,14 +60,14 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer - returns: an initialized `VimeoRequestSerializer` */ - init(accessTokenProvider: @escaping AccessTokenProvider, apiVersion: String = VimeoDefaultAPIVersionString) + init(accessTokenProvider: @escaping AccessTokenProvider, apiVersion: String) { self.accessTokenProvider = accessTokenProvider self.appConfiguration = nil super.init() - self.setup(apiVersion: apiVersion) + self.configureDefaultHeaders(withAPIVersion: apiVersion) } /** @@ -83,7 +84,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer super.init() - self.setup(apiVersion: appConfiguration.apiVersion) + self.configureDefaultHeaders(withAPIVersion: appConfiguration.apiVersion) } /** @@ -100,7 +101,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { var request = super.request(withMethod: method, urlString: URLString, parameters: parameters, error: error) as URLRequest - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return (request as NSURLRequest).mutableCopy() as! NSMutableURLRequest } @@ -109,7 +110,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { var request = super.multipartFormRequest(withMethod: method, urlString: URLString, parameters: parameters, constructingBodyWith: block, error: error) as URLRequest - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return (request as NSURLRequest).mutableCopy() as! NSMutableURLRequest } @@ -118,7 +119,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { var request = super.request(withMultipartForm: request, writingStreamContentsToFile: fileURL, completionHandler: handler) as URLRequest - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return (request as NSURLRequest).mutableCopy() as! NSMutableURLRequest } @@ -127,7 +128,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { if var request = super.request(bySerializingRequest: request, withParameters: parameters, error: error) { - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return request } @@ -135,14 +136,24 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer return nil } - // MARK: Private API + // MARK: Header Helpers - private func setup(apiVersion: String) + private func configureDefaultHeaders(withAPIVersion apiVersion: String) { self.setValue("application/vnd.vimeo.*+json; version=\(apiVersion)", forHTTPHeaderField: Constants.AcceptHeaderKey) } - private func requestWithAuthorizationHeader(fromRequest request: URLRequest) -> URLRequest + private func requestConfiguringHeaders(fromRequest request: URLRequest) -> URLRequest + { + var request = request + + request = self.requestAddingAuthorizationHeader(fromRequest: request) + request = self.requestModifyingUserAgentHeader(fromRequest: request) + + return request + } + + private func requestAddingAuthorizationHeader(fromRequest request: URLRequest) -> URLRequest { var request = request @@ -169,4 +180,39 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer return request } + + private func requestModifyingUserAgentHeader(fromRequest request: URLRequest) -> URLRequest + { + guard let frameworkVersion = Bundle(for: type(of: self)).infoDictionary?["CFBundleShortVersionString"] as? String else + { + assertionFailure("Unable to get the framework version") + + return request + } + + var request = request + + let frameworkString = "VimeoNetworking/\(frameworkVersion)" + + guard let existingUserAgent = request.value(forHTTPHeaderField: Constants.UserAgentKey) else + { + // DISCUSSION: AFNetworking doesn't set a User Agent for tvOS (look at the init method in AFHTTPRequestSerializer.m). + // So, on tvOS the User Agent will only specify the framework. System information might be something we want to add + // in the future if AFNetworking isn't providing it. [ghking] 6/19/17 + + #if !os(tvOS) + assertionFailure("An existing user agent was not found") + #endif + + request.setValue(frameworkString, forHTTPHeaderField: Constants.UserAgentKey) + + return request + } + + let modifiedUserAgent = existingUserAgent + " " + frameworkString + + request.setValue(modifiedUserAgent, forHTTPHeaderField: Constants.UserAgentKey) + + return request + } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift index bf2ec1ac..629da654 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift @@ -215,7 +215,8 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer "application/vnd.vimeo.programmed.cinema+json", "application/vnd.vimeo.policydocument+json", "application/vnd.vimeo.notification+json", - "application/vnd.vimeo.notification.subscriptions+json"] + "application/vnd.vimeo.notification.subscriptions+json", + "application/vnd.vimeo.product+json"] ) } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift index 7ba09c23..d4503857 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift @@ -38,10 +38,10 @@ public extension VimeoSessionManager - returns: an initialized `VimeoSessionManager` */ - static func defaultSessionManager(baseUrl: URL, accessToken: String) -> VimeoSessionManager + static func defaultSessionManager(baseUrl: URL, accessToken: String, apiVersion: String) -> VimeoSessionManager { let sessionConfiguration = URLSessionConfiguration.defaultSessionConfigurationNoCache() - let requestSerializer = VimeoRequestSerializer(accessTokenProvider: { accessToken }) + let requestSerializer = VimeoRequestSerializer(accessTokenProvider: { accessToken }, apiVersion: apiVersion) return VimeoSessionManager(baseUrl: baseUrl, sessionConfiguration: sessionConfiguration, requestSerializer: requestSerializer) } @@ -54,10 +54,10 @@ public extension VimeoSessionManager - returns: an initialized `VimeoSessionManager` */ - static func defaultSessionManager(baseUrl: URL, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) -> VimeoSessionManager + static func defaultSessionManager(baseUrl: URL, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) -> VimeoSessionManager { let sessionConfiguration = URLSessionConfiguration.defaultSessionConfigurationNoCache() - let requestSerializer = VimeoRequestSerializer(accessTokenProvider: accessTokenProvider) + let requestSerializer = VimeoRequestSerializer(accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) return VimeoSessionManager(baseUrl: baseUrl, sessionConfiguration: sessionConfiguration, requestSerializer: requestSerializer) } @@ -88,10 +88,10 @@ public extension VimeoSessionManager - returns: an initialized `VimeoSessionManager` */ - static func backgroundSessionManager(identifier: String, baseUrl: URL, accessToken: String) -> VimeoSessionManager + static func backgroundSessionManager(identifier: String, baseUrl: URL, accessToken: String, apiVersion: String) -> VimeoSessionManager { let sessionConfiguration = self.backgroundSessionConfiguration(identifier: identifier) - let requestSerializer = VimeoRequestSerializer(accessTokenProvider: { accessToken }) + let requestSerializer = VimeoRequestSerializer(accessTokenProvider: { accessToken }, apiVersion: apiVersion) return VimeoSessionManager(baseUrl: baseUrl, sessionConfiguration: sessionConfiguration, requestSerializer: requestSerializer) } @@ -105,10 +105,10 @@ public extension VimeoSessionManager - returns: an initialized `VimeoSessionManager` */ - static func backgroundSessionManager(identifier: String, baseUrl: URL, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) -> VimeoSessionManager + static func backgroundSessionManager(identifier: String, baseUrl: URL, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) -> VimeoSessionManager { let sessionConfiguration = self.backgroundSessionConfiguration(identifier: identifier) - let requestSerializer = VimeoRequestSerializer(accessTokenProvider: accessTokenProvider) + let requestSerializer = VimeoRequestSerializer(accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) return VimeoSessionManager(baseUrl: baseUrl, sessionConfiguration: sessionConfiguration, requestSerializer: requestSerializer) } diff --git a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift index 08d65d34..32e55439 100644 --- a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift +++ b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift @@ -37,7 +37,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor // MARK: public var url: URL - public var uploadTicket: VIMUploadTicket + public var video: VIMVideo // MARK: VideoDescriptor @@ -48,7 +48,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor public var videoUri: VideoUri? { - return self.uploadTicket.video?.uri + return self.video.uri } public var progressDescriptor: ProgressDescriptor @@ -63,10 +63,10 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor fatalError("init() has not been implemented") } - public init(url: URL, uploadTicket: VIMUploadTicket) + public init(url: URL, video: VIMVideo) { self.url = url - self.uploadTicket = uploadTicket + self.video = video super.init() } @@ -79,7 +79,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor do { - guard let uploadLinkSecure = self.uploadTicket.uploadLinkSecure else + guard let uploadLink = self.video.upload?.uploadLink else { // TODO: delete file here? Same in download? @@ -87,7 +87,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor } let sessionManager = sessionManager as! VimeoSessionManager - let task = try sessionManager.uploadVideoTask(source: self.url, destination: uploadLinkSecure, completionHandler: nil) + let task = try sessionManager.uploadVideoTask(source: self.url, destination: uploadLink, completionHandler: nil) self.currentTaskIdentifier = task.taskIdentifier } @@ -185,8 +185,11 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor let path = URL.uploadDirectory().appendingPathComponent(fileName).appendingPathExtension(fileExtension).absoluteString self.url = URL(fileURLWithPath: path) - self.uploadTicket = aDecoder.decodeObject(forKey: type(of: self).UploadTicketCoderKey) as! VIMUploadTicket - + + // TODO: encode new type, and migrate old. + // self.uploadTicket = aDecoder.decodeObject(forKey: type(of: self).UploadTicketCoderKey) as! VIMUploadTicket + self.video = VIMVideo() + super.init(coder: aDecoder) } @@ -197,7 +200,9 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor aCoder.encode(fileName, forKey: type(of: self).FileNameCoderKey) aCoder.encode(ext, forKey: type(of: self).FileExtensionCoderKey) - aCoder.encode(self.uploadTicket, forKey: type(of: self).UploadTicketCoderKey) + + // TODO: encode new type, and migrate old. + // aCoder.encode(self.uploadTicket, forKey: type(of: self).UploadTicketCoderKey) super.encode(with: aCoder) } diff --git a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoSessionManager+Upload.swift b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoSessionManager+Upload.swift index 00fbdbdd..21071325 100644 --- a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoSessionManager+Upload.swift +++ b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoSessionManager+Upload.swift @@ -29,7 +29,7 @@ import VimeoNetworking extension VimeoSessionManager { - func createVideoDataTask(url: URL, videoSettings: VideoSettings?, completionHandler: @escaping UploadTicketCompletionHandler) throws -> URLSessionDataTask + func createVideoDataTask(url: URL, videoSettings: VideoSettings?, completionHandler: @escaping VideoCompletionHandler) throws -> URLSessionDataTask { let request = try (self.requestSerializer as! VimeoRequestSerializer).createVideoRequest(with: url, videoSettings: videoSettings) @@ -44,8 +44,8 @@ extension VimeoSessionManager do { - let uploadTicket = try (strongSelf.responseSerializer as! VimeoResponseSerializer).process(createVideoResponse: response, responseObject: responseObject as AnyObject?, error: error as NSError?) - completionHandler(uploadTicket, nil) + let video = try (strongSelf.responseSerializer as! VimeoResponseSerializer).process(videoResponse: response, responseObject: responseObject as AnyObject?, error: error as NSError?) + completionHandler(video, nil) } catch let error as NSError { diff --git a/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift index e84caafb..aa910e58 100644 --- a/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift @@ -35,7 +35,7 @@ public class CreateVideoOperation: ConcurrentOperation private var task: URLSessionDataTask? - public var result: VIMUploadTicket? + public var result: VIMVideo? public var error: NSError? // MARK: - Initialization diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift index ef8164ee..e3afde9f 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift @@ -45,7 +45,7 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation private let phAsset: PHAsset open var url: URL? - open var uploadTicket: VIMUploadTicket? + open var video: VIMVideo? open var error: NSError? { didSet @@ -178,7 +178,7 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation else { strongSelf.url = url - strongSelf.uploadTicket = operation.result! + strongSelf.video = operation.result! strongSelf.state = .finished } }) From e25675173251a7c474dcdc6297cf89712153cead Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Thu, 26 Apr 2018 10:47:16 -0400 Subject: [PATCH 046/149] Removed extra space. --- .../New Upload (Private)/VimeoRequestSerializer+Upload.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift index a6cdbebf..80b1baa6 100644 --- a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift +++ b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift @@ -47,7 +47,7 @@ extension VimeoRequestSerializer uploadParameters[Constants.ApproachKey] = Constants.ApproachDefaultValue // Store `uploadParameters` dictionary as the value to "upload" key inside `parameters` dictionary. - var parameters = [Constants.UploadKey : uploadParameters as Any] + var parameters = [Constants.UploadKey: uploadParameters as Any] // Add on pre-upload key-value pair to `parameters` dictionary. parameters[Constants.PreUploadKey] = Constants.PreUploadDefaultValue From b3839f57db89f04c38a7cb7017063d809813d76c Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Thu, 26 Apr 2018 11:19:21 -0400 Subject: [PATCH 047/149] Cleanup - removed unused file and used unwrapped object. --- .../VideoSettingsViewController.swift | 2 +- .../Protocols/UploadInterfacing.swift | 33 ------------------- 2 files changed, 1 insertion(+), 34 deletions(-) delete mode 100644 Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift index fe9a53c7..a130988e 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift @@ -240,7 +240,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate { if let video = self.video, let viewPrivacy = video.privacy?.view, viewPrivacy != VideoSettingsViewController.PreUploadViewPrivacy { - NotificationCenter.default.post(name: Notification.Name(rawValue: type(of: self).UploadInitiatedNotification), object: self.video) + NotificationCenter.default.post(name: Notification.Name(rawValue: type(of: self).UploadInitiatedNotification), object: video) self.dismiss(animated: true, completion: nil) } diff --git a/Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift b/Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift deleted file mode 100644 index ce0376fb..00000000 --- a/Framework/VimeoUpload/VimeoUpload/Protocols/UploadInterfacing.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// UploadInterfacing.swift -// VimeoUpload-iOS -// -// Created by Lehrer, Nicole on 4/25/18. -// Copyright © 2018 Alfie Hanssen. All rights reserved. -// - -/// Describes the properties required to complete an upload -public protocol UploadInterfacing -{ - var viewPrivacy: String? { get } - var videoURI: String? { get } - var uploadLink: String? { get } -} - -extension VIMVideo: UploadInterfacing -{ - public var viewPrivacy: String? - { - return self.privacy?.view - } - - public var videoURI: String? - { - return self.uri - } - - public var uploadLink: String? - { - return self.upload?.uploadLink - } -} From 4b9e3516e82f97f0e9d5bb0f3baf5ad7c92068e0 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Thu, 26 Apr 2018 11:44:15 -0400 Subject: [PATCH 048/149] Handle encodingof video and decoding of archived upload ticket. --- .../UploadDescriptor.swift | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift index 32e55439..a6fd2056 100644 --- a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift +++ b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift @@ -33,11 +33,12 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor private static let FileNameCoderKey = "fileName" private static let FileExtensionCoderKey = "fileExtension" private static let UploadTicketCoderKey = "uploadTicket" + private static let VideoCoderKey = "video" // MARK: public var url: URL - public var video: VIMVideo + public var video: VIMVideo? // MARK: VideoDescriptor @@ -48,7 +49,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor public var videoUri: VideoUri? { - return self.video.uri + return self.video?.uri } public var progressDescriptor: ProgressDescriptor @@ -79,7 +80,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor do { - guard let uploadLink = self.video.upload?.uploadLink else + guard let uploadLink = self.video?.upload?.uploadLink else { // TODO: delete file here? Same in download? @@ -185,11 +186,13 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor let path = URL.uploadDirectory().appendingPathComponent(fileName).appendingPathExtension(fileExtension).absoluteString self.url = URL(fileURLWithPath: path) - - // TODO: encode new type, and migrate old. - // self.uploadTicket = aDecoder.decodeObject(forKey: type(of: self).UploadTicketCoderKey) as! VIMUploadTicket - self.video = VIMVideo() - + + // Support migrating archived uploadTickets to videos for API versions less than v3.4 + if let uploadTicket = aDecoder.decodeObject(forKey: type(of: self).UploadTicketCoderKey) as? VIMUploadTicket + { + self.video = uploadTicket.video + } + super.init(coder: aDecoder) } @@ -200,9 +203,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor aCoder.encode(fileName, forKey: type(of: self).FileNameCoderKey) aCoder.encode(ext, forKey: type(of: self).FileExtensionCoderKey) - - // TODO: encode new type, and migrate old. - // aCoder.encode(self.uploadTicket, forKey: type(of: self).UploadTicketCoderKey) + aCoder.encode(self.video, forKey: type(of: self).VideoCoderKey) super.encode(with: aCoder) } From 85fb387f5366b142e936dddbd8a45e7acccb5182 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Fri, 27 Apr 2018 15:54:32 -0400 Subject: [PATCH 049/149] Migrate older archived objects that were written in objective-c to unarchive in swift. --- .../VimeoUpload-iOS/AppDelegate.swift | 2 ++ .../VimeoUpload.xcodeproj/project.pbxproj | 4 ++++ .../NSKeyedUnarchiver+Migrations.swift | 21 +++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift index 103eab00..f271bda5 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift @@ -34,6 +34,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + NSKeyedUnarchiver.setLegacyClassNameMigrations() + AFNetworkReachabilityManager.shared().startMonitoring() NewVimeoUploader.sharedInstance.applicationDidFinishLaunching() // Ensure init is called on launch diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 48b0ae07..14453e76 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */; }; 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */; }; 3EA4C84D209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */; }; + 3EA4C8582093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C8572093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -85,6 +86,7 @@ 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+ThumbnailUpload.swift"; path = "Cameo/VimeoSessionManager+ThumbnailUpload.swift"; sourceTree = ""; }; 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionOperation.swift; sourceTree = ""; }; 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; + 3EA4C8572093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSKeyedUnarchiver+Migrations.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -262,6 +264,7 @@ isa = PBXGroup; children = ( AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, + 3EA4C8572093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, ); @@ -588,6 +591,7 @@ AF40D5841CCE9DEB00753ABA /* CreateVideoOperation.swift in Sources */, AF40D5831CCE9DEB00753ABA /* VideoOperation.swift in Sources */, AF40D56B1CCE9DEB00753ABA /* VideoDescriptor.swift in Sources */, + 3EA4C8582093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift in Sources */, AF40D58A1CCE9DEB00753ABA /* RetryUploadOperation.swift in Sources */, AF40D5671CCE9DEB00753ABA /* DescriptorManagerTracker.swift in Sources */, AF40D5681CCE9DEB00753ABA /* UploadDescriptor.swift in Sources */, diff --git a/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift b/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift new file mode 100644 index 00000000..c0a6fb56 --- /dev/null +++ b/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift @@ -0,0 +1,21 @@ +// +// NSKeyedUnarchiver+Migrations.swift +// VimeoUpload +// +// Created by Lehrer, Nicole on 4/27/18. +// Copyright © 2018 Vimeo. All rights reserved. +// + +import VimeoNetworking + +extension NSKeyedUnarchiver +{ + @objc public static func setLegacyClassNameMigrations() + { + // In older version of this project, it's possible that `VIMUploadQuota` was archived as an Objective-C object. It will now be unarchived in Swift. + // Swift classes include their module name for archiving and unarchiving, whereas Objective-C classes do not. Thus we need to explictly specify the class name here + // for legacy archived objects. NAL [04/27/2018] + + self.setClass(VIMUploadQuota.self, forClassName: "VIMUploadQuota") + } +} From 3bed6a85ac61cdd4669a11f388a381d43869bd7f Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Fri, 27 Apr 2018 16:33:00 -0400 Subject: [PATCH 050/149] Cleanup. --- .../VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift | 4 ++-- .../VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift | 4 ++-- VimeoUpload/VimeoUploader.swift | 5 ----- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift index 45928aaf..39ca6dd8 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift @@ -29,7 +29,7 @@ import VimeoUpload class OldVimeoUploader: VimeoUploader { - public static var OldUploadDefaultAPIVersion: String + private static var APIVersionString: String { return "3.2" } @@ -42,6 +42,6 @@ class OldVimeoUploader: VimeoUploader init(backgroundSessionIdentifier: String, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) { - super.init(backgroundSessionIdentifier: backgroundSessionIdentifier, accessTokenProvider: accessTokenProvider, apiVersion: OldVimeoUploader.OldUploadDefaultAPIVersion) + super.init(backgroundSessionIdentifier: backgroundSessionIdentifier, accessTokenProvider: accessTokenProvider, apiVersion: OldVimeoUploader.APIVersionString) } } diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift index 5e12652c..b13a51eb 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift @@ -29,7 +29,7 @@ import VimeoUpload class NewVimeoUploader: VimeoUploader { - public static var NewUploadDefaultAPIVersion: String + private static var APIVersionString: String { return "3.4" } @@ -42,6 +42,6 @@ class NewVimeoUploader: VimeoUploader init(backgroundSessionIdentifier: String, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) { - super.init(backgroundSessionIdentifier: backgroundSessionIdentifier, accessTokenProvider: accessTokenProvider, apiVersion: NewVimeoUploader.NewUploadDefaultAPIVersion) + super.init(backgroundSessionIdentifier: backgroundSessionIdentifier, accessTokenProvider: accessTokenProvider, apiVersion: NewVimeoUploader.APIVersionString) } } diff --git a/VimeoUpload/VimeoUploader.swift b/VimeoUpload/VimeoUploader.swift index dcf487d5..78778b5b 100644 --- a/VimeoUpload/VimeoUploader.swift +++ b/VimeoUpload/VimeoUploader.swift @@ -29,11 +29,6 @@ import VimeoNetworking open class VimeoUploader { - public static var DefaultAPIVersion: String - { - return "3.4" - } - public static var Name: String { return "vimeo_upload" // Generic types don't yet support static properties [AH] 3/19/2016 From b745c5b662010e83e054e4ad7ca84a0b8d904a10 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Fri, 27 Apr 2018 16:35:28 -0400 Subject: [PATCH 051/149] Added missing license header. --- .../NSKeyedUnarchiver+Migrations.swift | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift b/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift index c0a6fb56..d38aebc1 100644 --- a/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift +++ b/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift @@ -5,6 +5,24 @@ // Created by Lehrer, Nicole on 4/27/18. // Copyright © 2018 Vimeo. All rights reserved. // +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// import VimeoNetworking From d6b00b5a5b1b4e12b59601770a342ca60ff2512a Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Mon, 30 Apr 2018 10:34:22 -0400 Subject: [PATCH 052/149] Moved extension to client target. Made API internal so it doesn't conflict with other consumers who don't need legacy migration. --- .../VimeoUpload-iOS.xcodeproj/project.pbxproj | 12 ++++++++++++ .../Extensions/NSKeyedUnarchiver+Migrations.swift | 4 ++-- .../VimeoUpload.xcodeproj/project.pbxproj | 4 ---- 3 files changed, 14 insertions(+), 6 deletions(-) rename {VimeoUpload => Examples/VimeoUpload-iOS/VimeoUpload-iOS}/Extensions/NSKeyedUnarchiver+Migrations.swift (95%) diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj b/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj index 14cf2d1d..c6525724 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 3EA4C85A2094FE57009F3D9B /* NSKeyedUnarchiver+Migrations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C8592094FE57009F3D9B /* NSKeyedUnarchiver+Migrations.swift */; }; 5009CCE91E00604200887FC1 /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5009CCE81E00604200887FC1 /* VimeoUpload.framework */; }; 5009CCEA1E00604200887FC1 /* VimeoUpload.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5009CCE81E00604200887FC1 /* VimeoUpload.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 5073D6EB1CAD66C600D08C5F /* DemoCameraRollCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5073D6E61CAD66C600D08C5F /* DemoCameraRollCell.swift */; }; @@ -54,6 +55,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 3EA4C8592094FE57009F3D9B /* NSKeyedUnarchiver+Migrations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSKeyedUnarchiver+Migrations.swift"; sourceTree = ""; }; 47ED4955B1448D82B035D2BF /* Pods_VimeoUpload_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 49DF265822E7E25ECC46C743 /* Pods_VimeoUpload_iOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload_iOSTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5009CCE81E00604200887FC1 /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -115,6 +117,14 @@ name = Frameworks; sourceTree = ""; }; + 3EA4C85B2094FE60009F3D9B /* Extensions */ = { + isa = PBXGroup; + children = ( + 3EA4C8592094FE57009F3D9B /* NSKeyedUnarchiver+Migrations.swift */, + ); + path = Extensions; + sourceTree = ""; + }; 5073D6E41CAD66C600D08C5F /* VimeoUpload+Demos */ = { isa = PBXGroup; children = ( @@ -175,6 +185,7 @@ AFFA3F201C9CE22500C7B6F3 /* LaunchScreen.storyboard */, AFFA3F231C9CE22500C7B6F3 /* Info.plist */, AFFA3F451C9CE34700C7B6F3 /* Bridge.h */, + 3EA4C85B2094FE60009F3D9B /* Extensions */, ); path = "VimeoUpload-iOS"; sourceTree = ""; @@ -427,6 +438,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3EA4C85A2094FE57009F3D9B /* NSKeyedUnarchiver+Migrations.swift in Sources */, AFFA3F521C9CE34700C7B6F3 /* NewVimeoUploader.swift in Sources */, AFFA3F561C9CE34700C7B6F3 /* VideoSettingsViewController.swift in Sources */, 5073D6ED1CAD66C600D08C5F /* BaseCameraRollViewController.swift in Sources */, diff --git a/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Extensions/NSKeyedUnarchiver+Migrations.swift similarity index 95% rename from VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift rename to Examples/VimeoUpload-iOS/VimeoUpload-iOS/Extensions/NSKeyedUnarchiver+Migrations.swift index d38aebc1..8eaa604f 100644 --- a/VimeoUpload/Extensions/NSKeyedUnarchiver+Migrations.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Extensions/NSKeyedUnarchiver+Migrations.swift @@ -26,9 +26,9 @@ import VimeoNetworking -extension NSKeyedUnarchiver +internal extension NSKeyedUnarchiver { - @objc public static func setLegacyClassNameMigrations() + @objc static func setLegacyClassNameMigrations() { // In older version of this project, it's possible that `VIMUploadQuota` was archived as an Objective-C object. It will now be unarchived in Swift. // Swift classes include their module name for archiving and unarchiving, whereas Objective-C classes do not. Thus we need to explictly specify the class name here diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 14453e76..48b0ae07 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -14,7 +14,6 @@ 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */; }; 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */; }; 3EA4C84D209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */; }; - 3EA4C8582093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C8572093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -86,7 +85,6 @@ 3C53EC231D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+ThumbnailUpload.swift"; path = "Cameo/VimeoSessionManager+ThumbnailUpload.swift"; sourceTree = ""; }; 3EA2DAD51DFF3E0F006E2C65 /* ExportSessionOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportSessionOperation.swift; sourceTree = ""; }; 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; - 3EA4C8572093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSKeyedUnarchiver+Migrations.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -264,7 +262,6 @@ isa = PBXGroup; children = ( AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, - 3EA4C8572093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, ); @@ -591,7 +588,6 @@ AF40D5841CCE9DEB00753ABA /* CreateVideoOperation.swift in Sources */, AF40D5831CCE9DEB00753ABA /* VideoOperation.swift in Sources */, AF40D56B1CCE9DEB00753ABA /* VideoDescriptor.swift in Sources */, - 3EA4C8582093B0B4009F3D9B /* NSKeyedUnarchiver+Migrations.swift in Sources */, AF40D58A1CCE9DEB00753ABA /* RetryUploadOperation.swift in Sources */, AF40D5671CCE9DEB00753ABA /* DescriptorManagerTracker.swift in Sources */, AF40D5681CCE9DEB00753ABA /* UploadDescriptor.swift in Sources */, From a39aea783496f932303afdfc0c7f3827f2dfee7e Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Mon, 30 Apr 2018 11:35:06 -0400 Subject: [PATCH 053/149] Updated naming of parameter to reflect the type passed in. --- .../Upload/Operations/Async/CreateVideoOperation.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift index aa910e58..97748256 100644 --- a/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/CreateVideoOperation.swift @@ -65,7 +65,7 @@ public class CreateVideoOperation: ConcurrentOperation do { - self.task = try self.sessionManager.createVideoDataTask(url: url, videoSettings: videoSettings, completionHandler: { [weak self] (uploadTicket, error) -> Void in + self.task = try self.sessionManager.createVideoDataTask(url: url, videoSettings: videoSettings, completionHandler: { [weak self] (video, error) -> Void in guard let strongSelf = self else { @@ -83,9 +83,9 @@ public class CreateVideoOperation: ConcurrentOperation { strongSelf.error = error.error(byAddingDomain: UploadErrorDomain.CreateVideoOperation.rawValue) } - else if let uploadTicket = uploadTicket + else if let video = video { - strongSelf.result = uploadTicket + strongSelf.result = video } else { From e8a0207ccd07ea67a46fecaf4a1ca1d576097a53 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Tue, 1 May 2018 17:53:36 -0400 Subject: [PATCH 054/149] Responded to PR comments - added in comment on latest API version, updated approach key and ran pod install for latest VimeoNetworking changes. --- .../OldVimeoUploader.swift | 3 ++- Podfile.lock | 2 +- Pods/Manifest.lock | 2 +- .../Sources/AuthenticationController.swift | 2 +- .../Sources/Models/VIMUpload.swift | 15 ++++++++++++--- .../VimeoRequestSerializer+SharedUpload.swift | 2 +- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift index 39ca6dd8..f9cf5b7c 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift @@ -29,9 +29,10 @@ import VimeoUpload class OldVimeoUploader: VimeoUploader { + /// Latest supported API version for the `VimeoUpload-iOS-OldUpload` target. private static var APIVersionString: String { - return "3.2" + return "3.3.1" } static let sharedInstance = OldVimeoUploader(backgroundSessionIdentifier: "com.vimeo.upload") { () -> String? in diff --git a/Podfile.lock b/Podfile.lock index 3f3fb348..3b63d48f 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -27,7 +27,7 @@ EXTERNAL SOURCES: CHECKOUT OPTIONS: VimeoNetworking: - :commit: 4fee30541872f6453cf77f024cebc6d11a3fe338 + :commit: d8bbe2a32d649d47f1e80ecec6c86052fa0bb622 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 3f3fb348..3b63d48f 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -27,7 +27,7 @@ EXTERNAL SOURCES: CHECKOUT OPTIONS: VimeoNetworking: - :commit: 4fee30541872f6453cf77f024cebc6d11a3fe338 + :commit: d8bbe2a32d649d47f1e80ecec6c86052fa0bb622 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift index 74de18a2..6df23c58 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift @@ -259,7 +259,7 @@ final public class AuthenticationController */ public func accessToken(token: String, completion: @escaping AuthenticationCompletion) { - let customSessionManager = VimeoSessionManager.defaultSessionManager(baseUrl: self.configuration.baseUrl, accessTokenProvider: {token}, apiVersion: VimeoDefaultAPIVersionString) + let customSessionManager = VimeoSessionManager.defaultSessionManager(baseUrl: self.configuration.baseUrl, accessTokenProvider: {token}, apiVersion: self.configuration.apiVersion) let adhocClient = VimeoClient(appConfiguration: self.configuration, sessionManager: customSessionManager) let request = AuthenticationRequest.verifyAccessTokenRequest() diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift index 152dc83c..3a87fe8b 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUpload.swift @@ -51,7 +51,7 @@ public class VIMUpload: VIMModelObject { case complete case error - case underway = "in_progress" + case inProgress = "in_progress" } /// The approach for uploading the video @@ -70,10 +70,10 @@ public class VIMUpload: VIMModelObject @objc dynamic public private(set) var link: String? /// The URI for completing the upload - @objc dynamic public private(set) var completeUri: String? + @objc dynamic public private(set) var completeURI: String? /// The redirect URL for the upload app - @objc dynamic public private(set) var redirectUrl: String? + @objc dynamic public private(set) var redirectURL: String? /// The link for sending video file data @objc dynamic public private(set) var uploadLink: String? @@ -99,4 +99,13 @@ public class VIMUpload: VIMModelObject self.uploadStatus = UploadStatus(rawValue: statusString) } } + + /// Maps the property name that mirrors the literal JSON response to another property name. + /// Typically used to rename a property to one that follows this project's naming conventions. + /// + /// - Returns: A dictionary where the keys are the JSON response names and the values are the new property names. + public override func getObjectMapping() -> Any + { + return ["complete_uri": "completeURI", "redirect_url": "redirectURL"] + } } diff --git a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift index 18515b1e..f2f503d3 100644 --- a/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift +++ b/VimeoUpload/Upload/Networking/Shared/VimeoRequestSerializer+SharedUpload.swift @@ -34,7 +34,7 @@ extension VimeoRequestSerializer { static let CreateVideoURI = "/me/videos" static let TypeKey = "type" - static let TypeDefaultValue = "streaming" + static let TypeDefaultValue = VIMUpload.UploadApproach.streaming.rawValue static let SizeKey = "size" } From 0533912d69753c1cd1e19f048bcf450f7b1d476b Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 2 May 2018 11:00:54 -0400 Subject: [PATCH 055/149] Updated pod dependency on VimeoNetworking. --- Podfile | 6 +++--- Podfile.lock | 8 ++++---- Pods/Manifest.lock | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Podfile b/Podfile index 6c4ad1e7..e600b725 100644 --- a/Podfile +++ b/Podfile @@ -6,14 +6,14 @@ project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target 'VimeoUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'VIM-6117-deprecate-upload-ticket' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/total-storage' project 'Framework/VimeoUpload/VimeoUpload.xcodeproj' end target :'VimeoUpload-iOS' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'VIM-6117-deprecate-upload-ticket' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/total-storage' project 'Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj' target "VimeoUpload-iOSTests" do @@ -24,7 +24,7 @@ end target :'VimeoUpload-iOS-OldUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'VIM-6117-deprecate-upload-ticket' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/total-storage' project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target "VimeoUpload-iOS-OldUploadTests" do diff --git a/Podfile.lock b/Podfile.lock index 3b63d48f..488b1777 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -18,22 +18,22 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `VIM-6117-deprecate-upload-ticket`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/total-storage`) EXTERNAL SOURCES: VimeoNetworking: - :branch: VIM-6117-deprecate-upload-ticket + :branch: feature/total-storage :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: d8bbe2a32d649d47f1e80ecec6c86052fa0bb622 + :commit: be1b1857db718ac4d56083fd631322821842a534 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 VimeoNetworking: 5d30e46c8561e2e0a7472e93b915ec1a26a6acfd -PODFILE CHECKSUM: 9c23c184f803bf34c9406f0f738866d7033eaa6f +PODFILE CHECKSUM: 9617200be883dda88c56994e7dded4960f4db895 COCOAPODS: 1.2.0 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 3b63d48f..488b1777 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -18,22 +18,22 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `VIM-6117-deprecate-upload-ticket`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/total-storage`) EXTERNAL SOURCES: VimeoNetworking: - :branch: VIM-6117-deprecate-upload-ticket + :branch: feature/total-storage :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: d8bbe2a32d649d47f1e80ecec6c86052fa0bb622 + :commit: be1b1857db718ac4d56083fd631322821842a534 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 VimeoNetworking: 5d30e46c8561e2e0a7472e93b915ec1a26a6acfd -PODFILE CHECKSUM: 9c23c184f803bf34c9406f0f738866d7033eaa6f +PODFILE CHECKSUM: 9617200be883dda88c56994e7dded4960f4db895 COCOAPODS: 1.2.0 From 19200348394f95968becad937581241e19aa1d64 Mon Sep 17 00:00:00 2001 From: Jennifer Lim Date: Thu, 3 May 2018 15:34:24 -0400 Subject: [PATCH 056/149] Point VimeoNetworking to develop. --- Podfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Podfile b/Podfile index e600b725..edefcd46 100644 --- a/Podfile +++ b/Podfile @@ -6,14 +6,14 @@ project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target 'VimeoUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/total-storage' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' project 'Framework/VimeoUpload/VimeoUpload.xcodeproj' end target :'VimeoUpload-iOS' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/total-storage' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' project 'Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj' target "VimeoUpload-iOSTests" do @@ -24,7 +24,7 @@ end target :'VimeoUpload-iOS-OldUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/total-storage' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target "VimeoUpload-iOS-OldUploadTests" do From b0334dd9665c5d91a1bdd066ec590aadf8d55f34 Mon Sep 17 00:00:00 2001 From: Jennifer Lim Date: Thu, 3 May 2018 15:36:29 -0400 Subject: [PATCH 057/149] Run pod install --- Podfile.lock | 12 +- .../VimeoNetworking.podspec.json | 9 +- Pods/Manifest.lock | 12 +- Pods/Pods.xcodeproj/project.pbxproj | 773 +++++++++--------- .../VimeoNetworking/Info.plist | 2 +- .../Sources/AccountStore.swift | 2 +- .../Sources/AppConfiguration.swift | 43 +- .../Sources/ExceptionCatcher+Swift.swift | 4 +- .../Sources/KeychainStore.swift | 4 +- .../Sources/Models/Spatial.swift | 6 +- .../Sources/Models/Subscription.swift | 6 +- .../Sources/Models/VIMBadge.swift | 10 +- .../Sources/Models/VIMLive.swift | 20 +- .../Sources/Models/VIMLiveChat.swift | 8 +- .../Sources/Models/VIMLiveChatUser.swift | 21 +- .../Sources/Models/VIMPeriodic.swift | 20 + .../Sources/Models/VIMProgrammedContent.swift | 10 +- .../Sources/Models/VIMSizeQuota.swift | 20 + .../Sources/Models/VIMSpace.swift | 20 + .../Sources/Models/VIMUploadQuota.swift | 20 + .../Sources/NSError+Extensions.swift | 18 +- .../Sources/NetworkingNotification.swift | 2 +- .../Sources/Request+Notifications.swift | 2 +- .../Sources/ResponseCache.swift | 2 +- .../VimeoNetworking/Sources/VimeoClient.swift | 14 +- .../Sources/VimeoRequestSerializer.swift | 2 +- .../Sources/VimeoResponseSerializer.swift | 14 +- 27 files changed, 561 insertions(+), 515 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index 488b1777..ab5adfd7 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -14,26 +14,26 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (3.0.1): + - VimeoNetworking (3.1.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/total-storage`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) EXTERNAL SOURCES: VimeoNetworking: - :branch: feature/total-storage + :branch: develop :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: be1b1857db718ac4d56083fd631322821842a534 + :commit: e96d42c69784ee9d45e1c3f70e0b9e5e0f22a28f :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 5d30e46c8561e2e0a7472e93b915ec1a26a6acfd + VimeoNetworking: 64fe0a9f12d106c2fe1c54f4114b25a80931bf37 -PODFILE CHECKSUM: 9617200be883dda88c56994e7dded4960f4db895 +PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 COCOAPODS: 1.2.0 diff --git a/Pods/Local Podspecs/VimeoNetworking.podspec.json b/Pods/Local Podspecs/VimeoNetworking.podspec.json index e23ad152..c44c916a 100644 --- a/Pods/Local Podspecs/VimeoNetworking.podspec.json +++ b/Pods/Local Podspecs/VimeoNetworking.podspec.json @@ -1,6 +1,6 @@ { "name": "VimeoNetworking", - "version": "3.0.1", + "version": "3.1.0", "summary": "A library for interacting with the Vimeo API.", "description": "An iOS/tvOS library for interacting with the Vimeo API.", "homepage": "https://github.com/vimeo/VimeoNetworking", @@ -9,13 +9,12 @@ "file": "LICENSE" }, "authors": { - "Alfie Hanssen": "alfiehanssen@gmail.com", - "Rob Huebner": "robh@vimeo.com", "Gavin King": "gavin@vimeo.com", "Nicole Lehrer": "nicole@vimeo.com", "Mike Westendorf": "mikew@vimeo.com", "Jason Hawkins": "jasonh@vimeo.com", - "Jennifer Lim": "jennifer@vimeo.com" + "Jennifer Lim": "jennifer@vimeo.com", + "Van Nguyen": "van@vimeo.com" }, "social_media_url": "http://twitter.com/vimeo", "platforms": { @@ -25,7 +24,7 @@ "requires_arc": true, "source": { "git": "https://github.com/vimeo/VimeoNetworking.git", - "tag": "3.0.1" + "tag": "3.1.0" }, "source_files": "VimeoNetworking/Sources/**/*.{h,m,swift}", "resources": "VimeoNetworking/Resources/**/*.*", diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 488b1777..ab5adfd7 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -14,26 +14,26 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (3.0.1): + - VimeoNetworking (3.1.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/total-storage`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) EXTERNAL SOURCES: VimeoNetworking: - :branch: feature/total-storage + :branch: develop :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: be1b1857db718ac4d56083fd631322821842a534 + :commit: e96d42c69784ee9d45e1c3f70e0b9e5e0f22a28f :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 5d30e46c8561e2e0a7472e93b915ec1a26a6acfd + VimeoNetworking: 64fe0a9f12d106c2fe1c54f4114b25a80931bf37 -PODFILE CHECKSUM: 9617200be883dda88c56994e7dded4960f4db895 +PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 COCOAPODS: 1.2.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 2f9cd2f0..fc6c4cf8 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -12,7 +12,7 @@ 0122CB804FBC8DBEDE9E3F1C5DE370E7 /* NSURLSessionConfiguration+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8614CB362CB4E3C9E03FCDFF2B3727C /* NSURLSessionConfiguration+Extensions.swift */; }; 01BFDB7E7E77498861406FE7F563EC2F /* Request+Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D02A2893866B878CFEE338D26DC5313 /* Request+Video.swift */; }; 01C097A72389242F9B53E8A8B21AD7E8 /* VIMPictureCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = AB1A7C0E9CF186DC326357962BEC7AF5 /* VIMPictureCollection.m */; }; - 032716918FA2B8150F25BEA44FC1E35F /* Pods-VimeoUpload-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 032716918FA2B8150F25BEA44FC1E35F /* Pods-VimeoUpload-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 080981D0829053FB0D91C3AC721C22E6 /* VIMUploadQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */; }; 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 34C6DA693B07265C4DCBAE97EE2D5594 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; 110895699164F5489FEA1B5862189EF1 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2306B631FE1354BD0E5B81E1EB94D032 /* AppConfiguration.swift */; }; @@ -26,12 +26,12 @@ 1A19B0C55294E4016F6F29DF11B37286 /* VIMRecommendation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0338339E81D84468FC3FEC3B4E0B751B /* VIMRecommendation.m */; }; 1B098FF61D835DC05E4818A260B6954F /* digicert-sha2.cer in Resources */ = {isa = PBXBuildFile; fileRef = 7AC12ADD13D05812352645C5BAEFD99D /* digicert-sha2.cer */; }; 1C762B3B85A259872E5A315B3C9FEC2F /* VIMVideo+VOD.m in Sources */ = {isa = PBXBuildFile; fileRef = 594B408BD401FB948979F4BDA15CC9EA /* VIMVideo+VOD.m */; }; - 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F014323346C8E3E2BEC80F2E5786B9C9 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DB8FD8229ED4AD2B0CBBBDDC20F09BAA /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1E555F7B50932D19657F6BACF6482891 /* VIMVideoPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AE31BCA21D12620C2D9B0F9386A7EA /* VIMVideoPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1E8B612557640DDAACEB2240D859E51B /* Request+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2712EE1D549F6E58A7BB81334B608446 /* Request+Cache.swift */; }; 1F0BE13B306FC15641F3B48939AD0389 /* VIMTrigger.m in Sources */ = {isa = PBXBuildFile; fileRef = 770CD4C87AE1AA8397D0F6E251DCC540 /* VIMTrigger.m */; }; 21F296CA85D7E8EDCE29C153376A8E20 /* VIMUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7478AE1D1B107593F1494EC8E78E8B8 /* VIMUpload.swift */; }; - 25178C93155A9DC0484E1F299E2F7CB7 /* VimeoNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9916C267E80CB2567193FDE98D596CCC /* VimeoNetworking-dummy.m */; }; + 25178C93155A9DC0484E1F299E2F7CB7 /* VimeoNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EFA92C2421798DB0FF8C3149FE8ACA /* VimeoNetworking-dummy.m */; }; 25A450E1078CE9EB3462CF2D94651C0D /* VIMVideoDRMFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 6009E10F0E97820B85D42C5B1B5EADFB /* VIMVideoDRMFiles.m */; }; 2697B3FCADF5B44B1B19381D7B54F194 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40F99392B8A59926F90CF0019AC7D57D /* Result.swift */; }; 26F8805B8DFCDA44EC786A09D93900DA /* VIMPeriodic.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFF010DC16DF0D1F72CC6D06650AFAB1 /* VIMPeriodic.swift */; }; @@ -47,14 +47,14 @@ 327BE3456189E37F229074A8E0E59D67 /* Request+ProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE40B3ABF25113AD8DB2293E39C0B740 /* Request+ProgrammedContent.swift */; }; 34ACDFAC012CB5AE7996D0B1157ED336 /* VIMCredit.h in Headers */ = {isa = PBXBuildFile; fileRef = B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */; settings = {ATTRIBUTES = (Public, ); }; }; 34C88657FE7ABE9F833623F94952D253 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A764F24CBBAA6CD584EE0CBFB5F80D40 /* UIProgressView+AFNetworking.m */; }; - 350E7D287CD9C8932489485A5BFD6F87 /* Pods-VimeoUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 350E7D287CD9C8932489485A5BFD6F87 /* Pods-VimeoUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23203AB46E0B1066374BDDE11472401B /* Pods-VimeoUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 35CBB7B255FD8D412AFCECBC4311A847 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 4148FF8C4708BAD38593A015777E7E41 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */; }; + 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */; }; 3B01A1344CDDAD474BAB3A4972534FF4 /* VIMVODItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */; }; 3C178E120BAF6B59E24F466C8FF23D6B /* VIMNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3E5288CBF6B2BE080B33EB12E809F2B4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 3E9017BD1F6A95F49D9534FED7AEE8E0 /* VimeoSessionManager+Constructors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */; }; - 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; + 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; 42002EAFB3E488172644B9CCEEBBDD5E /* VIMVideoFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C8E3687C68FDA0D536295AA785351E89 /* VIMVideoFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 42AF1BB1ED090CC9E588A463441D09E3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */; }; 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A23F6E3249A977997C8255519997C806 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -63,10 +63,10 @@ 45F802D04B3BE0CAEC586C2F3016027B /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = AC1504799A29B9D2BC4470E3E39BCA33 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; 466C821E26B82F57C0936DE3A6F16554 /* VIMVideoPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B18CFCBFD591833D9E6A8BE1F1172C /* VIMVideoPreference.m */; }; 46DE5BBE30FCA924541AC026D793A3D7 /* VIMVideoDASHFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FD22B103D648342069FE779359C9A56 /* VIMVideoDASHFile.m */; }; - 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DE0E38A99298F3EF954325E154AA215 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 49256D3D8A3D5ECF3865BD63A889E783 /* VIMLiveStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A751CF37C60078D4E14FD77EABB59EA /* VIMLiveStreams.swift */; }; - 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4D3532EDF43F7631961FBCE2118906D1 /* VIMPolicyDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = AE97ADD7133B74F569CDBAA703BCFD65 /* VIMPolicyDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4D78E4A293A03E543CB947C6E2B5BFC7 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EC2A207160C6ABAABFFB2C7CEF0193 /* Constants.swift */; }; 4FA2FC796ACCCC463EEE77542BE8D142 /* VIMUser.h in Headers */ = {isa = PBXBuildFile; fileRef = EB3CB90C71820EE74C9F0D2DA4A7B44F /* VIMUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -88,7 +88,7 @@ 6573AF9ABA59AC8D1F52B07088197F71 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C8E8C116C75D16F52EA1D3242FF59D /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; 660EE8ED9CED19C9E8FD510F864F2953 /* Request+PolicyDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B8B622C89D248F892F70436F3C4927 /* Request+PolicyDocument.swift */; }; 67DC334CA1B22722C3A2E2C20EBF74A4 /* VimeoNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = E8EE2BF5E54CD69A9A8E68E9AA8D06F4 /* VimeoNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */; }; + 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 977CC708C885349F45A1FFAA4DB28215 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */; }; 68E37408801BDFE64FE284EB926C84D3 /* VIMConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 144AE47771CA26D2CE6BBA49A5088D4C /* VIMConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; 69D4E81727D4C0E26D58BB5A47263C6A /* ErrorCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8A79531959161891C56EDD3B8236F9 /* ErrorCode.swift */; }; 6A0B3B27B44D1B549931CA04D05FDA5F /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198A0FC4821182C1441C3278B81533C1 /* Dictionary+Extension.swift */; }; @@ -110,7 +110,7 @@ 7E9D810438EAF1EC8C73357A66E2F745 /* VIMConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = EC67B7AD7961570B52C42FF75E469EF7 /* VIMConnection.m */; }; 7EB9BEBED79E8411B9797F9B7E41B2C3 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A642117F7C53CF7A21E344EBF7E7936 /* Request.swift */; }; 7F701AD6C1E16AC30D5A089603B3F29A /* VIMGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 6497695CF3E669E163206BB20DBAFE53 /* VIMGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 81D0F571B178C2F82F146F1F5E50C097 /* VIMObjectMapper+Generic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55D5445B186DDBBEC7D7A9B467FC2E6A /* VIMObjectMapper+Generic.swift */; }; 828EB50094BB958BEE3B094F96465E3E /* VIMGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = C867648C482317091BC988216AE7BCEF /* VIMGroup.m */; }; 82D554EC9FB9A62D935B6555325F5898 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C29192B1F683D403AFFD632D65221D49 /* Security.framework */; }; @@ -166,13 +166,13 @@ C50D0C30AF8712AFFA42B7F9C4AC2C7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; C740EA611A1A0708069379C21CC91D22 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E356F5BC3EF410C1A8E290BF70EE42EC /* KeychainStore.swift */; }; C7D618E6E16BAB6EE81D7A943430A155 /* VIMUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 404EBED1541B755FB84CEB0B6BF5B214 /* VIMUploadTicket.m */; }; - C9FBFA4214F4CE291C59D52DFA886C02 /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ADD83665EF069AC4808284045A05F4BF /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9FBFA4214F4CE291C59D52DFA886C02 /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D53BEEBF70CF78A7381D5E381FE19629 /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; CBB0A1DE5A92E8A8AA8EDF47F90D4704 /* VIMActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D47993D1669EDACAE23DDA31EE1D750 /* VIMActivity.m */; }; CBD0A5C342505975B14B0722C0A40644 /* VIMVideoProgressiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C1BE847651368C4C25045E57EB0E3F /* VIMVideoProgressiveFile.m */; }; CC9E35985FC0082D929D45BA28334A1C /* VIMVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 67E8730E582CED91AFE4FA07B317CF43 /* VIMVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE4DA92A43826C17668392D0C859A80A /* AFSecurityPolicy.m */; }; - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */; }; - CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 76326C8C4F0A2A5409134F265A781ACD /* AFNetworking-dummy.m */; }; + CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */; }; + CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 620D09827DEDF296949C919BB5E207C4 /* AFNetworking-dummy.m */; }; D109CF550CC4B4207ABD5A8BDA5D7FB2 /* VIMSpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 199439094EAB2A988BAED89C1771A848 /* VIMSpace.swift */; }; D1CC6C140311BDF560402C7B261EC749 /* VIMVideoPlayRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 58047C8CC5F49283333E246CA9F56BFA /* VIMVideoPlayRepresentation.m */; }; D452173C5942C7EF4BADA8F49E73EEBB /* VIMObjectMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CEE095D5D41BE01E7A438719525079D /* VIMObjectMapper.m */; }; @@ -182,7 +182,7 @@ D814EAEF15E35911C154C9706ACAFAB2 /* VIMAppeal.h in Headers */ = {isa = PBXBuildFile; fileRef = 71DED1DC4C3953219DB409A92F0E546F /* VIMAppeal.h */; settings = {ATTRIBUTES = (Public, ); }; }; D86979E7D5F083AE83F26A54375E0BE6 /* VIMTrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = 434D92DDD616ED26F2A45C6EAB3DF3C2 /* VIMTrigger.h */; settings = {ATTRIBUTES = (Public, ); }; }; D8876D8D889C6B0E96CF2AFD3CDB8B97 /* VimeoSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B89681226395449BB402C81A1ED264E /* VimeoSessionManager.swift */; }; - DC395092187FBC815E499B755553E751 /* Pods-VimeoUpload-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */; }; + DC395092187FBC815E499B755553E751 /* Pods-VimeoUpload-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */; }; DCE8E24B5551BD3ED1FD7ABD56C10386 /* VIMVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF8D5A5B94427B5A26BF7A110935D1D /* VIMVideo.m */; }; DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EC36289436BC8F92161297A7A6BB279 /* AFNetworkReachabilityManager.m */; }; DE18C4BDBECD0E69D0696F8BD2DCD577 /* VIMChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */; }; @@ -275,65 +275,68 @@ 02AA0046E026ED16E0F011492A681913 /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; 0338339E81D84468FC3FEC3B4E0B751B /* VIMRecommendation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMRecommendation.m; path = VimeoNetworking/Sources/Models/VIMRecommendation.m; sourceTree = ""; }; 038F1D2C4FFAF96EF3F4CC8CCA5E1C7D /* VIMUserBadge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUserBadge.m; path = VimeoNetworking/Sources/Models/VIMUserBadge.m; sourceTree = ""; }; + 03BD44E17BF4F0A8D5B2F4DAD5ABB72C /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh"; sourceTree = ""; }; 03C2FA5B57F57E6E4C867E75DC638115 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; + 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUploadTests-dummy.m"; sourceTree = ""; }; 0910EEA1873F3C909758C2298877AA7E /* Request+Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Category.swift"; path = "VimeoNetworking/Sources/Request+Category.swift"; sourceTree = ""; }; 0A751CF37C60078D4E14FD77EABB59EA /* VIMLiveStreams.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveStreams.swift; path = VimeoNetworking/Sources/Models/VIMLiveStreams.swift; sourceTree = ""; }; 0B7817AC6B424B77B067539E39EDA9AB /* VIMUserBadge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUserBadge.h; path = VimeoNetworking/Sources/Models/VIMUserBadge.h; sourceTree = ""; }; + 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.release.xcconfig"; sourceTree = ""; }; 0C8A79531959161891C56EDD3B8236F9 /* ErrorCode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorCode.swift; path = VimeoNetworking/Sources/ErrorCode.swift; sourceTree = ""; }; 0CA19508165DFEEB376273E8D4214F59 /* VIMVideoPlayRepresentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayRepresentation.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.h; sourceTree = ""; }; - 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-umbrella.h"; sourceTree = ""; }; 10C6713230A87A25B5761E5A3CFC15DD /* VIMPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPreference.h; path = VimeoNetworking/Sources/Models/VIMPreference.h; sourceTree = ""; }; + 1263405891BAC778C715376CF6CAF9B2 /* Pods-VimeoUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload.modulemap"; sourceTree = ""; }; + 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.debug.xcconfig"; sourceTree = ""; }; 144AE47771CA26D2CE6BBA49A5088D4C /* VIMConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMConnection.h; path = VimeoNetworking/Sources/Models/VIMConnection.h; sourceTree = ""; }; 14F2E19F2D2D74E49166614264DA1D27 /* VIMSeason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSeason.m; path = VimeoNetworking/Sources/Models/VIMSeason.m; sourceTree = ""; }; 157C7EA514B07C841D376B315F5F1636 /* VIMPicture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPicture.m; path = VimeoNetworking/Sources/Models/VIMPicture.m; sourceTree = ""; }; + 164D73327C635745B3323BF6ED3ECD65 /* Pods-VimeoUpload-iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-acknowledgements.markdown"; sourceTree = ""; }; 18C1BE847651368C4C25045E57EB0E3F /* VIMVideoProgressiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoProgressiveFile.m; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.m; sourceTree = ""; }; 198A0FC4821182C1441C3278B81533C1 /* Dictionary+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Dictionary+Extension.swift"; path = "VimeoNetworking/Sources/Dictionary+Extension.swift"; sourceTree = ""; }; 199439094EAB2A988BAED89C1771A848 /* VIMSpace.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMSpace.swift; path = VimeoNetworking/Sources/Models/VIMSpace.swift; sourceTree = ""; }; 19E82E7A6452665F31AB0160C36C0040 /* PlayProgress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlayProgress.swift; path = VimeoNetworking/Sources/Models/PlayProgress.swift; sourceTree = ""; }; 1A455D143B6438B58518F3865A903EE1 /* VIMObjectMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMObjectMapper.h; path = VimeoNetworking/Sources/Models/VIMObjectMapper.h; sourceTree = ""; }; + 1A639A5202E49FF07C8F7669E03A1399 /* VimeoNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = VimeoNetworking.modulemap; sourceTree = ""; }; 1A986CC4EDA505946FE3258B89387779 /* Request+Toggle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Toggle.swift"; path = "VimeoNetworking/Sources/Request+Toggle.swift"; sourceTree = ""; }; 1AB2176333C0C42F40BD13E4DDE0640A /* SubscriptionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionCollection.swift; path = VimeoNetworking/Sources/Models/SubscriptionCollection.swift; sourceTree = ""; }; 1B89681226395449BB402C81A1ED264E /* VimeoSessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoSessionManager.swift; path = VimeoNetworking/Sources/VimeoSessionManager.swift; sourceTree = ""; }; 1BF8714B341C956CC960D5F6F5FD061B /* VIMComment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMComment.h; path = VimeoNetworking/Sources/Models/VIMComment.h; sourceTree = ""; }; - 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-umbrella.h"; sourceTree = ""; }; + 1C5628750E74ECB23E63B36AEF2A8E62 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-frameworks.sh"; sourceTree = ""; }; 1C6422F81EA10F0A3062FC248BE9659A /* Pods_VimeoUpload_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS.framework; path = "Pods-VimeoUpload-iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 1DB8B03BA0C91F983BEBB7D468AA4F10 /* VIMQuantityQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMQuantityQuota.m; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.m; sourceTree = ""; }; - 1E2C31E1C5219A492BA51ECF975649C4 /* Pods-VimeoUpload-iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-acknowledgements.plist"; sourceTree = ""; }; 1EE9E0E05929DC3AFDF6276C52E5988C /* ExceptionCatcher+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ExceptionCatcher+Swift.swift"; path = "VimeoNetworking/Sources/ExceptionCatcher+Swift.swift"; sourceTree = ""; }; - 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-dummy.m"; sourceTree = ""; }; + 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOSTests-dummy.m"; sourceTree = ""; }; + 2140E97C9A902AF978123E899B2EC965 /* Pods-VimeoUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-resources.sh"; sourceTree = ""; }; 221D6F45BA640AE1C73F34B0D416ADA7 /* VIMProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMProgrammedContent.swift; path = VimeoNetworking/Sources/Models/VIMProgrammedContent.swift; sourceTree = ""; }; 2306B631FE1354BD0E5B81E1EB94D032 /* AppConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppConfiguration.swift; path = VimeoNetworking/Sources/AppConfiguration.swift; sourceTree = ""; }; + 23203AB46E0B1066374BDDE11472401B /* Pods-VimeoUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-umbrella.h"; sourceTree = ""; }; 24231BD46B3810C7B980D8C357456050 /* VIMCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCategory.h; path = VimeoNetworking/Sources/Models/VIMCategory.h; sourceTree = ""; }; 242A72850AA33ABD4DCB90C46D7EBBF7 /* VIMQuantityQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMQuantityQuota.h; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.h; sourceTree = ""; }; 245BD1E8B3E5BE71C829B996E257207C /* VIMSeason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSeason.h; path = VimeoNetworking/Sources/Models/VIMSeason.h; sourceTree = ""; }; 2712EE1D549F6E58A7BB81334B608446 /* Request+Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Cache.swift"; path = "VimeoNetworking/Sources/Request+Cache.swift"; sourceTree = ""; }; - 2823D0E27387DEDA4CD0C3CFBCC0B44F /* Pods-VimeoUpload-iOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-frameworks.sh"; sourceTree = ""; }; 295021DB4F5EBF6BD2E1C60703E3E2D9 /* VIMRecommendation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMRecommendation.h; path = VimeoNetworking/Sources/Models/VIMRecommendation.h; sourceTree = ""; }; 29EC2A207160C6ABAABFFB2C7CEF0193 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = VimeoNetworking/Sources/Constants.swift; sourceTree = ""; }; - 2A3F72A38ECAA6689938E0DD34F3126A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 2A556F76898649B5A28BDB5446ED8308 /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig"; sourceTree = ""; }; 2A642117F7C53CF7A21E344EBF7E7936 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = VimeoNetworking/Sources/Request.swift; sourceTree = ""; }; 2B791FB955CB509E19E5ECC15E7EA5C5 /* VIMVideoHLSFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoHLSFile.m; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.m; sourceTree = ""; }; - 2BF35D801896FA2A238107E3F9288174 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-frameworks.sh"; sourceTree = ""; }; 2C5686958BB43876F21E70E9627CFA06 /* VIMSoundtrack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSoundtrack.h; path = VimeoNetworking/Sources/Models/VIMSoundtrack.h; sourceTree = ""; }; 2CF57E9BE891732B80AD558CB436D205 /* Pods_VimeoUpload_iOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOSTests.framework; path = "Pods-VimeoUpload-iOSTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D8CA2B775AA3E87695D6EE18C37FFA4 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; 2E0B01CEC75D6CABBC311CA2D4DCE1D9 /* VIMVideoFairPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFairPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.m; sourceTree = ""; }; - 2EC7C61DABF8951A8EA0284CE90D8C35 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig"; sourceTree = ""; }; - 2F3866AD6DB44ABC273BA0B914652B6F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 300CFD20A787C853925F7BAE4CBFAA57 /* Request+Picture.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Picture.swift"; path = "VimeoNetworking/Sources/Request+Picture.swift"; sourceTree = ""; }; - 30232B7C92B3EA202FD3EBDCE7FCA62E /* Pods-VimeoUpload-iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-acknowledgements.markdown"; sourceTree = ""; }; 31D638862512159911B72BCEA7447DC2 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; - 3210E8330EE38198AC23E6AE501C828F /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-resources.sh"; sourceTree = ""; }; 34C6DA693B07265C4DCBAE97EE2D5594 /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; + 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUpload-umbrella.h"; sourceTree = ""; }; + 39E99DADEC276F0039A9BB6590160B92 /* Pods-VimeoUpload-iOSTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-frameworks.sh"; sourceTree = ""; }; + 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.release.xcconfig"; sourceTree = ""; }; 3B507D130FFEBCD98C817BB196466C70 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; 3BB9383C2F5F90FE89247B5400744EEE /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; + 3BF90FFD87F716998B15371C1C15106E /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist"; sourceTree = ""; }; 3C2D82462A8952625139EFE730A1D996 /* Request+User.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+User.swift"; path = "VimeoNetworking/Sources/Request+User.swift"; sourceTree = ""; }; 3CEE095D5D41BE01E7A438719525079D /* VIMObjectMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMObjectMapper.m; path = VimeoNetworking/Sources/Models/VIMObjectMapper.m; sourceTree = ""; }; 3DC534095BB14D1CFB95B341D8F3BA47 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; - 3DF748E9534F1105869E8635FABD2DB5 /* Pods-VimeoUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-acknowledgements.markdown"; sourceTree = ""; }; + 3FBFC292EA4C54BD77E35F6BA2F575DA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 3FCEA14CC7DF08D617ED59064F004953 /* VIMVideoPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.m; sourceTree = ""; }; 404EBED1541B755FB84CEB0B6BF5B214 /* VIMUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMUploadTicket.m; sourceTree = ""; }; + 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-dummy.m"; sourceTree = ""; }; 40F99392B8A59926F90CF0019AC7D57D /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = VimeoNetworking/Sources/Result.swift; sourceTree = ""; }; 4148FF8C4708BAD38593A015777E7E41 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; 434D92DDD616ED26F2A45C6EAB3DF3C2 /* VIMTrigger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTrigger.h; path = VimeoNetworking/Sources/Models/VIMTrigger.h; sourceTree = ""; }; @@ -341,131 +344,127 @@ 45A744737CCC3FB2DDD29A8A01B7569A /* VIMNotificationsConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotificationsConnection.h; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.h; sourceTree = ""; }; 4649337C65FD272A0B75F156507DBF18 /* AuthenticationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationController.swift; path = VimeoNetworking/Sources/AuthenticationController.swift; sourceTree = ""; }; 4791D611DF81AF66DC55313D98C6202C /* VIMVideoProgressiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoProgressiveFile.h; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.h; sourceTree = ""; }; - 48A729E1418F915B16FCDBA79BF2E2EF /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = AFNetworking.modulemap; sourceTree = ""; }; + 48142BEFC1B53A12595D6F05AE02468E /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-resources.sh"; sourceTree = ""; }; 48ADFB75E39D89D3FC25BA8311A8A3F8 /* VIMPrivacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPrivacy.m; path = VimeoNetworking/Sources/Models/VIMPrivacy.m; sourceTree = ""; }; - 49926875B9F5E4B438C6D0FDAEE093A2 /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-resources.sh"; sourceTree = ""; }; + 4D332695D30979CBB112477B9E1D04E4 /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-resources.sh"; sourceTree = ""; }; 4DB684C35D18CE0200411F5A0B79CFCD /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; - 4FD417247D6F2F5D88E1083E3FB8227F /* Pods-VimeoUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-acknowledgements.plist"; sourceTree = ""; }; 50CF7C4EB12469B6AD2059AF45FA8ECB /* VIMVideoUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoUtils.m; path = VimeoNetworking/Sources/Models/VIMVideoUtils.m; sourceTree = ""; }; - 533C56098EE9CDC9C94F3635F25A9F98 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.release.xcconfig"; sourceTree = ""; }; + 529DFA1EB388CF7DC8121A4EBCFF59B4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig"; sourceTree = ""; }; 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 55D5445B186DDBBEC7D7A9B467FC2E6A /* VIMObjectMapper+Generic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VIMObjectMapper+Generic.swift"; path = "VimeoNetworking/Sources/VIMObjectMapper+Generic.swift"; sourceTree = ""; }; 574D37AFD6B63C7C543B8DDCC8BBCDCD /* Scope.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scope.swift; path = VimeoNetworking/Sources/Scope.swift; sourceTree = ""; }; 57B784EA87250DC92F76F6BF0638D4D2 /* VIMReviewPage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMReviewPage.swift; path = VimeoNetworking/Sources/Models/VIMReviewPage.swift; sourceTree = ""; }; 58047C8CC5F49283333E246CA9F56BFA /* VIMVideoPlayRepresentation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayRepresentation.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.m; sourceTree = ""; }; 58588D4FE9CAD101CBA9E66CF55B111F /* VIMAppeal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAppeal.m; path = VimeoNetworking/Sources/Models/VIMAppeal.m; sourceTree = ""; }; - 590A00F4B0511AE74E5A1DE651C5634A /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; 592399628685EEA2CBCEAA22472FB309 /* Request+Authentication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Authentication.swift"; path = "VimeoNetworking/Sources/Request+Authentication.swift"; sourceTree = ""; }; 594B408BD401FB948979F4BDA15CC9EA /* VIMVideo+VOD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VIMVideo+VOD.m"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.m"; sourceTree = ""; }; - 59ACC3119383FFF4846D1E7814D14DFB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5A3A4AC7EEAC2A5D6B93D6AA8DA6DEE8 /* Request+Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Notifications.swift"; path = "VimeoNetworking/Sources/Request+Notifications.swift"; sourceTree = ""; }; 5C4B2D0192E9B889AE401D325E73A05B /* VIMComment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMComment.m; path = VimeoNetworking/Sources/Models/VIMComment.m; sourceTree = ""; }; - 5CCA2741496873A942541EFBB5531983 /* Pods-VimeoUpload-iOSTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-resources.sh"; sourceTree = ""; }; 5D59C2A0B1AC7D635763EE682582F1C1 /* VIMVideoDRMFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDRMFiles.h; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.h; sourceTree = ""; }; 5E4FA6AA687FAD3C73FA4D5F778B6994 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; 5FC7D02188E2C34BE891C0A1C34CE10A /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; 6009E10F0E97820B85D42C5B1B5EADFB /* VIMVideoDRMFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDRMFiles.m; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.m; sourceTree = ""; }; + 61BBAE14F6D05F87DD0A7A0F550824DD /* Pods-VimeoUpload-iOSTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-resources.sh"; sourceTree = ""; }; + 620D09827DEDF296949C919BB5E207C4 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; 633F03E86937C4E4A5EB10440B86406E /* VIMTag.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTag.m; path = VimeoNetworking/Sources/Models/VIMTag.m; sourceTree = ""; }; 6497695CF3E669E163206BB20DBAFE53 /* VIMGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMGroup.h; path = VimeoNetworking/Sources/Models/VIMGroup.h; sourceTree = ""; }; 64F81D9AB162FD3AFF5E21392C105385 /* VIMVideo+VOD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "VIMVideo+VOD.h"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.h"; sourceTree = ""; }; + 65544531C57D7687204CF1A58500C6BB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 66DF12E58DBB07F4E0A32A90407E7F10 /* VIMVideoPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPreference.h; path = VimeoNetworking/Sources/Models/VIMVideoPreference.h; sourceTree = ""; }; 67584EC80399FD96630D745DA4D1A98F /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; 67E8730E582CED91AFE4FA07B317CF43 /* VIMVideo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideo.h; path = VimeoNetworking/Sources/Models/VIMVideo.h; sourceTree = ""; }; 686E7A5A8052386182347D07482C3C67 /* VIMUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMUploadTicket.h; sourceTree = ""; }; - 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VimeoNetworking.xcconfig; sourceTree = ""; }; - 6A7DD13AE760F49BD336D2C01BAA7890 /* Pods-VimeoUpload-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.debug.xcconfig"; sourceTree = ""; }; - 6AC1A1CA96496068B2690A54CEA6343D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 6BF8E52D1956FDF3113B95BEC7B01C97 /* VimeoNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = VimeoNetworking.modulemap; sourceTree = ""; }; 6C6F9D9FE6FFC0791183DADBD393CBFE /* Pods_VimeoUpload_iOS_OldUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS_OldUpload.framework; path = "Pods-VimeoUpload-iOS-OldUpload.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 6C9FDB087D69B2FF78F76AAF8C24EA80 /* Pods-VimeoUpload-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS.modulemap"; sourceTree = ""; }; 6D47993D1669EDACAE23DDA31EE1D750 /* VIMActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMActivity.m; path = VimeoNetworking/Sources/Models/VIMActivity.m; sourceTree = ""; }; + 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; 6DAFB57C55DAA0F49681B1626DBE7837 /* VimeoReachability.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoReachability.swift; path = VimeoNetworking/Sources/VimeoReachability.swift; sourceTree = ""; }; - 6ED127F95CDCB38838CC180BF12E4D55 /* Pods-VimeoUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-resources.sh"; sourceTree = ""; }; - 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUploadTests-dummy.m"; sourceTree = ""; }; 714AC1F0B428E041A21A3D9426A0F56D /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; 714C5B0978A3C1F5DFD5196353A4674C /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; 71DED1DC4C3953219DB409A92F0E546F /* VIMAppeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAppeal.h; path = VimeoNetworking/Sources/Models/VIMAppeal.h; sourceTree = ""; }; - 72072E5C11559FE8537DE973FA72BA21 /* VimeoNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-prefix.pch"; sourceTree = ""; }; 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; 7426D8145A3155978F0515BEEFCB8447 /* Request+Comment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Comment.swift"; path = "VimeoNetworking/Sources/Request+Comment.swift"; sourceTree = ""; }; - 76326C8C4F0A2A5409134F265A781ACD /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; + 768B121F5BBF2F6F17A30D3AF51F39BC /* Pods-VimeoUpload-iOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOSTests.modulemap"; sourceTree = ""; }; 770CD4C87AE1AA8397D0F6E251DCC540 /* VIMTrigger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTrigger.m; path = VimeoNetworking/Sources/Models/VIMTrigger.m; sourceTree = ""; }; 7983F38BB3C81F07425BFAF1E6289C43 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; 7AC12ADD13D05812352645C5BAEFD99D /* digicert-sha2.cer */ = {isa = PBXFileReference; includeInIndex = 1; name = "digicert-sha2.cer"; path = "VimeoNetworking/Resources/digicert-sha2.cer"; sourceTree = ""; }; 7BD6B4F1BB9B251C7BEC59722C42AB0B /* VIMActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMActivity.h; path = VimeoNetworking/Sources/Models/VIMActivity.h; sourceTree = ""; }; 7D22624966A39C8E5C113CBF14F4C8CE /* VIMPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPreference.m; path = VimeoNetworking/Sources/Models/VIMPreference.m; sourceTree = ""; }; 7DE0E38A99298F3EF954325E154AA215 /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; + 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-umbrella.h"; sourceTree = ""; }; 7FE473E948247E7F9972B5508A413C38 /* VIMLiveChat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveChat.swift; path = VimeoNetworking/Sources/Models/VIMLiveChat.swift; sourceTree = ""; }; - 80E26D00B3A1139F9D88C0E57B6F0DA3 /* Pods-VimeoUpload-iOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.debug.xcconfig"; sourceTree = ""; }; - 81B9D7C302854F8DDD4076AE8D68B1B7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 83E3827F28F7C2A0D65AFDF43BABB9C6 /* VimeoNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-prefix.pch"; sourceTree = ""; }; 84027987FF22C70AB94CB6DB9FB0CBD5 /* Pods_VimeoUpload_iOS_OldUploadTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS_OldUploadTests.framework; path = "Pods-VimeoUpload-iOS-OldUploadTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 85AE31BCA21D12620C2D9B0F9386A7EA /* VIMVideoPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.h; sourceTree = ""; }; - 8854A148A98E4C656CC085331FEE2A76 /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh"; sourceTree = ""; }; + 88E89F9C17ADFE5CAD4DE8D8CC0A0D28 /* Pods-VimeoUpload-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS.modulemap"; sourceTree = ""; }; + 89919609A4C82EA22E98E3889206920D /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist"; sourceTree = ""; }; 8BA8C97144A1B46C16C2425AD02F2647 /* VIMChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMChannel.h; path = VimeoNetworking/Sources/Models/VIMChannel.h; sourceTree = ""; }; 8BC4A625F838AE6E28EAA14F8EABBEEE /* VIMAccount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAccount.m; path = VimeoNetworking/Sources/Models/VIMAccount.m; sourceTree = ""; }; - 8D434E487EE19FF84352C937F1008B3B /* Pods-VimeoUpload-iOS-OldUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS-OldUpload.modulemap"; sourceTree = ""; }; + 8C9165823267758FD6A92FD5BE0B6610 /* Pods-VimeoUpload-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-resources.sh"; sourceTree = ""; }; 8D9225F1748860C325BC0B5470023589 /* Request+Configs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Configs.swift"; path = "VimeoNetworking/Sources/Request+Configs.swift"; sourceTree = ""; }; 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUploadQuota.swift; path = VimeoNetworking/Sources/Models/VIMUploadQuota.swift; sourceTree = ""; }; 8E6BFE7016A60D816B0E3C15C0E2F3BF /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; + 8E6D96934932FA9638F6BD2E31B8D86E /* Pods-VimeoUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-acknowledgements.plist"; sourceTree = ""; }; 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMThumbnailUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.m; sourceTree = ""; }; 8ED7E045948374FAE37E1258BA3366F1 /* VIMNotificationsConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotificationsConnection.m; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.m; sourceTree = ""; }; - 90CE0CDA94D5A8DDA81A0AA529497EEB /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOSTests-acknowledgements.markdown"; sourceTree = ""; }; 91179DF7663D831C96D269BFB58AD522 /* VIMCredit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCredit.m; path = VimeoNetworking/Sources/Models/VIMCredit.m; sourceTree = ""; }; - 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9468DEA78D57D9B0E4C7AC7F5E504C7B /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; + 952F507F085A0B032F0A5999B8BB257B /* Pods-VimeoUpload-iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-acknowledgements.plist"; sourceTree = ""; }; + 9531324FE69A206C8D425D93D70BCB29 /* Pods-VimeoUpload-iOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-frameworks.sh"; sourceTree = ""; }; 95D6664DF623C80FB5A5C526B85C924B /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload.framework; path = "Pods-VimeoUpload.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 977CC708C885349F45A1FFAA4DB28215 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUpload-dummy.m"; sourceTree = ""; }; 98158361BFB9C60E8591A14756CDA100 /* VimeoClient.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoClient.swift; path = VimeoNetworking/Sources/VimeoClient.swift; sourceTree = ""; }; + 985AD4A3003DCEE2DA31FF69A61A84DB /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AFNetworking.modulemap; sourceTree = ""; }; 9899127E9167B9D6EBA7784D892653A2 /* VIMModelObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMModelObject.m; path = VimeoNetworking/Sources/Models/VIMModelObject.m; sourceTree = ""; }; - 9916C267E80CB2567193FDE98D596CCC /* VimeoNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VimeoNetworking-dummy.m"; sourceTree = ""; }; 9A25EFA17D3547663AC40E439C04067B /* AccountStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AccountStore.swift; path = VimeoNetworking/Sources/AccountStore.swift; sourceTree = ""; }; - 9ACF5761B029845B3F2897FDE0D45BB0 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist"; sourceTree = ""; }; - 9BB0F28B65CFA82A1097FD4C71DA0487 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist"; sourceTree = ""; }; + 9A3C26DB3876114928F36AA5CF7EA0F5 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; sourceTree = ""; }; + 9D016933AD5FAF12115C7809993E0D09 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOSTests-acknowledgements.plist"; sourceTree = ""; }; 9D02A2893866B878CFEE338D26DC5313 /* Request+Video.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Video.swift"; path = "VimeoNetworking/Sources/Request+Video.swift"; sourceTree = ""; }; - 9E78D488EE2F56C490F374FBD83C1062 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown"; sourceTree = ""; }; + 9D3768CC6CDDD824D653B921C0D96F6F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9EC36289436BC8F92161297A7A6BB279 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; 9FD22B103D648342069FE779359C9A56 /* VIMVideoDASHFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDASHFile.m; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.m; sourceTree = ""; }; + A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VimeoNetworking.xcconfig; sourceTree = ""; }; A23F6E3249A977997C8255519997C806 /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; A250189A49355B43BD9E62364DDB456F /* VIMBadge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMBadge.swift; path = VimeoNetworking/Sources/Models/VIMBadge.swift; sourceTree = ""; }; A27737DBFB0A1312C26B1C96EFC0D9CC /* Mappable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Mappable.swift; path = VimeoNetworking/Sources/Mappable.swift; sourceTree = ""; }; - A303A435EC06435219B38263B54D05FA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A6EFA92C2421798DB0FF8C3149FE8ACA /* VimeoNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VimeoNetworking-dummy.m"; sourceTree = ""; }; A764F24CBBAA6CD584EE0CBFB5F80D40 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; A7C668C5587BF895640E72EA227806D7 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; A7C8E8C116C75D16F52EA1D3242FF59D /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; - A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOSTests-dummy.m"; sourceTree = ""; }; A962DA72E1B4C69B2EBB0CF5A88E990E /* VIMCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCategory.m; path = VimeoNetworking/Sources/Models/VIMCategory.m; sourceTree = ""; }; A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; + AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.debug.xcconfig"; sourceTree = ""; }; AA188B201DCC201C7D1451547279808D /* VIMVideoUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoUtils.h; path = VimeoNetworking/Sources/Models/VIMVideoUtils.h; sourceTree = ""; }; AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; AB1A7C0E9CF186DC326357962BEC7AF5 /* VIMPictureCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPictureCollection.m; path = VimeoNetworking/Sources/Models/VIMPictureCollection.m; sourceTree = ""; }; AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseCache.swift; path = VimeoNetworking/Sources/ResponseCache.swift; sourceTree = ""; }; AC1504799A29B9D2BC4470E3E39BCA33 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; AD3546051FCB66387E4E83C5B7BBACE9 /* Request+Channel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Channel.swift"; path = "VimeoNetworking/Sources/Request+Channel.swift"; sourceTree = ""; }; - ADD83665EF069AC4808284045A05F4BF /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; AE40B3ABF25113AD8DB2293E39C0B740 /* Request+ProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+ProgrammedContent.swift"; path = "VimeoNetworking/Sources/Request+ProgrammedContent.swift"; sourceTree = ""; }; AE97ADD7133B74F569CDBAA703BCFD65 /* VIMPolicyDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPolicyDocument.h; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.h; sourceTree = ""; }; AEA5F1020ACBC1E16F7C377115328C63 /* Spatial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Spatial.swift; path = VimeoNetworking/Sources/Models/Spatial.swift; sourceTree = ""; }; + AFA9CE28C85633044910F197AE62024B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B0A90EF0370E7F413E923D813F419C81 /* String+Parameters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Parameters.swift"; path = "VimeoNetworking/Sources/String+Parameters.swift"; sourceTree = ""; }; B0B2B4EA4DB47084F317FFA4C51ADC9C /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; B0B8B622C89D248F892F70436F3C4927 /* Request+PolicyDocument.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+PolicyDocument.swift"; path = "VimeoNetworking/Sources/Request+PolicyDocument.swift"; sourceTree = ""; }; B1A9E4CA052B6791BE98CABC26BDAE96 /* VIMLiveTime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveTime.swift; path = VimeoNetworking/Sources/Models/VIMLiveTime.swift; sourceTree = ""; }; B3962DB52E64A2446FC1C17FE675A0E6 /* VIMLive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLive.swift; path = VimeoNetworking/Sources/Models/VIMLive.swift; sourceTree = ""; }; - B4580F679371388C6FC87FF024534456 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOSTests-acknowledgements.plist"; sourceTree = ""; }; B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODItem.m; path = VimeoNetworking/Sources/Models/VIMVODItem.m; sourceTree = ""; }; B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCredit.h; path = VimeoNetworking/Sources/Models/VIMCredit.h; sourceTree = ""; }; B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveQuota.swift; path = VimeoNetworking/Sources/Models/VIMLiveQuota.swift; sourceTree = ""; }; - BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; - BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOSTests-umbrella.h"; sourceTree = ""; }; + B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; + BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-dummy.m"; sourceTree = ""; }; + BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.release.xcconfig"; sourceTree = ""; }; BCB75948A89DA6FAFB6053EFB7B39628 /* VIMPicture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPicture.h; path = VimeoNetworking/Sources/Models/VIMPicture.h; sourceTree = ""; }; - BDEBFF33778D5264ED6AEA58E613AE82 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown"; sourceTree = ""; }; + BCCE3CCA275CFD5838CD6B0FFCC72CD3 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Soundtrack.swift"; path = "VimeoNetworking/Sources/Request+Soundtrack.swift"; sourceTree = ""; }; C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMChannel.m; path = VimeoNetworking/Sources/Models/VIMChannel.m; sourceTree = ""; }; C29192B1F683D403AFFD632D65221D49 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotification.h; path = VimeoNetworking/Sources/Models/VIMNotification.h; sourceTree = ""; }; - C4CF223F05BF42A197EEB5B5F427FB15 /* Pods-VimeoUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.debug.xcconfig"; sourceTree = ""; }; C5E4251390579CA8A4647B705BD6DD41 /* VIMVideoFairPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFairPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.h; sourceTree = ""; }; C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = VimeoNetworking/Sources/Response.swift; sourceTree = ""; }; C716B4800FAD0DDAAAFFAB57FFC40242 /* VIMModelObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMModelObject.h; path = VimeoNetworking/Sources/Models/VIMModelObject.h; sourceTree = ""; }; @@ -475,37 +474,41 @@ C8E3687C68FDA0D536295AA785351E89 /* VIMVideoFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFile.h; sourceTree = ""; }; C913DD9402D7FCE7BBA97568950974A6 /* VIMAccount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAccount.h; path = VimeoNetworking/Sources/Models/VIMAccount.h; sourceTree = ""; }; C974CC35310983ABAED5BA8CF32332A6 /* Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Subscription.swift; path = VimeoNetworking/Sources/Models/Subscription.swift; sourceTree = ""; }; - CA537B840B304BCD493A48F81F820D06 /* Pods-VimeoUpload-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-resources.sh"; sourceTree = ""; }; CAC4F7845137416DDE1B0102830EDF83 /* VIMVODItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODItem.h; path = VimeoNetworking/Sources/Models/VIMVODItem.h; sourceTree = ""; }; CBE34181F7DEEA3A80140282BBC6AB0B /* VIMNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotification.m; path = VimeoNetworking/Sources/Models/VIMNotification.m; sourceTree = ""; }; - CBED8FAC62EC97352938CA51099A55E9 /* Pods-VimeoUpload-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.release.xcconfig"; sourceTree = ""; }; CC35A7CF63A081875F9CF7A13AED2B6F /* VIMThumbnailUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMThumbnailUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.h; sourceTree = ""; }; - CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUpload-umbrella.h"; sourceTree = ""; }; CCF8D5A5B94427B5A26BF7A110935D1D /* VIMVideo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideo.m; path = VimeoNetworking/Sources/Models/VIMVideo.m; sourceTree = ""; }; CF73647B15392A1776EAC7769039E3C1 /* Objc_ExceptionCatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Objc_ExceptionCatcher.h; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.h; sourceTree = ""; }; CFAE1CB42591FDBB0E3C6CDA2D9D8EBE /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; CFF010DC16DF0D1F72CC6D06650AFAB1 /* VIMPeriodic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMPeriodic.swift; path = VimeoNetworking/Sources/Models/VIMPeriodic.swift; sourceTree = ""; }; D14F412DA2B5A72B420B77A5DF82B391 /* VIMLiveChatUser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveChatUser.swift; path = VimeoNetworking/Sources/Models/VIMLiveChatUser.swift; sourceTree = ""; }; - D41615CC354B8B0A35926E7CC9AD71F6 /* Pods-VimeoUpload-iOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOSTests.modulemap"; sourceTree = ""; }; + D404A1F87C817006C3E8A666C694032F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D4759F58D590C7673A8DD8D567CBAB74 /* VimeoResponseSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoResponseSerializer.swift; path = VimeoNetworking/Sources/VimeoResponseSerializer.swift; sourceTree = ""; }; D4E0A7B176B3107F86D5A881E57AA5BC /* VimeoRequestSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoRequestSerializer.swift; path = VimeoNetworking/Sources/VimeoRequestSerializer.swift; sourceTree = ""; }; + D53BEEBF70CF78A7381D5E381FE19629 /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeInfo.swift; path = VimeoNetworking/Sources/Models/PinCodeInfo.swift; sourceTree = ""; }; D7478AE1D1B107593F1494EC8E78E8B8 /* VIMUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUpload.swift; path = VimeoNetworking/Sources/Models/VIMUpload.swift; sourceTree = ""; }; D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMMappable.h; path = VimeoNetworking/Sources/Models/VIMMappable.h; sourceTree = ""; }; + D7A828D7986D21FD6CD1AAFC2C2AD868 /* Pods-VimeoUpload-iOS-OldUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS-OldUpload.modulemap"; sourceTree = ""; }; D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMSizeQuota.swift; path = VimeoNetworking/Sources/Models/VIMSizeQuota.swift; sourceTree = ""; }; D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMInteraction.m; path = VimeoNetworking/Sources/Models/VIMInteraction.m; sourceTree = ""; }; D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Objc_ExceptionCatcher.m; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.m; sourceTree = ""; }; D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+Constructors.swift"; path = "VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift"; sourceTree = ""; }; - E02C81A3C7316395924E658D5BC8F10E /* Pods-VimeoUpload-iOSTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-frameworks.sh"; sourceTree = ""; }; - E1D8B2BDDECC16F881030CB0199BCF01 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; sourceTree = ""; }; + DB8FD8229ED4AD2B0CBBBDDC20F09BAA /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; + DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig"; sourceTree = ""; }; + DFBA9CB028E92A4BD313247C31E60A61 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown"; sourceTree = ""; }; E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPolicyDocument.m; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.m; sourceTree = ""; }; E356F5BC3EF410C1A8E290BF70EE42EC /* KeychainStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainStore.swift; path = VimeoNetworking/Sources/KeychainStore.swift; sourceTree = ""; }; E3F3220930C10F8298CDEE754D07F73F /* VIMVideoFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFile.m; sourceTree = ""; }; + E45D7B55387DB56C27D0059AB7E055B7 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown"; sourceTree = ""; }; + E4889658443569A8A1D8566903CC7C63 /* Pods-VimeoUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-acknowledgements.markdown"; sourceTree = ""; }; E4B18CFCBFD591833D9E6A8BE1F1172C /* VIMVideoPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPreference.m; path = VimeoNetworking/Sources/Models/VIMVideoPreference.m; sourceTree = ""; }; E522AAA14794E33C4E9EFF0779388907 /* VIMTag.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTag.h; path = VimeoNetworking/Sources/Models/VIMTag.h; sourceTree = ""; }; E592A244E83255AC4115A868FE02919D /* VIMUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUser.m; path = VimeoNetworking/Sources/Models/VIMUser.m; sourceTree = ""; }; E5B2FE6582270D74BE0CBFC7A389FC8A /* VIMPictureCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPictureCollection.h; path = VimeoNetworking/Sources/Models/VIMPictureCollection.h; sourceTree = ""; }; - E66CADEDAC09183F04136EEF61E99514 /* Pods-VimeoUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload.modulemap"; sourceTree = ""; }; + E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h"; sourceTree = ""; }; + E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.debug.xcconfig"; sourceTree = ""; }; + E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOSTests-umbrella.h"; sourceTree = ""; }; E8614CB362CB4E3C9E03FCDFF2B3727C /* NSURLSessionConfiguration+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSessionConfiguration+Extensions.swift"; path = "VimeoNetworking/Sources/NSURLSessionConfiguration+Extensions.swift"; sourceTree = ""; }; E8EE2BF5E54CD69A9A8E68E9AA8D06F4 /* VimeoNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VimeoNetworking.h; path = VimeoNetworking/Sources/VimeoNetworking.h; sourceTree = ""; }; EB03BF3312FAD8B30A9EE17D0AA7BD36 /* NetworkingNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkingNotification.swift; path = VimeoNetworking/Sources/NetworkingNotification.swift; sourceTree = ""; }; @@ -515,22 +518,19 @@ ED3D79C25378B9CD7F9F1F4D28F37C78 /* NSError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSError+Extensions.swift"; path = "VimeoNetworking/Sources/NSError+Extensions.swift"; sourceTree = ""; }; EDF2918E5CB02CFC1ADE04F783E882E5 /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AFNetworking.framework; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EE4DA92A43826C17668392D0C859A80A /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; - EF2AA60D6B2F3B5482588A54A11AEE2C /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig"; sourceTree = ""; }; - F014323346C8E3E2BEC80F2E5786B9C9 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; - F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUpload-dummy.m"; sourceTree = ""; }; + EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig"; sourceTree = ""; }; F0E3C679036E864BB4FCA1E4E08863D9 /* VimeoNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = VimeoNetworking.framework; path = VimeoNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F27DFCF446A2BAED340E50B6F721E96C /* VIMVideoHLSFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoHLSFile.h; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.h; sourceTree = ""; }; F367284389C8299C9D163BC304C1B1AB /* Request+Trigger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Trigger.swift"; path = "VimeoNetworking/Sources/Request+Trigger.swift"; sourceTree = ""; }; - F4ED96BBE5EA3EC1EC3534905722909E /* Pods-VimeoUpload-iOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.release.xcconfig"; sourceTree = ""; }; F5D5EE1E0744442AC49E909AD0D768A9 /* VIMVideoDASHFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDASHFile.h; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.h; sourceTree = ""; }; F6C8A0A919CEE05D1634AFD91D8693BC /* VIMVODConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODConnection.h; path = VimeoNetworking/Sources/Models/VIMVODConnection.h; sourceTree = ""; }; - F74BC0BC96EBD6E2C05C64B9D1AEBACD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F6CF395977AAF063ED0CC9668B8AAA86 /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOSTests-acknowledgements.markdown"; sourceTree = ""; }; F7ABBC91F9865BF0C8F0A5C033AC9F63 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; F8420F0DF85E78490D2EC6895FB33030 /* VIMSoundtrack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSoundtrack.m; path = VimeoNetworking/Sources/Models/VIMSoundtrack.m; sourceTree = ""; }; FA4D18A3DC38EBDE55B7E5C609CC71FC /* VIMLiveHeartbeat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveHeartbeat.swift; path = VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift; sourceTree = ""; }; FC34BB5F2459B8BE2191283BCD59DFFC /* VIMVODConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODConnection.m; path = VimeoNetworking/Sources/Models/VIMVODConnection.m; sourceTree = ""; }; FC7C28E2007A0256AC662EA7D40A6631 /* VIMPrivacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPrivacy.h; path = VimeoNetworking/Sources/Models/VIMPrivacy.h; sourceTree = ""; }; - FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-dummy.m"; sourceTree = ""; }; + FF6CFF1711EAE79A36AD1EAE62DC8AB7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -621,33 +621,30 @@ name = Security; sourceTree = ""; }; - 2313536380DFE00F24F89A43A4D4F130 /* Targets Support Files */ = { + 1EAA0B00FA919A6A07D1DB010C5B85FA /* Support Files */ = { isa = PBXGroup; children = ( - 250366D0E919D4D61DE1830829F12355 /* Pods-VimeoUpload */, - 7C47F48E4D14E65448AE0EDF0794BE9B /* Pods-VimeoUpload-iOS */, - 815833918B7C638BDE7B559A442FBAF2 /* Pods-VimeoUpload-iOS-OldUpload */, - 9981A11047C5F8F251522C5E56C9B686 /* Pods-VimeoUpload-iOS-OldUploadTests */, - 460F4E21B8A744E66CC3D6E8DAC45F9C /* Pods-VimeoUpload-iOSTests */, + 985AD4A3003DCEE2DA31FF69A61A84DB /* AFNetworking.modulemap */, + 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */, + 620D09827DEDF296949C919BB5E207C4 /* AFNetworking-dummy.m */, + BCCE3CCA275CFD5838CD6B0FFCC72CD3 /* AFNetworking-prefix.pch */, + DB8FD8229ED4AD2B0CBBBDDC20F09BAA /* AFNetworking-umbrella.h */, + 529DFA1EB388CF7DC8121A4EBCFF59B4 /* Info.plist */, ); - name = "Targets Support Files"; + name = "Support Files"; + path = "../Target Support Files/AFNetworking"; sourceTree = ""; }; - 250366D0E919D4D61DE1830829F12355 /* Pods-VimeoUpload */ = { + 2313536380DFE00F24F89A43A4D4F130 /* Targets Support Files */ = { isa = PBXGroup; children = ( - 81B9D7C302854F8DDD4076AE8D68B1B7 /* Info.plist */, - E66CADEDAC09183F04136EEF61E99514 /* Pods-VimeoUpload.modulemap */, - 3DF748E9534F1105869E8635FABD2DB5 /* Pods-VimeoUpload-acknowledgements.markdown */, - 4FD417247D6F2F5D88E1083E3FB8227F /* Pods-VimeoUpload-acknowledgements.plist */, - FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */, - 6ED127F95CDCB38838CC180BF12E4D55 /* Pods-VimeoUpload-resources.sh */, - 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */, - C4CF223F05BF42A197EEB5B5F427FB15 /* Pods-VimeoUpload.debug.xcconfig */, - 590A00F4B0511AE74E5A1DE651C5634A /* Pods-VimeoUpload.release.xcconfig */, + 701E74F27C44C18C2B9541A00A1B8C64 /* Pods-VimeoUpload */, + 9760086FBBBB58C8A8E6E7736B892D36 /* Pods-VimeoUpload-iOS */, + FB293DC0192603A810CF47C026B5C90A /* Pods-VimeoUpload-iOS-OldUpload */, + 7D9A6731A8623773AC09896C3E4E44E0 /* Pods-VimeoUpload-iOS-OldUploadTests */, + 5F47914DBA4B4E735FB0B966280E79F6 /* Pods-VimeoUpload-iOSTests */, ); - name = "Pods-VimeoUpload"; - path = "Target Support Files/Pods-VimeoUpload"; + name = "Targets Support Files"; sourceTree = ""; }; 2AB1EC7FF63F4B976FCFA5FDC11927C4 /* Serialization */ = { @@ -815,7 +812,7 @@ CAC4F7845137416DDE1B0102830EDF83 /* VIMVODItem.h */, B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */, 6A391CD898592360813FABFDC28A3266 /* Resources */, - E728CAD589156662CAFA63615EC4A02F /* Support Files */, + 9B00E73A8CFCF80A98CA1E7BC6BC1FE0 /* Support Files */, ); name = VimeoNetworking; path = VimeoNetworking; @@ -859,24 +856,6 @@ name = NSURLSession; sourceTree = ""; }; - 460F4E21B8A744E66CC3D6E8DAC45F9C /* Pods-VimeoUpload-iOSTests */ = { - isa = PBXGroup; - children = ( - 2A3F72A38ECAA6689938E0DD34F3126A /* Info.plist */, - D41615CC354B8B0A35926E7CC9AD71F6 /* Pods-VimeoUpload-iOSTests.modulemap */, - 90CE0CDA94D5A8DDA81A0AA529497EEB /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */, - B4580F679371388C6FC87FF024534456 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */, - A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */, - E02C81A3C7316395924E658D5BC8F10E /* Pods-VimeoUpload-iOSTests-frameworks.sh */, - 5CCA2741496873A942541EFBB5531983 /* Pods-VimeoUpload-iOSTests-resources.sh */, - BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */, - 80E26D00B3A1139F9D88C0E57B6F0DA3 /* Pods-VimeoUpload-iOSTests.debug.xcconfig */, - F4ED96BBE5EA3EC1EC3534905722909E /* Pods-VimeoUpload-iOSTests.release.xcconfig */, - ); - name = "Pods-VimeoUpload-iOSTests"; - path = "Target Support Files/Pods-VimeoUpload-iOSTests"; - sourceTree = ""; - }; 58ADEC1A744624280C424466F85276D6 /* iOS */ = { isa = PBXGroup; children = ( @@ -889,6 +868,24 @@ name = iOS; sourceTree = ""; }; + 5F47914DBA4B4E735FB0B966280E79F6 /* Pods-VimeoUpload-iOSTests */ = { + isa = PBXGroup; + children = ( + D404A1F87C817006C3E8A666C694032F /* Info.plist */, + 768B121F5BBF2F6F17A30D3AF51F39BC /* Pods-VimeoUpload-iOSTests.modulemap */, + F6CF395977AAF063ED0CC9668B8AAA86 /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */, + 9D016933AD5FAF12115C7809993E0D09 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */, + 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */, + 39E99DADEC276F0039A9BB6590160B92 /* Pods-VimeoUpload-iOSTests-frameworks.sh */, + 61BBAE14F6D05F87DD0A7A0F550824DD /* Pods-VimeoUpload-iOSTests-resources.sh */, + E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */, + E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */, + 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */, + ); + name = "Pods-VimeoUpload-iOSTests"; + path = "Target Support Files/Pods-VimeoUpload-iOSTests"; + sourceTree = ""; + }; 6A391CD898592360813FABFDC28A3266 /* Resources */ = { isa = PBXGroup; children = ( @@ -897,22 +894,39 @@ name = Resources; sourceTree = ""; }; - 7C47F48E4D14E65448AE0EDF0794BE9B /* Pods-VimeoUpload-iOS */ = { + 701E74F27C44C18C2B9541A00A1B8C64 /* Pods-VimeoUpload */ = { isa = PBXGroup; children = ( - 59ACC3119383FFF4846D1E7814D14DFB /* Info.plist */, - 6C9FDB087D69B2FF78F76AAF8C24EA80 /* Pods-VimeoUpload-iOS.modulemap */, - 30232B7C92B3EA202FD3EBDCE7FCA62E /* Pods-VimeoUpload-iOS-acknowledgements.markdown */, - 1E2C31E1C5219A492BA51ECF975649C4 /* Pods-VimeoUpload-iOS-acknowledgements.plist */, - 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */, - 2823D0E27387DEDA4CD0C3CFBCC0B44F /* Pods-VimeoUpload-iOS-frameworks.sh */, - CA537B840B304BCD493A48F81F820D06 /* Pods-VimeoUpload-iOS-resources.sh */, - 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */, - 6A7DD13AE760F49BD336D2C01BAA7890 /* Pods-VimeoUpload-iOS.debug.xcconfig */, - CBED8FAC62EC97352938CA51099A55E9 /* Pods-VimeoUpload-iOS.release.xcconfig */, + 9D3768CC6CDDD824D653B921C0D96F6F /* Info.plist */, + 1263405891BAC778C715376CF6CAF9B2 /* Pods-VimeoUpload.modulemap */, + E4889658443569A8A1D8566903CC7C63 /* Pods-VimeoUpload-acknowledgements.markdown */, + 8E6D96934932FA9638F6BD2E31B8D86E /* Pods-VimeoUpload-acknowledgements.plist */, + BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */, + 2140E97C9A902AF978123E899B2EC965 /* Pods-VimeoUpload-resources.sh */, + 23203AB46E0B1066374BDDE11472401B /* Pods-VimeoUpload-umbrella.h */, + AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */, + B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */, ); - name = "Pods-VimeoUpload-iOS"; - path = "Target Support Files/Pods-VimeoUpload-iOS"; + name = "Pods-VimeoUpload"; + path = "Target Support Files/Pods-VimeoUpload"; + sourceTree = ""; + }; + 7D9A6731A8623773AC09896C3E4E44E0 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + isa = PBXGroup; + children = ( + 65544531C57D7687204CF1A58500C6BB /* Info.plist */, + 9A3C26DB3876114928F36AA5CF7EA0F5 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */, + E45D7B55387DB56C27D0059AB7E055B7 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */, + 3BF90FFD87F716998B15371C1C15106E /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */, + 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */, + 03BD44E17BF4F0A8D5B2F4DAD5ABB72C /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */, + 4D332695D30979CBB112477B9E1D04E4 /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */, + E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */, + DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */, + 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */, + ); + name = "Pods-VimeoUpload-iOS-OldUploadTests"; + path = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests"; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { @@ -926,24 +940,6 @@ ); sourceTree = ""; }; - 815833918B7C638BDE7B559A442FBAF2 /* Pods-VimeoUpload-iOS-OldUpload */ = { - isa = PBXGroup; - children = ( - F74BC0BC96EBD6E2C05C64B9D1AEBACD /* Info.plist */, - 8D434E487EE19FF84352C937F1008B3B /* Pods-VimeoUpload-iOS-OldUpload.modulemap */, - BDEBFF33778D5264ED6AEA58E613AE82 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */, - 9BB0F28B65CFA82A1097FD4C71DA0487 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */, - F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */, - 2BF35D801896FA2A238107E3F9288174 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */, - 49926875B9F5E4B438C6D0FDAEE093A2 /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */, - CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */, - 2EC7C61DABF8951A8EA0284CE90D8C35 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */, - 533C56098EE9CDC9C94F3635F25A9F98 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */, - ); - name = "Pods-VimeoUpload-iOS-OldUpload"; - path = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload"; - sourceTree = ""; - }; 8472E4DC9CA6E5916A778824897CEB10 /* Pods */ = { isa = PBXGroup; children = ( @@ -953,36 +949,36 @@ name = Pods; sourceTree = ""; }; - 9981A11047C5F8F251522C5E56C9B686 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + 9760086FBBBB58C8A8E6E7736B892D36 /* Pods-VimeoUpload-iOS */ = { isa = PBXGroup; children = ( - 6AC1A1CA96496068B2690A54CEA6343D /* Info.plist */, - E1D8B2BDDECC16F881030CB0199BCF01 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */, - 9E78D488EE2F56C490F374FBD83C1062 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */, - 9ACF5761B029845B3F2897FDE0D45BB0 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */, - 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */, - 8854A148A98E4C656CC085331FEE2A76 /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */, - 3210E8330EE38198AC23E6AE501C828F /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */, - 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */, - 2A556F76898649B5A28BDB5446ED8308 /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */, - EF2AA60D6B2F3B5482588A54A11AEE2C /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */, + AFA9CE28C85633044910F197AE62024B /* Info.plist */, + 88E89F9C17ADFE5CAD4DE8D8CC0A0D28 /* Pods-VimeoUpload-iOS.modulemap */, + 164D73327C635745B3323BF6ED3ECD65 /* Pods-VimeoUpload-iOS-acknowledgements.markdown */, + 952F507F085A0B032F0A5999B8BB257B /* Pods-VimeoUpload-iOS-acknowledgements.plist */, + 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */, + 9531324FE69A206C8D425D93D70BCB29 /* Pods-VimeoUpload-iOS-frameworks.sh */, + 8C9165823267758FD6A92FD5BE0B6610 /* Pods-VimeoUpload-iOS-resources.sh */, + 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */, + 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */, + BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */, ); - name = "Pods-VimeoUpload-iOS-OldUploadTests"; - path = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests"; + name = "Pods-VimeoUpload-iOS"; + path = "Target Support Files/Pods-VimeoUpload-iOS"; sourceTree = ""; }; - A5F561CA7214D3E588F35FFEF7509048 /* Support Files */ = { + 9B00E73A8CFCF80A98CA1E7BC6BC1FE0 /* Support Files */ = { isa = PBXGroup; children = ( - 48A729E1418F915B16FCDBA79BF2E2EF /* AFNetworking.modulemap */, - BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */, - 76326C8C4F0A2A5409134F265A781ACD /* AFNetworking-dummy.m */, - 2D8CA2B775AA3E87695D6EE18C37FFA4 /* AFNetworking-prefix.pch */, - F014323346C8E3E2BEC80F2E5786B9C9 /* AFNetworking-umbrella.h */, - A303A435EC06435219B38263B54D05FA /* Info.plist */, + FF6CFF1711EAE79A36AD1EAE62DC8AB7 /* Info.plist */, + 1A639A5202E49FF07C8F7669E03A1399 /* VimeoNetworking.modulemap */, + A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */, + A6EFA92C2421798DB0FF8C3149FE8ACA /* VimeoNetworking-dummy.m */, + 83E3827F28F7C2A0D65AFDF43BABB9C6 /* VimeoNetworking-prefix.pch */, + D53BEEBF70CF78A7381D5E381FE19629 /* VimeoNetworking-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/AFNetworking"; + path = "../Target Support Files/VimeoNetworking"; sourceTree = ""; }; CEAE45069CFCC48961DD462C4CF3717A /* Reachability */ = { @@ -1002,34 +998,38 @@ CEAE45069CFCC48961DD462C4CF3717A /* Reachability */, 12FE66E65A2C61174B23DF2E4F7EB109 /* Security */, 2AB1EC7FF63F4B976FCFA5FDC11927C4 /* Serialization */, - A5F561CA7214D3E588F35FFEF7509048 /* Support Files */, + 1EAA0B00FA919A6A07D1DB010C5B85FA /* Support Files */, 3BDA58E9E81F2E50764F2C6A156CED6D /* UIKit */, ); name = AFNetworking; path = AFNetworking; sourceTree = ""; }; - E728CAD589156662CAFA63615EC4A02F /* Support Files */ = { + EFC8D1216166DE80CF4A6175E6193664 /* Frameworks */ = { isa = PBXGroup; children = ( - 2F3866AD6DB44ABC273BA0B914652B6F /* Info.plist */, - 6BF8E52D1956FDF3113B95BEC7B01C97 /* VimeoNetworking.modulemap */, - 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */, - 9916C267E80CB2567193FDE98D596CCC /* VimeoNetworking-dummy.m */, - 72072E5C11559FE8537DE973FA72BA21 /* VimeoNetworking-prefix.pch */, - ADD83665EF069AC4808284045A05F4BF /* VimeoNetworking-umbrella.h */, + 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */, + 58ADEC1A744624280C424466F85276D6 /* iOS */, ); - name = "Support Files"; - path = "../Target Support Files/VimeoNetworking"; + name = Frameworks; sourceTree = ""; }; - EFC8D1216166DE80CF4A6175E6193664 /* Frameworks */ = { + FB293DC0192603A810CF47C026B5C90A /* Pods-VimeoUpload-iOS-OldUpload */ = { isa = PBXGroup; children = ( - 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */, - 58ADEC1A744624280C424466F85276D6 /* iOS */, + 3FBFC292EA4C54BD77E35F6BA2F575DA /* Info.plist */, + D7A828D7986D21FD6CD1AAFC2C2AD868 /* Pods-VimeoUpload-iOS-OldUpload.modulemap */, + DFBA9CB028E92A4BD313247C31E60A61 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */, + 89919609A4C82EA22E98E3889206920D /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */, + 977CC708C885349F45A1FFAA4DB28215 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */, + 1C5628750E74ECB23E63B36AEF2A8E62 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */, + 48142BEFC1B53A12595D6F05AE02468E /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */, + 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */, + EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */, + 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */, ); - name = Frameworks; + name = "Pods-VimeoUpload-iOS-OldUpload"; + path = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload"; sourceTree = ""; }; /* End PBXGroup section */ @@ -1291,8 +1291,8 @@ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -1552,174 +1552,152 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 00F87340FE541E1103068D879CA2CF38 /* Release */ = { + 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */; + baseConfigurationReference = 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = VimeoNetworking; + MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 0353BEE271297126048240FF40109383 /* Debug */ = { + 4847B57B4A65C23778D7CB43055459C7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C4CF223F05BF42A197EEB5B5F427FB15 /* Pods-VimeoUpload.debug.xcconfig */; + baseConfigurationReference = DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload; + PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 20D32A089D17DDAD18CBFD6FBF2E9615 /* Debug */ = { + 7F525E5C9E7655710D00B417733FF93A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2A556F76898649B5A28BDB5446ED8308 /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */; + baseConfigurationReference = 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 2175E73CD648994904DA0EE62BAFD809 /* Release */ = { + 887401EF06F31C5449153BE7B7801D96 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F4ED96BBE5EA3EC1EC3534905722909E /* Pods-VimeoUpload-iOSTests.release.xcconfig */; + baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOSTests; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_NAME = VimeoNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 2B510856FA4E9572B537CBE0802D1591 /* Release */ = { + 96953B0A688C8F1B9D5A885629BAD093 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CBED8FAC62EC97352938CA51099A55E9 /* Pods-VimeoUpload-iOS.release.xcconfig */; + baseConfigurationReference = BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1728,113 +1706,128 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 2DD310F88AC219696E5427287889ABE7 /* Release */ = { + 97E7263EC7910334B64B17C51EC21E8F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */; + baseConfigurationReference = B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = AFNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_VimeoUpload; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 34FE9531DA9AF2820790339988D5FF41 /* Release */ = { + 991D2ACF36318340024E3F7ACF7FB825 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; }; - name = Release; + name = Debug; }; - 505D755E61F57BAAE9431B5466556E3B /* Debug */ = { + A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2EC7C61DABF8951A8EA0284CE90D8C35 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; + baseConfigurationReference = EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1844,107 +1837,95 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 8B3142E38294C0E28FF0047FA73C2EE5 /* Release */ = { + AC4A9B891556FD0225D15F5278786405 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 533C56098EE9CDC9C94F3635F25A9F98 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; + baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_NAME = VimeoNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 9E3B0F5EFF14D554D71BB8100B4A6C5C /* Debug */ = { + B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BAEE1A95289689629B792D2961CE13FF /* AFNetworking.xcconfig */; + baseConfigurationReference = 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = AFNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - A752ACEB3813BB9BE2907109FC21334C /* Release */ = { + B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 590A00F4B0511AE74E5A1DE651C5634A /* Pods-VimeoUpload.release.xcconfig */; + baseConfigurationReference = AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1952,42 +1933,36 @@ PRODUCT_NAME = Pods_VimeoUpload; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - B017DF19B619918B580DB5352814A431 /* Debug */ = { + B74D3C7ABDBC926B683234C5B86E043F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 699D2F9FCCFC230555A7DBF014C0E2ED /* VimeoNetworking.xcconfig */; + baseConfigurationReference = 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = VimeoNetworking; + MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -1995,29 +1970,25 @@ }; name = Debug; }; - B2255DAE8F42483DEA722A3035D3E833 /* Debug */ = { + CD0AF168E1330906C7302C8513242FE4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6A7DD13AE760F49BD336D2C01BAA7890 /* Pods-VimeoUpload-iOS.debug.xcconfig */; + baseConfigurationReference = 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -2027,36 +1998,89 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - B5B05939143791DFBEA62213256EB290 /* Debug */ = { + DA03565BE765DB55C6448FB363A44481 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 80E26D00B3A1139F9D88C0E57B6F0DA3 /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; + baseConfigurationReference = E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -2070,98 +2094,47 @@ }; name = Debug; }; - B7BD003B8DAA163290363B593AB8A4B9 /* Release */ = { + F042D3877BC9E4C7C19D93921E6650DE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF2AA60D6B2F3B5482588A54A11AEE2C /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; + baseConfigurationReference = 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = Pods_VimeoUpload_iOSTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - C104F7F091290C3D1E248192F07FE689 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 0D4109D91B43D42CD4DEC15877BB90A8 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - B5B05939143791DFBEA62213256EB290 /* Debug */, - 2175E73CD648994904DA0EE62BAFD809 /* Release */, + E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */, + F042D3877BC9E4C7C19D93921E6650DE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2169,8 +2142,8 @@ 2545BFAECF1D540C5259B454339817B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 20D32A089D17DDAD18CBFD6FBF2E9615 /* Debug */, - B7BD003B8DAA163290363B593AB8A4B9 /* Release */, + 4847B57B4A65C23778D7CB43055459C7 /* Debug */, + B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2178,8 +2151,8 @@ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - C104F7F091290C3D1E248192F07FE689 /* Debug */, - 34FE9531DA9AF2820790339988D5FF41 /* Release */, + 991D2ACF36318340024E3F7ACF7FB825 /* Debug */, + DA03565BE765DB55C6448FB363A44481 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2187,8 +2160,8 @@ 31E01BC98C827BD8A78F94173CDCC418 /* Build configuration list for PBXNativeTarget "AFNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9E3B0F5EFF14D554D71BB8100B4A6C5C /* Debug */, - 2DD310F88AC219696E5427287889ABE7 /* Release */, + B74D3C7ABDBC926B683234C5B86E043F /* Debug */, + 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2196,8 +2169,8 @@ 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - B2255DAE8F42483DEA722A3035D3E833 /* Debug */, - 2B510856FA4E9572B537CBE0802D1591 /* Release */, + CD0AF168E1330906C7302C8513242FE4 /* Debug */, + 96953B0A688C8F1B9D5A885629BAD093 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2205,8 +2178,8 @@ 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0353BEE271297126048240FF40109383 /* Debug */, - A752ACEB3813BB9BE2907109FC21334C /* Release */, + B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */, + 97E7263EC7910334B64B17C51EC21E8F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2214,8 +2187,8 @@ AD05C11A3D8E19B37EB76DD0591807ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - 505D755E61F57BAAE9431B5466556E3B /* Debug */, - 8B3142E38294C0E28FF0047FA73C2EE5 /* Release */, + A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */, + 7F525E5C9E7655710D00B417733FF93A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2223,8 +2196,8 @@ BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - B017DF19B619918B580DB5352814A431 /* Debug */, - 00F87340FE541E1103068D879CA2CF38 /* Release */, + 887401EF06F31C5449153BE7B7801D96 /* Debug */, + AC4A9B891556FD0225D15F5278786405 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/VimeoNetworking/Info.plist b/Pods/Target Support Files/VimeoNetworking/Info.plist index b0b461e3..90db36aa 100644 --- a/Pods/Target Support Files/VimeoNetworking/Info.plist +++ b/Pods/Target Support Files/VimeoNetworking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.1 + 3.1.0 CFBundleSignature ???? CFBundleVersion diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift index 29fee82c..b114da20 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift @@ -133,7 +133,7 @@ final class AccountStore throw error } - if let userJSON = account.userJSON + if let userJSON = account.userJSON as? [String: Any] { try account.user = VIMObjectMapper.mapObject(responseDictionary: userJSON) as VIMUser } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift index 71296bc8..1e8f7522 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift @@ -24,50 +24,41 @@ // THE SOFTWARE. // -import Foundation - -/** - * Stores all static information relevant to a client application - */ +/// Stores all static information relevant to a client application public struct AppConfiguration { public let clientIdentifier: String public let clientSecret: String public let scopes: [Scope] - - let keychainService: String - let keychainAccessGroup: String? - public let apiVersion: String public let baseUrl: URL + let keychainService: String + let keychainAccessGroup: String? - /** - Create a new `AppConfiguration` - - - parameter clientIdentifier: The client key designated by the api for your application - - parameter clientSecret: The client secret designated by the api for your application - - parameter scopes: An array of `Scope`s that your application requests - - parameter keychainService: Identifes your application to the system keychain, defaults to `KeychainServiceVimeo` - - parameter keychainAccessGroup: Access group your application should use for the system keychain, defaults to nil - - parameter apiVersion: API version your requests should use, defaults to `VimeoDefaultAPIVersionString` - - parameter baseUrl: The baseUrl for HTTP requests made using this configuration, defaults to `VimeoBaseURL` - - - returns: an initialized AppConfiguration - */ + /// Create a new `AppConfiguration` + /// + /// - Parameters: + /// - clientIdentifier: The client key designated by the api for your application + /// - clientSecret: The client secret designated by the api for your application + /// - scopes: An array of `Scope`s that your application requests + /// - keychainService: Identifes your application to the system keychain, defaults to `KeychainServiceVimeo` + /// - keychainAccessGroup: Access group your application should use for the system keychain, defaults to nil + /// - apiVersion: API version your requests should use, defaults to `VimeoDefaultAPIVersionString` + /// - baseUrl: The baseUrl for HTTP requests made using this configuration, defaults to `VimeoBaseURL` public init(clientIdentifier: String, clientSecret: String, scopes: [Scope], keychainService: String, keychainAccessGroup: String? = nil, - apiVersion: String = VimeoDefaultAPIVersionString, - baseUrl: URL = VimeoBaseURL) + apiVersion: String? = nil, + baseUrl: URL? = nil) { self.clientIdentifier = clientIdentifier self.clientSecret = clientSecret self.scopes = scopes self.keychainService = keychainService self.keychainAccessGroup = keychainAccessGroup - self.apiVersion = apiVersion - self.baseUrl = baseUrl + self.apiVersion = apiVersion ?? VimeoDefaultAPIVersionString + self.baseUrl = baseUrl ?? VimeoBaseURL } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift index 81c82f22..1c6e698b 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift @@ -26,7 +26,7 @@ import Foundation -class ExceptionCatcher: ObjC_ExceptionCatcher +public class ExceptionCatcher: ObjC_ExceptionCatcher { /** Execute a block of code that could potentially throw Objective-C exceptions @@ -35,7 +35,7 @@ class ExceptionCatcher: ObjC_ExceptionCatcher - throws: an error containing any thrown exception information */ - @nonobjc internal static func doUnsafe(unsafeBlock: @escaping ((Void) -> Void)) throws + @nonobjc public static func doUnsafe(unsafeBlock: @escaping (() -> Void)) throws { if let error = self._doUnsafe(unsafeBlock) { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift index 590a8b5e..67c2abc4 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift @@ -121,9 +121,9 @@ final class KeychainStore // MARK: - - private func query(for key: String) -> [AnyHashable: Any] + private func query(for key: String) -> [String: Any] { - var query: [AnyHashable: Any] = [:] + var query: [String: Any] = [:] query[kSecClass as String] = kSecClassGenericPassword as String query[kSecAttrService as String] = self.service diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift index b1287ed7..247745e3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift @@ -10,9 +10,9 @@ /// Spatial stores all information related to threesixty video public class Spatial: VIMModelObject { - public static let StereoFormatMono = "mono" - public static let StereoFormatLeftRight = "left-right" - public static let StereoFormatTopBottom = "top-bottom" + @objc public static let StereoFormatMono = "mono" + @objc public static let StereoFormatLeftRight = "left-right" + @objc public static let StereoFormatTopBottom = "top-bottom" /// Represents the projection. Value returned by the server can be: "equirectangular", "cylindrical", "cubical", "pyramid", "dome". @objc dynamic public private(set) var projection: String? diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift index 13efddde..cab4060c 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift @@ -48,9 +48,9 @@ public class Subscription: VIMModelObject @objc dynamic public private(set) var followedUserVideoAvailable: NSNumber? /// Represents the Subscription object as a Dictionary - public var toDictionary: [AnyHashable: Any] + @objc public var toDictionary: [String: Any] { - let dictionary: [AnyHashable: Any] = ["comment": self.comment ?? false, + let dictionary: [String: Any] = ["comment": self.comment ?? false, "credit": self.credit ?? false, "like": self.like ?? false, "mention": self.mention ?? false, @@ -81,7 +81,7 @@ public class Subscription: VIMModelObject /// Helper method that determine whether a user has all the subscription settings turned off. /// /// - Returns: A boolean that indicates whether the user has all the settings for push notifications disabled. - public func areSubscriptionsDisabled() -> Bool + @objc public func areSubscriptionsDisabled() -> Bool { return (self.comment == false && self.credit == false && diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift index a733c8fe..68835772 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift @@ -29,11 +29,11 @@ import Foundation /// VIMBadge contains the text and/or icons used to display a badge on a video item public class VIMBadge: VIMModelObject { - dynamic public var type: String? - dynamic public var festival: String? - dynamic public var link: String? - dynamic public var text: String? - dynamic public var pictures: VIMPictureCollection? + @objc dynamic public var type: String? + @objc dynamic public var festival: String? + @objc dynamic public var link: String? + @objc dynamic public var text: String? + @objc dynamic public var pictures: VIMPictureCollection? public override func getClassForObjectKey(_ key: String) -> AnyClass? { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift index aae0de47..a4fc0db5 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift @@ -60,31 +60,31 @@ public class VIMLive: VIMModelObject } /// The RTMP link is visible but not yet able to receive the stream. - public static let LiveStreamStatusUnavailable = "unavailable" + @objc public static let LiveStreamStatusUnavailable = "unavailable" /// Vimeo is working on setting up the connection. - public static let LiveStreamStatusPending = "pending" + @objc public static let LiveStreamStatusPending = "pending" /// The RTMP's URL is ready to receive video content. - public static let LiveStreamStatusReady = "ready" + @objc public static let LiveStreamStatusReady = "ready" /// The stream is in a "preview" state. It will be accessible to the public when you transition to "streaming". - public static let LiveStreamStatusStreamingPreview = "streaming_preview" + @objc public static let LiveStreamStatusStreamingPreview = "streaming_preview" /// The stream is open and receiving content. - public static let LiveStreamStatusStreaming = "streaming" + @objc public static let LiveStreamStatusStreaming = "streaming" /// The stream has failed due to an error relating to the broadcaster; They may have reached their monthly broadcast limit, for example. - public static let LiveStreamStatusStreamingError = "streaming_error" + @objc public static let LiveStreamStatusStreamingError = "streaming_error" /// The stream has finished, and the video is in the process of being archived, but is not ready to play yet. - public static let LiveStreamStatusArchiving = "archiving" + @objc public static let LiveStreamStatusArchiving = "archiving" /// There was a problem archiving the stream. - public static let LiveStreamStatusArchiveError = "archive_error" + @objc public static let LiveStreamStatusArchiveError = "archive_error" /// The stream has been ended intentionally by the end-user. - public static let LiveStreamStatusDone = "done" + @objc public static let LiveStreamStatusDone = "done" /// An RTMP link used to host a live stream. @objc dynamic public private(set) var link: String? @@ -128,7 +128,7 @@ public class VIMLive: VIMModelObject } /// The live event's chat. - public private(set) var chat: VIMLiveChat? + @objc public private(set) var chat: VIMLiveChat? public override func getClassForObjectKey(_ key: String!) -> AnyClass? { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift index c271a5d3..8936a57d 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift @@ -34,15 +34,15 @@ public class VIMLiveChat: VIMModelObject } /// The ID of the live event chat room. - public private(set) var roomId: NSNumber? + @objc public private(set) var roomId: NSNumber? /// JWT for the user to access the live event chat room. - public private(set) var token: String? + @objc public private(set) var token: String? /// The current user. - public private(set) var user: VIMLiveChatUser? + @objc public private(set) var user: VIMLiveChatUser? - public override func getClassForObjectKey(_ key: String!) -> AnyClass? + @objc public override func getClassForObjectKey(_ key: String!) -> AnyClass? { if key == Constants.UserKey { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift index 810cbac0..a5c920c5 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift @@ -46,13 +46,16 @@ public enum AccountType: String /// An object representing the `user` field in a `chat` response. public class VIMLiveChatUser: VIMModelObject -{ +{ private struct Constants { static let PictureResponseKey = "pictures" } - private(set) var account: String? + /// Returns a string representation of the account type, if available. + /// + /// - Note: This property provides an Objective-C interface for the Swift-only property, `accountType`. + @objc public private(set) var account: String? /// The user's account type in `AccountType`. public var accountType: AccountType? @@ -66,25 +69,25 @@ public class VIMLiveChatUser: VIMModelObject } /// The user's ID. - public private(set) var id: NSNumber? + @objc public private(set) var id: NSNumber? /// Is this user the creator of the live event? - public private(set) var isCreator: NSNumber? + @objc public private(set) var isCreator: NSNumber? /// Is this user a Vimeo staff member? - public private(set) var isStaff: NSNumber? + @objc public private(set) var isStaff: NSNumber? /// The users' display name. - public private(set) var name: String? + @objc public private(set) var name: String? /// The active picture for this user. - public private(set) var pictures: VIMPictureCollection? + @objc public private(set) var pictures: VIMPictureCollection? /// URI of the current user. - public private(set) var uri: String? + @objc public private(set) var uri: String? /// Absolute URL of the current user. - public private(set) var link: String? + @objc public private(set) var link: String? public override func getClassForObjectKey(_ key: String!) -> AnyClass? { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift index 532a2d05..861df5ec 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMPeriodic.swift @@ -4,6 +4,26 @@ // // Created by Lim, Jennifer on 4/3/18. // +// Copyright © 2016 Vimeo. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// public class VIMPeriodic: VIMSizeQuota { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift index 80df35e4..503e19d1 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift @@ -33,8 +33,8 @@ public class VIMProgrammedContent: VIMModelObject @objc dynamic public private(set) var type: String? @objc dynamic public private(set) var content: NSArray? - @objc dynamic private var metadata: [AnyHashable: Any]? - @objc dynamic private var connections: [AnyHashable: Any]? + @objc dynamic private var metadata: [String: Any]? + @objc dynamic private var connections: [String: Any]? private struct Constants { @@ -90,15 +90,15 @@ public class VIMProgrammedContent: VIMModelObject private func parseConnections() { - guard let dict = self.metadata?[Constants.ConnectionsKey] as? [AnyHashable: Any] else + guard let dict = self.metadata?[Constants.ConnectionsKey] as? [String: Any] else { return } - self.connections = [AnyHashable: Any]() + self.connections = [String: Any]() for (key, value) in dict { - if let valueDict = value as? [AnyHashable: Any] + if let valueDict = value as? [String: Any] { self.connections?[key] = VIMConnection(keyValueDictionary: valueDict) } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift index 2ed185ff..2018e7c9 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSizeQuota.swift @@ -4,6 +4,26 @@ // // Created by Lim, Jennifer on 4/3/18. // +// Copyright © 2016 Vimeo. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// public class VIMSizeQuota: VIMModelObject { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift index ad029867..42cbe15a 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMSpace.swift @@ -4,6 +4,26 @@ // // Created by Lim, Jennifer on 4/3/18. // +// Copyright © 2016 Vimeo. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// public class VIMSpace: VIMSizeQuota { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift index d0746568..9927758e 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUploadQuota.swift @@ -4,6 +4,26 @@ // // Created by Lim, Jennifer on 3/26/18. // +// Copyright © 2016 Vimeo. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// import Foundation diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift index f221590d..c5ee3c86 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift @@ -35,7 +35,7 @@ public enum VimeoErrorKey: String } /// Convenience methods used to parse `NSError`s returned by Vimeo api responses -public extension NSError +@objc public extension NSError { /// Returns true if the error is a 503 Service Unavailable error public var isServiceUnavailableError: Bool @@ -83,7 +83,7 @@ public extension NSError - returns: a new `NSError` */ - class func error(withDomain domain: String?, code: Int?, description: String?) -> NSError + @nonobjc class func error(withDomain domain: String?, code: Int?, description: String?) -> NSError { var error = NSError(domain: VimeoErrorKey.VimeoErrorDomain.rawValue, code: 0, userInfo: nil) @@ -119,7 +119,7 @@ public extension NSError - returns: An error with additional user info */ - func error(byAddingUserInfo userInfo: [AnyHashable: Any]) -> NSError + func error(byAddingUserInfo userInfo: [String: Any]) -> NSError { return self.error(byAddingDomain: nil, code: nil, userInfo: userInfo) } @@ -145,7 +145,7 @@ public extension NSError - returns: An error with additional information in the user info dictionary */ - func error(byAddingDomain domain: String?, code: Int?, userInfo: [AnyHashable: Any]?) -> NSError + @nonobjc func error(byAddingDomain domain: String?, code: Int?, userInfo: [String: Any]?) -> NSError { var augmentedInfo = self.userInfo @@ -180,7 +180,7 @@ public extension NSError } /// Returns the status code of the failing response, if available - public var statusCode: Int? + @nonobjc public var statusCode: Int? { if let response = self.userInfo[AFNetworkingOperationFailingURLResponseErrorKey] as? HTTPURLResponse { @@ -191,7 +191,7 @@ public extension NSError } /// Returns the api error code of the failing response, if available - public var vimeoServerErrorCode: Int? + @nonobjc public var vimeoServerErrorCode: Int? { if let errorCode = (self.userInfo[Constants.VimeoErrorCodeKeyLegacy] as? Int) { @@ -218,7 +218,7 @@ public extension NSError { var errorCodes: [Int] = [] - if let json = self.errorResponseBodyJSON, let invalidParameters = json[Constants.VimeoInvalidParametersKey] as? [[AnyHashable: Any]] + if let json = self.errorResponseBodyJSON, let invalidParameters = json[Constants.VimeoInvalidParametersKey] as? [[String: Any]] { for invalidParameter in invalidParameters { @@ -233,13 +233,13 @@ public extension NSError } /// Returns the api error JSON dictionary, if available - public var errorResponseBodyJSON: [AnyHashable: Any]? + public var errorResponseBodyJSON: [String: Any]? { if let data = self.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey] as? Data { do { - let json = try JSONSerialization.jsonObject(with: data, options: []) as? [AnyHashable: Any] + let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] return json } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift index 0cc6b1c2..b7768e80 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift @@ -83,7 +83,7 @@ public enum NetworkingNotification: String - parameter object: an optional object to pass to observers of this `NetworkingNotification` */ - public func post(object: Any?, userInfo: [AnyHashable: Any]? = nil) + public func post(object: Any?, userInfo: [String: Any]? = nil) { DispatchQueue.main.async { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift index 5a830160..93727dec 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift @@ -10,7 +10,7 @@ public extension Request { private static var Path: String { return "/me/notifications/subscriptions" } - private typealias ParameterDictionary = [AnyHashable: Any] + private typealias ParameterDictionary = [String: Any] private static var SubscriptionsPathComponent: String { return "/subscriptions" } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift index d0350a51..fce808f4 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift @@ -40,7 +40,7 @@ private protocol Cache } /// Response cache handles the storage of JSON response dictionaries indexed by their associated `Request`. It contains both memory and disk caching functionality -final internal class ResponseCache +final public class ResponseCache { private struct Constant { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift index 5f437c54..25c98add 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift @@ -74,13 +74,13 @@ final public class VimeoClient } /// Dictionary containing URL parameters for a request - public typealias RequestParametersDictionary = [AnyHashable: Any] + public typealias RequestParametersDictionary = [String: Any] /// Array containing URL parameters for a request public typealias RequestParametersArray = [Any] /// Dictionary containing a JSON response - public typealias ResponseDictionary = [AnyHashable: Any] + public typealias ResponseDictionary = [String: Any] /// Domain for errors generated by `VimeoClient` public static let ErrorDomain = "VimeoClientErrorDomain" @@ -160,7 +160,7 @@ final public class VimeoClient public func notifyObserversAccountChanged(forAccount account: VIMAccount?, previousAccount: VIMAccount?) { NetworkingNotification.authenticatedAccountDidChange.post(object: account, - userInfo: [UserInfoKey.previousAccount.rawValue : previousAccount ?? NSNull()]) + userInfo: [UserInfoKey.previousAccount.rawValue as String : previousAccount ?? NSNull()]) } // MARK: - Request @@ -174,7 +174,7 @@ final public class VimeoClient - returns: a `RequestToken` for the in-flight request */ - public func request(_ request: Request, completionQueue: DispatchQueue = DispatchQueue.main, completion: @escaping ResultCompletion>.T) -> RequestToken + public func request(_ request: Request, completionQueue: DispatchQueue = DispatchQueue.main, completion: @escaping ResultCompletion>.T) -> RequestToken { var networkRequestCompleted = false @@ -317,7 +317,7 @@ final public class VimeoClient // MARK: - Private task completion handlers - private func handleTaskSuccess(forRequest request: Request, task: URLSessionDataTask?, responseObject: Any?, isCachedResponse: Bool = false, isFinalResponse: Bool = true, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) + private func handleTaskSuccess(forRequest request: Request, task: URLSessionDataTask?, responseObject: Any?, isCachedResponse: Bool = false, isFinalResponse: Bool = true, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) { guard let responseDictionary = responseObject as? ResponseDictionary else @@ -422,7 +422,7 @@ final public class VimeoClient } } - private func handleTaskFailure(forRequest request: Request, task: URLSessionDataTask?, error: NSError?, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) + private func handleTaskFailure(forRequest request: Request, task: URLSessionDataTask?, error: NSError?, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) { let error = error ?? NSError(domain: type(of: self).ErrorDomain, code: LocalErrorCode.undefined.rawValue, userInfo: [NSLocalizedDescriptionKey: "Undefined error"]) @@ -462,7 +462,7 @@ final public class VimeoClient // MARK: - Private error handling - private func handleError(_ error: NSError, request: Request, task: URLSessionDataTask? = nil) + private func handleError(_ error: NSError, request: Request, task: URLSessionDataTask? = nil) { if error.isServiceUnavailableError { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift index f370bd32..43b8c61c 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift @@ -40,7 +40,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer static let UserAgentKey = "User-Agent" } - public typealias AccessTokenProvider = (Void) -> String? + public typealias AccessTokenProvider = () -> String? // MARK: diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift index 629da654..dbb702db 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift @@ -63,9 +63,9 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer - returns: the serialized JSON dictionary */ - public func responseObjectFromDownloadTaskResponse(response: URLResponse?, url: URL?, error: NSError?) throws -> [AnyHashable: Any]? + public func responseObjectFromDownloadTaskResponse(response: URLResponse?, url: URL?, error: NSError?) throws -> [String: Any]? { - var responseObject: [AnyHashable: Any]? = nil + var responseObject: [String: Any]? = nil var serializationError: NSError? = nil do { @@ -134,7 +134,7 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer - returns: downloaded data serialized into JSON dictionary */ - public func dictionaryFromDownloadTaskResponse(url: URL?) throws -> [AnyHashable: Any] + public func dictionaryFromDownloadTaskResponse(url: URL?) throws -> [String: Any] { guard let url = url else { @@ -148,10 +148,10 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer throw NSError(domain: Constants.ErrorDomain, code: 0, userInfo: userInfo) } - var dictionary: [AnyHashable: Any]? = [:] + var dictionary: [String: Any]? = [:] if data.count > 0 { - dictionary = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as? [AnyHashable: Any] + dictionary = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as? [String: Any] } if dictionary == nil @@ -165,9 +165,9 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer // MARK: Private API - private func errorInfo(fromResponse response: URLResponse?, responseObject: Any?) -> [AnyHashable: Any]? + private func errorInfo(fromResponse response: URLResponse?, responseObject: Any?) -> [String: Any]? { - var errorInfo: [AnyHashable: Any] = [:] + var errorInfo: [String: Any] = [:] if let dictionary = responseObject as? [String: Any] { From e351031ee91a868d5daa47c31757ea3a4057a6c7 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 25 Apr 2018 15:08:22 -0400 Subject: [PATCH 058/149] Pass in shared container ID before creating session --- .../ReachableDescriptorManager.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index e2f7de81..9e9e5cf4 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -49,9 +49,16 @@ import VimeoNetworking public init(name: String, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) { - let backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider) + let backgroundSessionManager: VimeoSessionManager - backgroundSessionManager.session.configuration.sharedContainerIdentifier = sharedContainerIdentifier + if let sharedContainerIdentifier = sharedContainerIdentifier + { + backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, sharedContainerIdentifier: sharedContainerIdentifier, accessTokenProvider: accessTokenProvider) + } + else + { + backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider) + } super.init(sessionManager: backgroundSessionManager, name: name, delegate: descriptorManagerDelegate) From 9d566d69ea5d3ec510ffd15559b3adf6abf72724 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 30 Apr 2018 10:02:06 -0400 Subject: [PATCH 059/149] Point `VimeoNetworking` to feature branch --- Podfile | 6 +- Podfile.lock | 12 +- .../VimeoNetworking.podspec.json | 9 +- Pods/Manifest.lock | 12 +- Pods/Pods.xcodeproj/project.pbxproj | 2109 +++++++++-------- .../VimeoNetworking/Info.plist | 2 +- Pods/VimeoNetworking/README.md | 35 +- .../Sources/AccountStore.swift | 2 +- .../Sources/AppConfiguration.swift | 43 +- .../Sources/AuthenticationController.swift | 12 +- .../VimeoNetworking/Sources/Constants.swift | 2 +- .../VimeoNetworking/Sources/ErrorCode.swift | 21 +- .../Sources/ExceptionCatcher+Swift.swift | 4 +- .../Sources/KeychainStore.swift | 4 +- .../Sources/Models/PinCodeInfo.swift | 12 +- .../Sources/Models/PlayProgress.swift | 2 +- .../Sources/Models/Spatial.swift | 10 +- .../Sources/Models/Subscription.swift | 54 +- .../Models/SubscriptionCollection.swift | 6 +- .../Sources/Models/VIMBadge.swift | 10 +- .../Sources/Models/VIMConnection.h | 2 + .../Sources/Models/VIMConnection.m | 3 + .../Sources/Models/VIMInteraction.h | 3 + .../Sources/Models/VIMInteraction.m | 1 + .../Sources/Models/VIMLive.swift | 142 ++ .../Sources/Models/VIMLiveChat.swift | 54 + .../Sources/Models/VIMLiveChatUser.swift | 101 + .../Sources/Models/VIMLiveHeartbeat.swift | 44 + .../Sources/Models/VIMLiveQuota.swift | 59 + .../Sources/Models/VIMLiveStreams.swift | 43 + .../Sources/Models/VIMLiveTime.swift | 46 + .../Sources/Models/VIMNotification.h | 5 +- .../Sources/Models/VIMNotification.m | 3 +- .../Models/VIMNotificationsConnection.h | 1 + .../Models/VIMNotificationsConnection.m | 25 + .../Sources/Models/VIMProgrammedContent.swift | 18 +- .../Sources/Models/VIMQuantityQuota.m | 4 +- .../Sources/Models/VIMReviewPage.swift | 21 + .../VimeoNetworking/Sources/Models/VIMUser.h | 7 +- .../VimeoNetworking/Sources/Models/VIMUser.m | 48 +- .../Sources/Models/VIMUserBadge.h | 2 + .../Sources/Models/VIMUserBadge.m | 10 + .../VimeoNetworking/Sources/Models/VIMVideo.h | 54 + .../VimeoNetworking/Sources/Models/VIMVideo.m | 57 +- .../Sources/Models/VIMVideoPlayFile.h | 3 + .../Sources/Models/VIMVideoPlayFile.m | 13 +- .../Sources/NSError+Extensions.swift | 18 +- .../Sources/NetworkingNotification.swift | 2 +- .../Sources/Request+Authentication.swift | 5 +- .../Sources/Request+Notifications.swift | 2 +- .../Sources/Request+Video.swift | 6 +- .../VimeoNetworking/Sources/Request.swift | 2 +- .../Sources/ResponseCache.swift | 2 +- .../VimeoNetworking/Sources/Scope.swift | 21 +- .../VimeoNetworking/Sources/VimeoClient.swift | 17 +- .../Sources/VimeoRequestSerializer.swift | 66 +- .../Sources/VimeoResponseSerializer.swift | 17 +- .../VimeoSessionManager+Constructors.swift | 21 + 58 files changed, 2068 insertions(+), 1247 deletions(-) create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveStreams.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveTime.swift create mode 100644 Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift diff --git a/Podfile b/Podfile index edefcd46..66f768a2 100644 --- a/Podfile +++ b/Podfile @@ -6,14 +6,14 @@ project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target 'VimeoUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/VIM-6124-Perform-Upload-Task' project 'Framework/VimeoUpload/VimeoUpload.xcodeproj' end target :'VimeoUpload-iOS' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/VIM-6124-Perform-Upload-Task' project 'Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj' target "VimeoUpload-iOSTests" do @@ -24,7 +24,7 @@ end target :'VimeoUpload-iOS-OldUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/VIM-6124-Perform-Upload-Task' project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target "VimeoUpload-iOS-OldUploadTests" do diff --git a/Podfile.lock b/Podfile.lock index 1555179d..b9feeed3 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -14,26 +14,26 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (0.0.1): + - VimeoNetworking (3.1.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-6124-Perform-Upload-Task`) EXTERNAL SOURCES: VimeoNetworking: - :branch: develop + :branch: feature/VIM-6124-Perform-Upload-Task :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: f50522749886d01fb0c0acceb3e159ac8dc0c4de + :commit: 469435314d27df0354c6585802e754ffce1220e5 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 17f8d451e4a168044f619315d0cd821669676e67 + VimeoNetworking: 64fe0a9f12d106c2fe1c54f4114b25a80931bf37 -PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 +PODFILE CHECKSUM: 9e12286bfda5079b5ad3c4de593e1712f6b515f4 COCOAPODS: 1.2.0 diff --git a/Pods/Local Podspecs/VimeoNetworking.podspec.json b/Pods/Local Podspecs/VimeoNetworking.podspec.json index dcd8eb61..c44c916a 100644 --- a/Pods/Local Podspecs/VimeoNetworking.podspec.json +++ b/Pods/Local Podspecs/VimeoNetworking.podspec.json @@ -1,6 +1,6 @@ { "name": "VimeoNetworking", - "version": "0.0.1", + "version": "3.1.0", "summary": "A library for interacting with the Vimeo API.", "description": "An iOS/tvOS library for interacting with the Vimeo API.", "homepage": "https://github.com/vimeo/VimeoNetworking", @@ -9,13 +9,12 @@ "file": "LICENSE" }, "authors": { - "Alfie Hanssen": "alfiehanssen@gmail.com", - "Rob Huebner": "robh@vimeo.com", "Gavin King": "gavin@vimeo.com", "Nicole Lehrer": "nicole@vimeo.com", "Mike Westendorf": "mikew@vimeo.com", "Jason Hawkins": "jasonh@vimeo.com", - "Jennifer Lim": "jennifer@vimeo.com" + "Jennifer Lim": "jennifer@vimeo.com", + "Van Nguyen": "van@vimeo.com" }, "social_media_url": "http://twitter.com/vimeo", "platforms": { @@ -25,7 +24,7 @@ "requires_arc": true, "source": { "git": "https://github.com/vimeo/VimeoNetworking.git", - "tag": "0.0.1" + "tag": "3.1.0" }, "source_files": "VimeoNetworking/Sources/**/*.{h,m,swift}", "resources": "VimeoNetworking/Resources/**/*.*", diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 1555179d..b9feeed3 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -14,26 +14,26 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (0.0.1): + - VimeoNetworking (3.1.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) + - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-6124-Perform-Upload-Task`) EXTERNAL SOURCES: VimeoNetworking: - :branch: develop + :branch: feature/VIM-6124-Perform-Upload-Task :git: git@github.com:vimeo/VimeoNetworking.git CHECKOUT OPTIONS: VimeoNetworking: - :commit: f50522749886d01fb0c0acceb3e159ac8dc0c4de + :commit: 469435314d27df0354c6585802e754ffce1220e5 :git: git@github.com:vimeo/VimeoNetworking.git SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 17f8d451e4a168044f619315d0cd821669676e67 + VimeoNetworking: 64fe0a9f12d106c2fe1c54f4114b25a80931bf37 -PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 +PODFILE CHECKSUM: 9e12286bfda5079b5ad3c4de593e1712f6b515f4 COCOAPODS: 1.2.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 6b50c4f6..eea65484 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,207 +7,215 @@ objects = { /* Begin PBXBuildFile section */ - 00C05031BBA5BA48A00FE41348F41BDA /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 49CF485D82938742667C3CB53CCE9FED /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02605A6A0E2F37A37F765B54D8435EFE /* VIMCredit.m in Sources */ = {isa = PBXBuildFile; fileRef = 029DD25355A20155F5263F91BB7FEB40 /* VIMCredit.m */; }; - 032716918FA2B8150F25BEA44FC1E35F /* Pods-VimeoUpload-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 048DF2FE55300A19AE363640BE8C2CA2 /* VIMUserBadge.h in Headers */ = {isa = PBXBuildFile; fileRef = 281BE9E67D00EF177F449FA07B3FB9C6 /* VIMUserBadge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 080339FE8D3D0888FDF6C05AFF7FC108 /* Mappable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2425F9FA4CEFF602F6F4A053F70B656 /* Mappable.swift */; }; - 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 994751133E5FF4982C5BCE1CAAB6A78B /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FF332A4A3B2E0FC72A18026068678FA /* VIMVideoFairPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = E062278A9F4389EDD1742AD9257524FC /* VIMVideoFairPlayFile.m */; }; - 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A255F1E920EA10EF5D5D5D29ABF77DA /* UIActivityIndicatorView+AFNetworking.m */; }; - 1439E0621A820C1E240A135EDB917A78 /* VimeoReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D394EBCF2013AC95F4F316F6683EA0C /* VimeoReachability.swift */; }; - 173FC74D6CDD662BB7A7820D48E92CAF /* VIMCredit.h in Headers */ = {isa = PBXBuildFile; fileRef = 223024B664957866BB751A1110F1B9F0 /* VIMCredit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 178CD9C9934A47118DBF6ABCEF74DE0C /* VIMComment.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D485D3D976CC90259E83A2E9452E4A9 /* VIMComment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 187D2040010AAE21EB338F950BA62F30 /* Request+Trigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0279AA9EFAF1A2B4A5CBF25821A5F353 /* Request+Trigger.swift */; }; - 19A239662363D8BFC6BA9BF3D5067368 /* Request+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6671E602410D6092439152EADE23607 /* Request+Authentication.swift */; }; - 1B098FF61D835DC05E4818A260B6954F /* digicert-sha2.cer in Resources */ = {isa = PBXBuildFile; fileRef = D1F5A4A4953624BBBEF0F5FCB89E5137 /* digicert-sha2.cer */; }; - 1B55EABBDFF3E11D188FC728597AD739 /* VIMInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = CC338E19D1B0972E20EE7505BA2A23D2 /* VIMInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C415F8572AB31B576839CD7D07F5ACA /* VIMThumbnailUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = F4690B8E90016909BB0EA81C311C0953 /* VIMThumbnailUploadTicket.m */; }; - 1CBE32C0E7A5B487D85887CECE9070E0 /* VIMVideoProgressiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = D112466303A0600AF69CB9E02EAA27E5 /* VIMVideoProgressiveFile.m */; }; - 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 13485EB89727E5D2EC453EE2ACF262B1 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20B1A3A44C5B99E3C0E0111980E2D166 /* VIMUploadQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = D91BABF53F46F9B94488819367CB559E /* VIMUploadQuota.m */; }; - 2158EA68FF692EC0E79E21A1868DDADC /* VIMVideo+VOD.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EDADBD03E681FF52A2DE74B6E5A00A4 /* VIMVideo+VOD.m */; }; - 247BEC62A7A059F149C2F1DEE37EC117 /* VimeoSessionManager+Constructors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E61F34F2E6B1E414299E9F4D8B5FFF8 /* VimeoSessionManager+Constructors.swift */; }; - 25C7F1E0679C775BC68F3F91A41898AB /* VIMGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2516A7CB0A50CB9CD1053367E53327 /* VIMGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 290A5C980B9B4A45125C22A3C6F4D52E /* VIMConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 635406386C5C563BE8F30C456CF4EBDE /* VIMConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 294377C03BC03F5CF2CCD7992872ECEF /* VIMVideoPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 0627D0F046BC1A05A689F1B332F10429 /* VIMVideoPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 003BDE303FE1CC5BA4F9B106DD2F7CCD /* VIMUploadQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3716400D089BF995F91A2FCE5CACA /* VIMUploadQuota.m */; }; + 00C05031BBA5BA48A00FE41348F41BDA /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = A6B901CF4204810849282DA3432E8C2B /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 032716918FA2B8150F25BEA44FC1E35F /* Pods-VimeoUpload-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03D7437E2933E8F2D84D7C7120258C1C /* VIMVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 16D39169B31656EF7684BFE1E1D00092 /* VIMVideo.m */; }; + 048DF2FE55300A19AE363640BE8C2CA2 /* VIMUserBadge.h in Headers */ = {isa = PBXBuildFile; fileRef = 24053D2894257238A8730B9073573411 /* VIMUserBadge.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09CCB2D01C908D1F18C168BFE2D015E4 /* SubscriptionCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419AEF0897969545F437860CF7FE8B54 /* SubscriptionCollection.swift */; }; + 0CA27B020872840789DDD453336E98C7 /* NSURLSessionConfiguration+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4CCA16CB4DA0BEAAF9E5FDC699E0620 /* NSURLSessionConfiguration+Extensions.swift */; }; + 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E8543B06D5A46B428E08BE3BC8B9E25 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0EBDE2B3D3B9C877D50C0D1949B344EF /* VIMQuantityQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 92BE1336A28EB4076DFE2007C5CC0CE1 /* VIMQuantityQuota.m */; }; + 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A4D7AFAE3FD308B081EEEDFB903ED6E /* UIActivityIndicatorView+AFNetworking.m */; }; + 15E9310FCAD4917B88DE4B7A40293D36 /* VIMTrigger.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D53468D1C81CA0547CF789B6BBA279 /* VIMTrigger.m */; }; + 173FC74D6CDD662BB7A7820D48E92CAF /* VIMCredit.h in Headers */ = {isa = PBXBuildFile; fileRef = 1987C1726A4ECD388F92C613C3901C4D /* VIMCredit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 178CD9C9934A47118DBF6ABCEF74DE0C /* VIMComment.h in Headers */ = {isa = PBXBuildFile; fileRef = 11B32D5B0AC4636B49B4686C20F3FE22 /* VIMComment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 193C20581E7FE079B9F905C18767C75F /* VIMVideoPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 85FA1FE99D7EB95F4D20DED65256B047 /* VIMVideoPlayFile.m */; }; + 19CBEFD2FE3B51BBBD6EB5C306DF1E33 /* VIMAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3D066919EE5CBF346AC0F67F4E49EF /* VIMAccount.m */; }; + 1B098FF61D835DC05E4818A260B6954F /* digicert-sha2.cer in Resources */ = {isa = PBXBuildFile; fileRef = FFB1DD6EDA97BAF845FBA2724A7C0787 /* digicert-sha2.cer */; }; + 1B55EABBDFF3E11D188FC728597AD739 /* VIMInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = AF2CF9B0653941976BEFD36BF1106037 /* VIMInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B9DAF4DF791C38FB91C4E7A38D79062 /* VIMActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C8C3258FFCED4DF57908D7C089E6CC2 /* VIMActivity.m */; }; + 1D5FB1A02A460CB09AE80A426471252D /* VIMLive.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A9C5813434BC6219ABB82CE647CF44 /* VIMLive.swift */; }; + 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F7089C91716E3744D691D08CBA119C1 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E2EA0508607A84659BC878E159CD2A5 /* VIMLiveStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49582A710D2FA9A39A3D318A19071A01 /* VIMLiveStreams.swift */; }; + 1EC80AD1D978C4A4D3F82C28FA58EA7E /* PlayProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D2783EEBEBD80F391B2E9561D564B74 /* PlayProgress.swift */; }; + 1F32D6BF08EB1CF5EB83BD7E17FD6D27 /* VIMPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 77ECC63F0D5FFCD103ED573C1D69080D /* VIMPrivacy.m */; }; + 231A81C92805B54EFD046C0FDD2F9FAE /* VIMVideoHLSFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B37DF56ABB3C3B31BCC79BD629FCDE6 /* VIMVideoHLSFile.m */; }; + 25379E1884028D67BCE71FEEA527EFEE /* ErrorCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF32E9662EE12350E3523AAB96B9D26 /* ErrorCode.swift */; }; + 25C7F1E0679C775BC68F3F91A41898AB /* VIMGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 41ADCAF32A9226395560D72DA6E3C950 /* VIMGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 265637986C671D48DE7FC3D3D42B7029 /* VimeoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6183A34FBC7EF8E47C6CA774C5C234D7 /* VimeoClient.swift */; }; + 2869715605BBE2B9F0B87C481140C4AC /* VIMNotificationsConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = E0DBA074C1A1EF7B2FBD34B015FE454E /* VIMNotificationsConnection.m */; }; + 290A5C980B9B4A45125C22A3C6F4D52E /* VIMConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 053845F6F48FFC8FA3C048741EE12B54 /* VIMConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 294377C03BC03F5CF2CCD7992872ECEF /* VIMVideoPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 55EAC4D12F2C78AD8A7DFE7FFF158860 /* VIMVideoPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2945C5B22511F26C276B9C23F35A10DC /* AFNetworking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */; }; - 29476636EA86BEFC4CB833D3BB7A52D7 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 37C980B8A834DB882EE016253A514531 /* AFURLRequestSerialization.m */; }; - 29F875173B766FA11C5852EA61C674DC /* VIMVideoUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A59DE65C23DA87346FB7BB1F08A38182 /* VIMVideoUtils.m */; }; - 2B0705CC26A4CBEE32A5A60284AED35B /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = BC9E61ED1EDFE2CD20FA90CF00D4608B /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D99923831FFCE9F73C0C7D1E9F850E2 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = E658A3C4548684F7BC6D6A4843EBEE23 /* AppConfiguration.swift */; }; - 2E50A1D999933C0305B3BD6C8E3DB6A8 /* VIMUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 49FDC86C4F0DDC07BF2B3A89084F05AF /* VIMUser.m */; }; - 301E7201FA2B9D755BCB08E3159E9F50 /* Request+Soundtrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A287772AED26189394F852F1383AC103 /* Request+Soundtrack.swift */; }; + 29476636EA86BEFC4CB833D3BB7A52D7 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C0545C6A0BB2E5FCAC25B6B48DCA078 /* AFURLRequestSerialization.m */; }; + 2B0705CC26A4CBEE32A5A60284AED35B /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4591C0BC7AC01DD3ACA0A8926A7B54 /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 30925D0003407DA31B1289D5CE154E56 /* VIMVideoProgressiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = E587C9FF29D88EE57BF70FD1A2E7F282 /* VIMVideoProgressiveFile.m */; }; 30F0BAE1DBB79BBB6CBD957EA8B89E4B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */; }; - 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 9181B76CF70F368A91B6164CF5EA35AF /* UIButton+AFNetworking.m */; }; - 325DB73E71BF50607177ED27D34C4DEA /* VIMInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = D8008689D0B9CEE5A8B4F22EDD838235 /* VIMInteraction.m */; }; - 32F90DCD5121984682C68D40A51EC126 /* VIMThumbnailUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = 58E8E3B2AB8BBBBA38D3F57103C1E48D /* VIMThumbnailUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 331895E3C644AC16BE2DFF952ACA9A1B /* VIMPolicyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C6F4E723ED9B6BE8833278899E2B7A /* VIMPolicyDocument.m */; }; - 341C039B056DC8521ACB07FDC4857104 /* VIMCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 23AB835CE25AE0CA04362D10838A3CF0 /* VIMCategory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34C88657FE7ABE9F833623F94952D253 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2A360A317E5BEEB0074445003EDB17 /* UIProgressView+AFNetworking.m */; }; - 350E7D287CD9C8932489485A5BFD6F87 /* Pods-VimeoUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35169A4520324E50813E653E223FA16F /* VIMAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = D53F12E8EBC660E39EA3C8787CA543C4 /* VIMAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35CBB7B255FD8D412AFCECBC4311A847 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 927C6F167862BCAC06F4E08000EB8C58 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 39A7BA428B81014747047554360D5933 /* VIMComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B670858BCB563B5FDA0DFAF36BAC42E /* VIMComment.m */; }; - 39B6EA71EDF5F8DDFEE1E4F5BEA0159B /* VIMVideoDASHFile.m in Sources */ = {isa = PBXBuildFile; fileRef = EF00725EFACBAD93B7F4DF1A20DC1F42 /* VIMVideoDASHFile.m */; }; - 39C4E7D235F2488DC19D3F16FFF5EF30 /* VIMGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = FF858E05AAA86C6C60607DC47DA2B2C9 /* VIMGroup.m */; }; - 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */; }; - 3BA7D30869081B9F81B6AD4DB1F37EA2 /* Request+Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8251D7E0AE21801085F5938A385FEECA /* Request+Notifications.swift */; }; - 3D0097FB9A164EF53868F633A5D83647 /* Request+User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D775ED9A8AEEA1BBA968B5740A34BFD /* Request+User.swift */; }; - 3DB6964EE0B28369CE1F7A6892E75CCA /* VIMVideoProgressiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = D3BA141A5553BAF7C116D19D1C669DC6 /* VIMVideoProgressiveFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3DD477AEFC34A1B8BE6C21CB3737112D /* VIMSoundtrack.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AF82FDAADDBD52AD4A5E5FD40451B8F /* VIMSoundtrack.m */; }; + 313CC415834728A2653DA14105740126 /* VIMConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 56AAABC6AF778F87DEB0B23C2E9D48A5 /* VIMConnection.m */; }; + 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 04D12C6544446F37488A73372ECD7402 /* UIButton+AFNetworking.m */; }; + 32F90DCD5121984682C68D40A51EC126 /* VIMThumbnailUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = E8E7383021E3C28DCFB7003B7AB0CFE5 /* VIMThumbnailUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 341C039B056DC8521ACB07FDC4857104 /* VIMCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FDD83F4E797B9E4EF28C138743CC6E9 /* VIMCategory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 34C88657FE7ABE9F833623F94952D253 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A81D196287250329C0B7B7181A74E8C7 /* UIProgressView+AFNetworking.m */; }; + 350E7D287CD9C8932489485A5BFD6F87 /* Pods-VimeoUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23203AB46E0B1066374BDDE11472401B /* Pods-VimeoUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35169A4520324E50813E653E223FA16F /* VIMAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ABCB52AD09380B5670C88214D8C76CE /* VIMAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3518FAB66E75C2AC434098F8DC95C2CE /* VIMRecommendation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1774CA527703D1CF85EBC2345BBFF1C2 /* VIMRecommendation.m */; }; + 35CBB7B255FD8D412AFCECBC4311A847 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E5896490FC1BBD2F4A1828F43CD796E /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37508AC12B9ED38F747EC85055974269 /* Request+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85994E98526B612F0F6742D5F61D1405 /* Request+Cache.swift */; }; + 3994E504660F6E69ED57D96E3DAF94DA /* VimeoRequestSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02BDFC75AF7EE167CA02D56FD1AAFA77 /* VimeoRequestSerializer.swift */; }; + 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */; }; + 3B6799B53665F7F1436612AFCCC090BE /* VIMPolicyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E4249EB439BB7C93B7122461EE090C0 /* VIMPolicyDocument.m */; }; + 3DB6964EE0B28369CE1F7A6892E75CCA /* VIMVideoProgressiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C6DB9B6917E46EC2510108E0D2432EA /* VIMVideoProgressiveFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3E5288CBF6B2BE080B33EB12E809F2B4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 40630E6FBAF3FA1BA0316B7DEAB82F44 /* VIMVideo+VOD.h in Headers */ = {isa = PBXBuildFile; fileRef = 149A190283760F475F91178FCB276A53 /* VIMVideo+VOD.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 409A333CEF46B3875FD07DFD2D9C351B /* AuthenticationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A17090BB86BF96FF7E88156C3CB28957 /* AuthenticationController.swift */; }; - 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; + 40630E6FBAF3FA1BA0316B7DEAB82F44 /* VIMVideo+VOD.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DC8A41923CB7ECC7B785FD6E670A22 /* VIMVideo+VOD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; 42AF1BB1ED090CC9E588A463441D09E3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */; }; - 430264544D67783EE06E5CBD9F8A7538 /* VIMCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B92013945EAA4735C74F5F20F119CB /* VIMCategory.m */; }; - 43E008C211B853777039F3785D922B98 /* VIMBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C550175B7EC7075E2835E8C7DCC2723F /* VIMBadge.swift */; }; - 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F6FB24A5536DD004B48F00834B72CAAA /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45F802D04B3BE0CAEC586C2F3016027B /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F5BC750D923B3B868099617A48936CF /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47EEFB29B92A111BE2E154B699814BBF /* VIMVODItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C5391EE3E5EBC61C92F45484F77F90B /* VIMVODItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C5624A087C10DE994D4F380D76D11CD8 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F4DAAC9FD07C2F53A8FCAB14DDC976D /* VIMSeason.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BD0889F5B218566401FFF6EFC7448B1 /* VIMSeason.m */; }; - 51047C1945103943F70BEADE83725630 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = D24A7C1D41EE2BA30BB03DAF0C03B000 /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57782C2C26EC21E455E8B710E011BBAE /* VIMPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = A33177A8F3A1862EEA26D30A1D63CC07 /* VIMPicture.m */; }; - 57A40C3321A9157AB2711E100C58DD2E /* VIMPictureCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = C99A95A93AB75AFFF2B725A21CFF7377 /* VIMPictureCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59660663BC5E565B0F4F994E3688083D /* VIMModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = ECF46B5E5956D18C9AAD34EE80C8F77E /* VIMModelObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A1D34D104D42B1EE399E23BCD7935A0 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 213E236A9902F5C48054532E31B83A86 /* AFURLResponseSerialization.m */; }; - 5AFC1E2FD02BA2FADA6BA4E264CD032A /* String+Parameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE1A0D9A33DD15FBE6EBBA8E2BC96A15 /* String+Parameters.swift */; }; - 5B6A5C2A7EC9E33337DE6287258CE806 /* Request+ProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9A61DA32392AD194FABDB69398E9DA /* Request+ProgrammedContent.swift */; }; - 5BA9E478846DD5BD2F10533663C65DB0 /* VimeoNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A0A4AB2432D657C9297E64DCDDB03A9 /* VimeoNetworking-dummy.m */; }; - 5D3BDA09F740ECC2062E1876B3E9397C /* VimeoRequestSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12603000BA159A15FCFE312613690391 /* VimeoRequestSerializer.swift */; }; - 5D862A3CE5B17C76E3F21ED62FBDB757 /* VIMActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 14988764C33C43F624F78A9FD05EA2D7 /* VIMActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FF671C4F478DAC06FFC03103078E43C /* Request+Configs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9717512502B2CBB64AF956ABFD3ECF10 /* Request+Configs.swift */; }; - 6002D7357AE628BBDB572FC9EFB211B0 /* VIMVideoHLSFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D06933F7D0190E13136B6084CCF19FD /* VIMVideoHLSFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 643CE7142699088977B0ACB353A4FE6B /* Objc_ExceptionCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F622C8797560A4BC9EDB9A36960BB2C /* Objc_ExceptionCatcher.m */; }; - 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 19CEB26626C9812FA30C7379ACA089D6 /* AFNetworkActivityIndicatorManager.m */; }; - 6573AF9ABA59AC8D1F52B07088197F71 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E1665CCFC918114440A9C679C0EBC34 /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 678D568B6F7293E48418DA96A3C9A81D /* VIMAppeal.h in Headers */ = {isa = PBXBuildFile; fileRef = D1C4237239681814FFDD6E43465463EE /* VIMAppeal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */; }; - 69B1AF537561D8F581165B58FCDD81FB /* VIMVideoDASHFile.h in Headers */ = {isa = PBXBuildFile; fileRef = DB074C96C719EAE42367359FBE57E21F /* VIMVideoDASHFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A4FBD31811C902A97F3B75EE81B0ADD /* VIMActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 08D1BA8A90EDC00E8EB28A886F2B4CD7 /* VIMActivity.m */; }; - 6B0432E81EC7132ADF0516729B74C724 /* VIMSizeQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = CF8F7E3CBB1B67B094851E251BC41BC2 /* VIMSizeQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42C73F918F74A0B30E7992CE1EB76853 /* VIMPictureCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9030EDE526F33AE457609C8466220643 /* VIMPictureCollection.m */; }; + 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 586519E5D5FB438C925CE15AAE22CF71 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4507742119523A6934ECCCCD328937E8 /* VIMUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 124E322BB1AC2D264A50206A59E74948 /* VIMUploadTicket.m */; }; + 45C5E5C88C1EB4F937EA8A8D61DB0C23 /* AccountStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3DDD452D8A4270BFFD48415D5A19622 /* AccountStore.swift */; }; + 45F802D04B3BE0CAEC586C2F3016027B /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD0521F511BD664E45EB41B58AF31B4 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 467821605636A2B9193545BB1990932D /* VIMSoundtrack.m in Sources */ = {isa = PBXBuildFile; fileRef = 287638321E192A350F152932FF8696AA /* VIMSoundtrack.m */; }; + 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47EEFB29B92A111BE2E154B699814BBF /* VIMVODItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EE2E2B9ADCB9544FC9FFCAC35EBF332 /* VIMVODItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 22172916D62479D06D5CF43E7D6221F1 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4981298872C3F1FA3EB6DF29D43C2931 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5E7710A26B1361770593626EA31E53 /* Subscription.swift */; }; + 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A7A0A0B5B1793FF010DD3CFDB5A4EE7 /* VIMCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = 5247546347E72D6B431752E31046FECF /* VIMCategory.m */; }; + 4C4E7F49FEA0E2B51A9FCE9382D4AF48 /* VIMPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = E444E11AE5A825A8EABCD76A8C4B243E /* VIMPreference.m */; }; + 4CA81BD4492C7D793741606C3D410330 /* VIMComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ECC7558C97F2EC5306C76D50C163A34 /* VIMComment.m */; }; + 4CCEE8AD3AB1532C4D32339D5A9F4FDD /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = C335747BAC89FD56550A201B22346E22 /* KeychainStore.swift */; }; + 51047C1945103943F70BEADE83725630 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D6092919464D508C8D86B2700DFA8ED /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53723F5259DD8CD633384A2291821642 /* Objc_ExceptionCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E3912B484138E27FC0A632EBA58DA2C /* Objc_ExceptionCatcher.m */; }; + 537BCA27C302C1D048F1D82069075E41 /* VimeoReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85BC7320C1C886A0FB389B093BA102C9 /* VimeoReachability.swift */; }; + 54D3FB5505D4D955DE3F274986E61A61 /* VIMUser.m in Sources */ = {isa = PBXBuildFile; fileRef = B4CB888AAB7CB5886ECEB1E6DA00DDF0 /* VIMUser.m */; }; + 56E5E28B1650515B91DEF816F96C09EF /* Request+User.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB3C01D5603521498E11475D64311E11 /* Request+User.swift */; }; + 57A40C3321A9157AB2711E100C58DD2E /* VIMPictureCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 074CB90AB4EE491A4175829E41A021F1 /* VIMPictureCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59660663BC5E565B0F4F994E3688083D /* VIMModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = BA95D72DAAF8256A3FCE22C2A19B3C4A /* VIMModelObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A1D34D104D42B1EE399E23BCD7935A0 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = C320181FBAA6419F9922C6DA04CE8858 /* AFURLResponseSerialization.m */; }; + 5A7CF07EA04BA6904C2F6D39B150D757 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1EB2D7709B876FBDFFBE5216FE08811 /* AppConfiguration.swift */; }; + 5B6320ED801A729CE23AE5745FB5F1F9 /* VIMVideoDASHFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BA6B448E7E4C5A88185668AF5E89E82 /* VIMVideoDASHFile.m */; }; + 5CC666EBAF9BD88DF747D1CB5CEDF811 /* VIMNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 6413471EE3D47C01A83213F98B23E644 /* VIMNotification.m */; }; + 5D353E5F24A02F78A2C5CC17B64683C3 /* VIMThumbnailUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 58510BC7E01D7BF9B0FF6F9B1299E292 /* VIMThumbnailUploadTicket.m */; }; + 5D862A3CE5B17C76E3F21ED62FBDB757 /* VIMActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 278F688842207EED37C8CC7FA26E7FD7 /* VIMActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6002D7357AE628BBDB572FC9EFB211B0 /* VIMVideoHLSFile.h in Headers */ = {isa = PBXBuildFile; fileRef = D16AB35B830FFEFBCA1A54FEECF00688 /* VIMVideoHLSFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F83CB5B79FD3B6F067543AF05B8459D8 /* AFNetworkActivityIndicatorManager.m */; }; + 6573AF9ABA59AC8D1F52B07088197F71 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B23AFAA8CFABF5F1D2C46768C75744A /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 678D568B6F7293E48418DA96A3C9A81D /* VIMAppeal.h in Headers */ = {isa = PBXBuildFile; fileRef = 975253FA96D61CB46588DC454929CA2D /* VIMAppeal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 977CC708C885349F45A1FFAA4DB28215 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */; }; + 69B1AF537561D8F581165B58FCDD81FB /* VIMVideoDASHFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 36F75015ABE74BD204B5D4CAB023DC61 /* VIMVideoDASHFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B0432E81EC7132ADF0516729B74C724 /* VIMSizeQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B17C17A5D09B854950C4832B06F111 /* VIMSizeQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6CB3E0E344A7E19BA2ADE572A9E91C7F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 6DF3CEDD6910937636F93F666E1FEF2C /* NSError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7907829F15403992DC9A4B548CD41E1 /* NSError+Extensions.swift */; }; - 6E4D1B3AADC1FD45199854A24E146F0C /* Request+Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = B44AB41921F9D9B0620A5C3553FE4B72 /* Request+Video.swift */; }; - 7093D03FB36F62140CD7CB962C129184 /* Request+Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B32A79195E4789E0D38A7C199CAB76A /* Request+Channel.swift */; }; - 719B05BF832EB807BD9313C39D9C1923 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D38065BB0B23FBE674985A0F8B72EC9 /* Result.swift */; }; - 7417910A809FB46D7CBE239E1E41F40E /* VimeoSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FBA6678CB2E7680B2E44F4375609022 /* VimeoSessionManager.swift */; }; + 6CDAC316B91CEEA2FCD0F7C9ED61BF30 /* VimeoNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 26736EE1946BB2EA2E54378979F41A8C /* VimeoNetworking-dummy.m */; }; + 6CFFF6EA4DB06FCB1320EF210520FCD5 /* PinCodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC02A4CF59E2671A57372CB540064CDA /* PinCodeInfo.swift */; }; + 706F3B0C597A952378A51F1873477426 /* Request+Picture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CBD22C0BDD11AAA880FD2800A9214ED /* Request+Picture.swift */; }; + 729562B22F1B677795997EC19EBE5E4D /* NSError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 568A1D7A6B9DCA4EEB4578D128A3D97A /* NSError+Extensions.swift */; }; + 767C08640B306D31713FD796812936C0 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1033E7DEBC541D9A9338CE7C50610E4 /* Constants.swift */; }; 7715E1A66A2F21A0C5F8B913E79FC9F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 778D21F2C8E74994835AF74CF639561E /* VIMVideoPlayRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 494E66C69C53C64522E95F995B56BAB5 /* VIMVideoPlayRepresentation.m */; }; 789D749690B308852115FF20CD982A69 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */; }; - 78A21D825370B0C218AEF351105AC567 /* VIMVideoUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C9EA8CD923B36DA3EAD55FD3879A502F /* VIMVideoUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FB6A99CF789B5BEA9456117EA2855947 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CE16B1BF75DF396768A0A3CFD968DB1 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A28D7473445BAC2DF8ED3294808DCF /* UIWebView+AFNetworking.m */; }; - 7DEBA2ACA54253C65CA292BCF51B476B /* VIMVODItem.m in Sources */ = {isa = PBXBuildFile; fileRef = E7FF72F2B598E25BCF0422AC7894A20D /* VIMVODItem.m */; }; - 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80E8BEBDC57B013AB61A2D4AFED25076 /* VIMVideoFairPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 90087B0D4E77D07B4E9F1D217680CB6B /* VIMVideoFairPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82752C5EBCDE2118D9B50C7623D5BF3B /* VIMAppeal.m in Sources */ = {isa = PBXBuildFile; fileRef = DF54671CD48BA10A8DA67E5817580E1A /* VIMAppeal.m */; }; + 78A21D825370B0C218AEF351105AC567 /* VIMVideoUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A6EB113AA7361D9D96093B066909AF1 /* VIMVideoUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BF68C901CE2FAF7115D7A89392132E12 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C8BF51A65698DB93A4F5D42350FC2FB /* VIMVideoFile.m in Sources */ = {isa = PBXBuildFile; fileRef = B7334D07BE6D5A54ADEC1615A9BA9D43 /* VIMVideoFile.m */; }; + 7CE16B1BF75DF396768A0A3CFD968DB1 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = DF7407EB66F9C5451125CC6E3C6435AF /* UIWebView+AFNetworking.m */; }; + 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F968612C43120B6D49943DC92DB0052 /* Request+Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23B28388FB56C83D78C55CD9134F573B /* Request+Toggle.swift */; }; + 80E8BEBDC57B013AB61A2D4AFED25076 /* VIMVideoFairPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = A1328F72B9E5AF74B40895C0730A01C4 /* VIMVideoFairPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8113369DB2CE9C201C875DA720235E5E /* String+Parameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B931CA1E789A92BFD8ECC5CBDBA3ED /* String+Parameters.swift */; }; + 811CD8F797817145A346855CE3194CCA /* VIMBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076122816BCBFBE66625E25D858ABEF /* VIMBadge.swift */; }; 82D554EC9FB9A62D935B6555325F5898 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C29192B1F683D403AFFD632D65221D49 /* Security.framework */; }; - 84F4F2115F97F8FE14D0BEBE38A772E0 /* VIMVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = F321BEF3CBD2446312D1D121E254290F /* VIMVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 85849DB10CF2386821DEB59E77404730 /* VIMUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E79D6C3283CB5EF1812B0021DA11FC5 /* VIMUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8588C695824D58E2A9EAAE4D4A0E1BB9 /* VIMPictureCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DD953AC1282A72EB724028504DB991B /* VIMPictureCollection.m */; }; - 862CA2F597532E9D63DB4C787AD17AA7 /* VIMPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 95DCAF0CD8E8A04FB849D0EB3ED32D01 /* VIMPicture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8670EB68C4D288954C15F2F9C2C935EE /* ExceptionCatcher+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54035CD32BBAAD35D60CCBDDEC9CEE44 /* ExceptionCatcher+Swift.swift */; }; - 86BE885A7FB6FC6F0B4E1C905DA7B64C /* VIMPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 63AC97C994F4A5DEDCFAB03FE2835587 /* VIMPreference.m */; }; - 8A689A9EF197DC68E6947A869A6EE657 /* VIMChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A5768E8C2A4AD09EE82653EC6A4E43A /* VIMChannel.m */; }; - 8BFB2E98B986C0843E8FB1D4C63DC4B1 /* VIMVideoHLSFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 761B02BADB3E7B60DB3FF23CD76B6AF2 /* VIMVideoHLSFile.m */; }; - 8C006C64C5E77BEBECE54877B7BA22F0 /* ErrorCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EB63AB5D89A08887565D82CBAC4A0A3 /* ErrorCode.swift */; }; - 8CE568F7A75458FEE8E5920F28460A1A /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CB779FF1FA13F0CA99A13B6A0857464 /* Response.swift */; }; - 8DC561474BEA410319DF3774BD2FE0D8 /* VIMMappable.h in Headers */ = {isa = PBXBuildFile; fileRef = C99148A0B79F2354BFE4ACBDE082A809 /* VIMMappable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E1AF09B6DC4CAE39BD8296809C3EB0E /* VIMUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 78D4C6E7DFAF7621B138929C43CEAD58 /* VIMUploadTicket.m */; }; - 8EA375C3F30127C965344B1369E6CC16 /* PinCodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF6081927D4DC329FD7ED0F883D3B576 /* PinCodeInfo.swift */; }; - 91258FC91233FB6DA9C05902C106514B /* VIMUploadQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = B784B3FDEB773915E04502100EB6F701 /* VIMUploadQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91DFEC02233D3AB83A35E5756A18A36C /* VIMUserBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 1541E9FB35206F5192232467FC5B429D /* VIMUserBadge.m */; }; - 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = BFECB493111928B6FBC7E30A53CD6C0C /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93096AB36C54BB032194725968A44EA3 /* VIMTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C1DAA99F189991E9808E85A60902767 /* VIMTag.m */; }; + 837388C35B7A8917315A208E6EA54D49 /* VIMLiveChatUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E52F63F91C276CD217160265C6521C4 /* VIMLiveChatUser.swift */; }; + 83FCDB17570F4ADA7D366C700736120E /* NetworkingNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43B9196F6EC54907B8C7C03C6F2FD40E /* NetworkingNotification.swift */; }; + 84F4F2115F97F8FE14D0BEBE38A772E0 /* VIMVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 94A2963496CBF1D4C44ECBA1D783CE49 /* VIMVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85849DB10CF2386821DEB59E77404730 /* VIMUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = E3B33CBD784C5CC0C9CA499EAF079807 /* VIMUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85A609C171BB4D1D23D027237BFBF7D4 /* VIMAppeal.m in Sources */ = {isa = PBXBuildFile; fileRef = E2CEF2ED5A0E7815E9E8D4C78D59F44B /* VIMAppeal.m */; }; + 862CA2F597532E9D63DB4C787AD17AA7 /* VIMPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 23ED22E21D77AADDD752F77A41CEBC92 /* VIMPicture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 864F11B2FB4805BB730B0B929DC09498 /* VIMTag.m in Sources */ = {isa = PBXBuildFile; fileRef = FF233975FF531F028390C83E881ACB0A /* VIMTag.m */; }; + 864FD16EDBB5343B65EC37FBADD2F0F3 /* Request+Trigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2971FC192ABB5DB91E34062D7828114 /* Request+Trigger.swift */; }; + 86D7A1DF2852184B6C61D0ABB3B164CF /* VIMVideo+VOD.m in Sources */ = {isa = PBXBuildFile; fileRef = EED53863EF737035C99BED54F123B01E /* VIMVideo+VOD.m */; }; + 86F10D77DE9504655628925288EC297C /* VIMVODConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D407DADF950894F8DA630A7035A18A9 /* VIMVODConnection.m */; }; + 8AE6353E2FBBA60948388B3351DE48A6 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AE0BCE76395C7777050E3A008BBB0DB /* Result.swift */; }; + 8B5E3846BE778BF092BE4551A48B208A /* VIMVideoPlayRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7230FAF41E404CCAC4D74CA406827057 /* VIMVideoPlayRepresentation.m */; }; + 8D9A10A6ABE05F6E3F774486FDDD90F7 /* VIMChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 88BE4FC1F681617CAF8FD663DFD66784 /* VIMChannel.m */; }; + 8DC561474BEA410319DF3774BD2FE0D8 /* VIMMappable.h in Headers */ = {isa = PBXBuildFile; fileRef = CD91054962150A3989B2B75468A66B3A /* VIMMappable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91258FC91233FB6DA9C05902C106514B /* VIMUploadQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = E3E247601A359D57EC8F553F9C64CBF2 /* VIMUploadQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5BE0EE692E13BAB3C21C81744A5D29 /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9336820057A592619B89406F1DF4AEC9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 40C278A2D7295B9C745A8F7C78D039A3 /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = F482E1B7506500767CF4C18ED47EC41B /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 95FFAABEF0F35C113EC0189D39FF80A0 /* ResponseCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C2608F23A5BD6202F176337A9F85D70 /* ResponseCache.swift */; }; - 99B51DB5B80BBD7A2597A8E79C34290D /* NSURLSessionConfiguration+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E057FC5D3359A0584EF6495E7E3F6939 /* NSURLSessionConfiguration+Extensions.swift */; }; - 9AA200004AD2C86C440D0365294E8C25 /* VimeoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BC19A9538D0325AF47F77D4BDAB05E5 /* VimeoClient.swift */; }; - 9E155F6AE09BB4243CAE115081560893 /* VIMTrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A6089F06B69AA4011F16D1BE20C6240 /* VIMTrigger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9FE718C13D939CB402496CD9D1644692 /* SubscriptionCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = A784B675172C4B624597642F4BFE56E7 /* SubscriptionCollection.swift */; }; - A08EFFFF7DFACA49EB5F271ACD172E91 /* NetworkingNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0B7E1AC52305E19ED018CF401606970 /* NetworkingNotification.swift */; }; - A280ED07778424BB4FB5E2596B927323 /* VIMQuantityQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = D39B2D537CC8914B5AB105B380641859 /* VIMQuantityQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A346ABB83FE181956A7DC49EDF3EF2DB /* VIMVideoPlayRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = A5CFEC28DA0D60B074FCFDEBB948B940 /* VIMVideoPlayRepresentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3591DEDA776B48C026E7F9144981E58 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 600D472EDC99CA818353A5D89F987011 /* AFAutoPurgingImageCache.m */; }; - A398D63C8DED664D99A864D79881A13C /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BFCEC6FBC3145714CC6CF4DFC949341 /* AFImageDownloader.m */; }; - A4CD0619CCDE6268C1769EF1379D3C5F /* Request+Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3955D9A7EC2CD5C86E892193E62E9E0F /* Request+Comment.swift */; }; - A73687DB3AA0983108BAEBF72C2340ED /* VIMPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = A95F8642BCADE8FFFF3519DABF17AB95 /* VIMPrivacy.m */; }; + 937C8560C042D0CC1ACCC3618750B857 /* Spatial.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2119BA99E14002BF2CBE326B9FDE611 /* Spatial.swift */; }; + 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CE2728865671271B80E3729264F7010 /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B90B6BC0EE7E2771D386409E2520A1 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98904000AD1F8FA3A3D945866291A42C /* Scope.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4AA7AA36603ECE729E1CA68BA17170 /* Scope.swift */; }; + 990790C6F911F26D24DF9A81CA970FCC /* Request+Configs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 002DEE52AA04BFB0F28F813457694C4E /* Request+Configs.swift */; }; + 9E155F6AE09BB4243CAE115081560893 /* VIMTrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = 32264BB52E443960700538AA6210172B /* VIMTrigger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1710C525C025D208EB261429E490278 /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C63ED0D65754AC46BA5BD265905927A3 /* Dictionary+Extension.swift */; }; + A280ED07778424BB4FB5E2596B927323 /* VIMQuantityQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = E06EAE5F0C5F509843323CD31A65EE3D /* VIMQuantityQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A346ABB83FE181956A7DC49EDF3EF2DB /* VIMVideoPlayRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = D1AAD004B2391E45D0CFDE6BD5161C45 /* VIMVideoPlayRepresentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3591DEDA776B48C026E7F9144981E58 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B4F6AAC38F1635780B6184FE5EA46AE0 /* AFAutoPurgingImageCache.m */; }; + A398D63C8DED664D99A864D79881A13C /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 809D7871F89F10847F736FD51B6E572F /* AFImageDownloader.m */; }; A8C297643282E0CF5E7DF9CB6E23A0D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - A8E116A9A098FE44D9CEAA85FCF9D408 /* VIMTag.h in Headers */ = {isa = PBXBuildFile; fileRef = CA212CD04BA30762B1CD913421957487 /* VIMTag.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8F1B4C9D1D600563C86DF374BB1FF59 /* VIMVideoPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 68D1AD311A8197BF776022C79C5F1ACE /* VIMVideoPlayFile.m */; }; - A90F6D31147BD8FCEC444B7D99EB4798 /* AccountStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1251E50741E644D6312C93A72D228CC2 /* AccountStore.swift */; }; - AC2F13906A8DF6AB50AB826835026D89 /* VIMTrigger.m in Sources */ = {isa = PBXBuildFile; fileRef = F268DB0DE841D483B2E3C48B95F2013B /* VIMTrigger.m */; }; - AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 01FD7E491D786675786392B66C27218C /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B16A078FC7FBC172A266A336AEF7F673 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A0648207A189AF57F74C57B6416EFA4B /* UIRefreshControl+AFNetworking.m */; }; - B1A9884315D8230C190E19E5B8E87C5A /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F86DFC5D05E754156CA58540DAA1BAC /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B259265059C9F541C99A43E37B2CEFA6 /* Request+Picture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A1207562C5BD2A71A7DC1A59A824D64 /* Request+Picture.swift */; }; - B3389B8752DF8E9154754220D09D26C9 /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88A43F94D3F984AA9F607E6D336933C /* Dictionary+Extension.swift */; }; - B793155915EDF853F2B515F87230AEC4 /* VIMObjectMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 813FFFC7FD25CCBEFAADC204524CBF26 /* VIMObjectMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7A153052BBBE07EE5C653777F052C3F /* VIMSoundtrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 439CBA3DC46A23846FBD30F048BE086A /* VIMSoundtrack.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9331886EB47FEE9CC9739C45CEE35CB /* VIMVideoPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FA3810B9E6829C7403D5D0F19EDACFD /* VIMVideoPreference.m */; }; - B9B6393A6D55E217BE87C42FAD925D07 /* Objc_ExceptionCatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F578FD9D3A32CB94B4560392C77383F /* Objc_ExceptionCatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD3361E6028D2FD289D7E9BEF5392A6A /* VIMRecommendation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E34B0E33381605BC20762BA521A846C /* VIMRecommendation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF2E64C3355CB069145EAF61D1223910 /* VIMVideoFile.m in Sources */ = {isa = PBXBuildFile; fileRef = EB013DBE7F6A441F3FC60D8F0F84FE89 /* VIMVideoFile.m */; }; - C1539E868EAA683B1B80A0F530ACCDF1 /* VIMVideoDRMFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B409357FA7F1EE47504EB11F838F1FD /* VIMVideoDRMFiles.m */; }; + A8E116A9A098FE44D9CEAA85FCF9D408 /* VIMTag.h in Headers */ = {isa = PBXBuildFile; fileRef = D65AB8A3F8709D8E03A1E55F02815E95 /* VIMTag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA25051CDC01C768E6E46255EB93F2B9 /* VIMObjectMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E3FABD02BFBCDCFB4C132537520E96E /* VIMObjectMapper.m */; }; + AB98637833B7A86D89C477A862540969 /* VIMModelObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 88144FC6064F1266CC84EBAFAEF323C8 /* VIMModelObject.m */; }; + ABEBAECC5140ECAB02E412F3DE476B27 /* Request+Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF48E0E4E9723EA5C6DC20322B121BD /* Request+Category.swift */; }; + ACA6C556378A7464AB80AC8930B0AC03 /* VIMVideoUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 973068FAC212B157A116787EFE974C00 /* VIMVideoUtils.m */; }; + AD81E630EC401FD350FF7C29C05F25AD /* VIMObjectMapper+Generic.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9908ACB446096C492A446BA88FA166A /* VIMObjectMapper+Generic.swift */; }; + AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 063F1229CC3B5D19372FD50F1A721E17 /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFE2D5FF4D78A45B80385BC8DAB5F851 /* VIMCredit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C335F5C6E5A7FFCF07AECFE11022662 /* VIMCredit.m */; }; + B1305241D2F650681B2EC3BF76A63FF1 /* VIMVideoFairPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C2CF949A57B249425698C5703F2B5BC /* VIMVideoFairPlayFile.m */; }; + B16A078FC7FBC172A266A336AEF7F673 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = B8D6AF7E79B10A496A13A6362D6D0ED1 /* UIRefreshControl+AFNetworking.m */; }; + B1A9884315D8230C190E19E5B8E87C5A /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A9C62A5A324AA9AE6DEFBB9032EA5E7 /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3D9C7D0ED3C02560E4221B78A345065 /* VIMUserBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EDCAC22E80332414E26B22B5ADAF2A6 /* VIMUserBadge.m */; }; + B793155915EDF853F2B515F87230AEC4 /* VIMObjectMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 087D35323DA57BBD3EB0B15AAA2CECDE /* VIMObjectMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7A153052BBBE07EE5C653777F052C3F /* VIMSoundtrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DDACB879F6B15EC0842A540C2EC8E17 /* VIMSoundtrack.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B87677143190F1C49F87267E39D745F3 /* Request+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FA8F0CBBBE91CA96C4FE3E762F453C1 /* Request+Authentication.swift */; }; + B9B6393A6D55E217BE87C42FAD925D07 /* Objc_ExceptionCatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = BF0905C45FA9A8AD70DBE8F5912CDD71 /* Objc_ExceptionCatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD3361E6028D2FD289D7E9BEF5392A6A /* VIMRecommendation.h in Headers */ = {isa = PBXBuildFile; fileRef = D895586985F339C17BED2110A40833B7 /* VIMRecommendation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C050293AE104F3869527D11E7822DB7A /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 613E823A25BBCE75BC69C43C89BF7433 /* Request.swift */; }; + C3FEBACE24CAF319171EBDB795F99A3B /* VIMLiveTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EF629404A7DC11EC1616617F52709AD /* VIMLiveTime.swift */; }; C50D0C30AF8712AFFA42B7F9C4AC2C7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - C7A8FB48AC76C370F585B5E609AFC6F9 /* VIMVODConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 40FF5ABC89E5B4D81BB332308EBD6ABA /* VIMVODConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C99047215776E7CB95C77ADC520B7001 /* Spatial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5427FA6B4360346236E6133084DFC10E /* Spatial.swift */; }; - CB84112F8B8F712719EA050973CCC8D1 /* PlayProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C69108CD986B77A9C0122212FD6613 /* PlayProgress.swift */; }; - CCFCAB315F227FF02C9DCACB24FA0AAD /* VIMPrivacy.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BD0E4A9E13D4E5939E74CE749ACF61 /* VIMPrivacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD632493290A2E4430F2F12E548B03B2 /* VIMNotificationsConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AF9D80E0A02BB32BC9B773852EB179C /* VIMNotificationsConnection.m */; }; - CE513A764AEF1DF8E3788D05B03CD15E /* VIMPolicyDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = A69D06730C5B3566A7B8FF5A91C529C1 /* VIMPolicyDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE5AC9A4F95093069A44087A1689ACCB /* VIMNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = CB8AD1BB40CAF74E14801DCD2423742E /* VIMNotification.m */; }; - CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C61AA5DF51D49E9C9ADF4B82C45FE7B /* AFSecurityPolicy.m */; }; - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */; }; - CF276AE6C6EFAF02D2DD4373E92D0648 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1625E43ADF6E7014140E962E4D8D2E15 /* Subscription.swift */; }; - CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 01B662642B6C94DAE9E304C3539BB0F0 /* AFNetworking-dummy.m */; }; - D1D2D9F03C9CBF28F01F5F293325881F /* VIMVideoDRMFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62CA840DF965405A11E44123254BAC /* VIMVideoDRMFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D27E342A895F8F0BF51D6B926ECA83FF /* VIMObjectMapper+Generic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE2618631D9AF7217C1FC477FE2046E /* VIMObjectMapper+Generic.swift */; }; - D2D5FEA35F9DC0817488AC6B206C9C5B /* VIMConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E40E32356AA402232F099288457708 /* VIMConnection.m */; }; - D30636F1DCCA97413888F0D0DFB63ADF /* VIMPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 54DC90B45F8449D72BD99F888633B19A /* VIMPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4812514244A32F4EF17A3403CEB49E0 /* Scope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DFE210185943D679FFCBBA4B56CF1A6 /* Scope.swift */; }; - D4E80BD7EAAB83200183110578A80591 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CA3350835CEC5107C6C293FE2D04E77F /* AFURLSessionManager.m */; }; - D59D192A899629E78E80F8EA3AD0122B /* VIMModelObject.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA77B71C751EBAB48B5E4F1CB110265 /* VIMModelObject.m */; }; - D71682AD848B134EB74BB0B27F9EE2F6 /* VIMNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = F780713BAF9F48FFB39AC81244609869 /* VIMNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D73A12F20CB1A1B5669AF75288D52029 /* VIMUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A8AD460DA5A2F6BCCC1E450EFCD4B60 /* VIMUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7B8668CAC424FB726E911830640210E /* Request+Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AED40431616221804026E870D2C4C82 /* Request+Category.swift */; }; - D8384F0B4B1075A71813D409FD144A3F /* Request+PolicyDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58B62EE71CA018F665D8A742ADA3787A /* Request+PolicyDocument.swift */; }; - D90CAB5734D50648EE042D7F6EF739C7 /* VIMSizeQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 20B9A2C2DE00876AF465AD16D2C4C5BA /* VIMSizeQuota.m */; }; - DA1A46D62BEA2431AC6FD66D58E28C27 /* VIMAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 338DFD9D7A1D0BF695F33079268D7506 /* VIMAccount.m */; }; - DC395092187FBC815E499B755553E751 /* Pods-VimeoUpload-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */; }; - DCD624F830FDEDF0AE7E3DB66BBFFEC2 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = E79ADD6A0AFBC97CBC10D3AC1EA024DC /* Request.swift */; }; - DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B4C942B4810471391926C69DDF06F459 /* AFNetworkReachabilityManager.m */; }; - DDC2160DEE810F9EB54D5F4A4085FD06 /* Request+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FECF370ACCB82ABBBADEB2C23066C4F /* Request+Cache.swift */; }; - DE38B59B4D7D872FEF317D301D7D0113 /* VIMVideoPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 528FFF37101F041C21101734F752C2AE /* VIMVideoPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E23B9A6F533461CB33C0FA6FB59E3AB2 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = AF5691A664BC371E586B7A9B0EA405C8 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9083640FA1E37FD7F1CD8C3D3113F71 /* VIMVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 70A33F9F7F54570EFF69A144E3A3F760 /* VIMVideo.m */; }; - EAEBAD0876E9C66617B5366DC192ABDB /* VIMSeason.h in Headers */ = {isa = PBXBuildFile; fileRef = 14EA79709F08DA21BEFAD6B727216E8A /* VIMSeason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D84ED393688D7F4321FF3478294DAAA /* AFHTTPSessionManager.m */; }; - F1201DC66104CE2A45B7D54394115AFC /* VIMVideoFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7FE012B283AB95DB394786375AF14C /* VIMVideoFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A85F49E86198194EBD238BC4D17B241 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F28BC46F4F246E19C0A9B040C5834B32 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9F540643D34B036DF1F955F1B4921C /* KeychainStore.swift */; }; - F2D899C7AA0D7FC20160091BB9D31CF3 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A0EACC1726F08952CBA6D09D34A5E69 /* UIImageView+AFNetworking.m */; }; - F42023CADF80388A7EE24CDC3378D896 /* VimeoNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E698DE1E56024C0E969710944608D8 /* VimeoNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F42AFA87354F2430D2381ABF91869006 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3731BACEDB31E0440FF7D8D8C0C5E492 /* Constants.swift */; }; - F51ECD19F851C26CEB4925B83D85ABDA /* VIMVODConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 6402A355C8648B1DF96ACEBE585B656F /* VIMVODConnection.m */; }; - F5B609F28B2E1EBF8AA9348E28333378 /* VIMRecommendation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A4BE21C00C1529F947AEADC6AFEC0AB /* VIMRecommendation.m */; }; - F6258BE02142A4CCAEBB00A2C4CEE82B /* VIMObjectMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = AE0DF6D9E98751FE374466891CF22E93 /* VIMObjectMapper.m */; }; - F69AEBDF86112551CBE86B9A63D569AF /* VIMChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = B7F8E371904C34C30A4498FCCBE5F2AB /* VIMChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F76D02044108AE9B76A2EBC583A3F403 /* VIMProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70B44A30D123EB8B4E494C3750DC262F /* VIMProgrammedContent.swift */; }; - F80A5BF96718E74CF0164FF1CF6CACE6 /* VimeoResponseSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5E07926E2F0D6EBCCF626360CF3A857 /* VimeoResponseSerializer.swift */; }; - F82C4C45E9CC756A62AA0F72D001B83D /* VIMQuantityQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 33B7F78148EB2BCFE6839B0A753DA5A7 /* VIMQuantityQuota.m */; }; - F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = D65690666F392CD6883791300864C4BF /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F92477EC3C798D43C7DA759DF0AFDE34 /* VIMNotificationsConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 500FE9C937B576F7F751188E9C8B58C2 /* VIMNotificationsConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C51F7FE4EFB5491C81C2BD82597DC0EF /* VIMVideoPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 19FAC3BA1D697B48272C1677518BEFAA /* VIMVideoPreference.m */; }; + C5216BDC40CF312A70ECA56DF5C21864 /* VIMInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 950BD159D58CE92F402BBAB66465DE38 /* VIMInteraction.m */; }; + C650CC4AF213C8559BC0EBD8418819A6 /* VIMProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628BFC2DEB2CCA0CC4CEFA489B407AA3 /* VIMProgrammedContent.swift */; }; + C7A8FB48AC76C370F585B5E609AFC6F9 /* VIMVODConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 9526C61F835808A6B7FA2E9E882109BE /* VIMVODConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAB95DE480716810D329F134A24EF989 /* VIMReviewPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F081230D6019BBC85EB4E8B1C0846F /* VIMReviewPage.swift */; }; + CCFCAB315F227FF02C9DCACB24FA0AAD /* VIMPrivacy.h in Headers */ = {isa = PBXBuildFile; fileRef = 211D21902A27187BB9A6CBCFDF54C734 /* VIMPrivacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE513A764AEF1DF8E3788D05B03CD15E /* VIMPolicyDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 054FA7F7A2C705EB16FA99EAD39768E7 /* VIMPolicyDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 052E7814C47996F86C13B71099AC1077 /* AFSecurityPolicy.m */; }; + CED12BB88FEE708DB47745F5857012D5 /* Request+Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BDAFE6138268993BA22EC2BA977CE78 /* Request+Notifications.swift */; }; + CED879759741E3F812F32CE57FB72729 /* VIMLiveQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4099B24520772D5AD7BDC99F612E9EB9 /* VIMLiveQuota.swift */; }; + CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */; }; + CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AE88B0D343D0E95B717C68A0B158781 /* AFNetworking-dummy.m */; }; + CF44A759B149E45255D54C33ECC58445 /* VIMSizeQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FE657F6AB369E7F495FB2578B617113 /* VIMSizeQuota.m */; }; + D19E4DB2AEC0FC7BA37078125F804A43 /* Request+Soundtrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 679592049C9804FB951BAA37DE2B4671 /* Request+Soundtrack.swift */; }; + D1D2D9F03C9CBF28F01F5F293325881F /* VIMVideoDRMFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B639446FA6F412610BA87432738461 /* VIMVideoDRMFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D29CE3B4936E30E40BC49BCBE051E6E7 /* AuthenticationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D648E4B25C16FDBDEC0797AB2BE5007 /* AuthenticationController.swift */; }; + D30636F1DCCA97413888F0D0DFB63ADF /* VIMPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BA48ED20026F05AF4A74144DF111CD9 /* VIMPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4E80BD7EAAB83200183110578A80591 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 24B19FCEF1EC11B2CA4858D49EE8BB60 /* AFURLSessionManager.m */; }; + D5CB48412364BD732AE9F5687C9DB020 /* VIMVODItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C329F17281C1736B75339A4D764E279 /* VIMVODItem.m */; }; + D71682AD848B134EB74BB0B27F9EE2F6 /* VIMNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C736020CFF02A03665D1F8205DCFEAE /* VIMNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D73A12F20CB1A1B5669AF75288D52029 /* VIMUser.h in Headers */ = {isa = PBXBuildFile; fileRef = EF9E166E864267D6171DC8FF81515CFB /* VIMUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D73AE6017ADC0EF9CA84D0E02250C2A6 /* Request+PolicyDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FAF01EF36517F4FBE35E4FEA5AA83AC /* Request+PolicyDocument.swift */; }; + D7AE1DD407A36AF40EBB0C662B62D505 /* ResponseCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9609A25E8F530B7CBC56B003E5A0750B /* ResponseCache.swift */; }; + DC395092187FBC815E499B755553E751 /* Pods-VimeoUpload-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */; }; + DCF19474199F4EA958137F6B5F304CD7 /* VIMLiveChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D7F41BC0B992675B6B1D1C460863C4 /* VIMLiveChat.swift */; }; + DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E4DAE619CE7FAF272F9A37C39488F2B0 /* AFNetworkReachabilityManager.m */; }; + DE38B59B4D7D872FEF317D301D7D0113 /* VIMVideoPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E54A23CFD10B9010DF550B5FF111DED /* VIMVideoPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF09590E7A5BF4A32212FE8A114589EF /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FBB8F3B5297FB637EEE888393828C5F /* Response.swift */; }; + DFA98792F73CC575F29CD10916103410 /* Mappable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2256DF269F200E54F23366139302E0 /* Mappable.swift */; }; + E23B9A6F533461CB33C0FA6FB59E3AB2 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = DFC58F47C9DD7196415DDFB9B6BC4A30 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E36E4818037EACFB6946DA8229948E6B /* VIMLiveHeartbeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF3023B138669B4B95A009E32DB8BB3 /* VIMLiveHeartbeat.swift */; }; + E43218932402D46FD0FE12CF83CF807D /* VIMVideoDRMFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A4E139A3CA72544668FBA60696E4E83 /* VIMVideoDRMFiles.m */; }; + E4A6474C6D3CED3DD82258EBF50A9FFC /* VimeoSessionManager+Constructors.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0C704A7502C2125D2158B955B598A3F /* VimeoSessionManager+Constructors.swift */; }; + E8D92DC026B209771BD949E05D3AFA33 /* ExceptionCatcher+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = E88A8D19DDE4FA9447EF624510036F40 /* ExceptionCatcher+Swift.swift */; }; + E94E39B8FECDD3842F5FB8FBEFEB6054 /* Request+Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 382B06B34D2454A8F5661BF34FBECDD2 /* Request+Channel.swift */; }; + EAEBAD0876E9C66617B5366DC192ABDB /* VIMSeason.h in Headers */ = {isa = PBXBuildFile; fileRef = 237AC7DFD930C2E41A28BC277C0E5080 /* VIMSeason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 85ECA743434223FD5CD6B7F01E353850 /* AFHTTPSessionManager.m */; }; + EC5A268ACF995CA30027C6CF627A8B8B /* Request+ProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3776C7660DC6C3625AA0D8F5FAA309F /* Request+ProgrammedContent.swift */; }; + ECD8E19C454CE6D614ACBD223FF43C2A /* VIMSeason.m in Sources */ = {isa = PBXBuildFile; fileRef = 24F68E6A31E9A07717BA96E713B27524 /* VIMSeason.m */; }; + F1201DC66104CE2A45B7D54394115AFC /* VIMVideoFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 51FBA33A4F10A204FC351218C64318B4 /* VIMVideoFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = A2617AC84E29E2531F9A850D9ACB32F0 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2D899C7AA0D7FC20160091BB9D31CF3 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = BD32BEB0442F9700B6A7059686E09FD6 /* UIImageView+AFNetworking.m */; }; + F35673701FC7573279DE0CC68E549B11 /* VimeoSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF971A027E87B257D7A8A2CDF166218 /* VimeoSessionManager.swift */; }; + F3F52817DF323371086B21F563A1EEE3 /* VimeoResponseSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3A92DCA092DA862EE4829F35614FC04 /* VimeoResponseSerializer.swift */; }; + F42023CADF80388A7EE24CDC3378D896 /* VimeoNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = FFB3B19EF39E15B68440047330F5C8C2 /* VimeoNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F69AEBDF86112551CBE86B9A63D569AF /* VIMChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E53C77939A0A7EB1AC9CE305AECE884 /* VIMChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = C7BE56B849B6D01F2998F31D2E3A1584 /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8DB5B57BE4B167EF10DAD14072039C0 /* Request+Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D621C64C285F2F3F6D2E94D5478904AB /* Request+Comment.swift */; }; + F92477EC3C798D43C7DA759DF0AFDE34 /* VIMNotificationsConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = AFFFEF5CBB05177827BED4B2A494E939 /* VIMNotificationsConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; F94CAA71DF535013FE840C72ED995ACA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; - F9988F40EBF406C9B8DFBBED61ECFC9C /* Request+Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B39620FF19ACEB51C1DEA18A7A12B2D0 /* Request+Toggle.swift */; }; - FEF6EACE962EAE70E2EAC5F3C83EF7C8 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = A6B196AB2ADA189C96F4A92DF020A2AB /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA55E421C1662BBECDB85A47D2BEE5E8 /* VIMPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DFB2B113DAAEB5477BEC12A8E4CAC2B /* VIMPicture.m */; }; + FBD54579F7A263415943EB203D81370C /* Request+Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FDE2C9BA85F590260F20060AB242CD /* Request+Video.swift */; }; + FCFD3758BFB63793A511AB04B1FE672C /* VIMGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FE53B38466FDDC7ECA1B81488B3A06C /* VIMGroup.m */; }; + FEF6EACE962EAE70E2EAC5F3C83EF7C8 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = B21518236153EC3A64EEFEBECC69EA0F /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -263,256 +271,264 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 01B662642B6C94DAE9E304C3539BB0F0 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; - 01FD7E491D786675786392B66C27218C /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; - 0279AA9EFAF1A2B4A5CBF25821A5F353 /* Request+Trigger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Trigger.swift"; path = "VimeoNetworking/Sources/Request+Trigger.swift"; sourceTree = ""; }; - 029DD25355A20155F5263F91BB7FEB40 /* VIMCredit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCredit.m; path = VimeoNetworking/Sources/Models/VIMCredit.m; sourceTree = ""; }; - 0627D0F046BC1A05A689F1B332F10429 /* VIMVideoPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.h; sourceTree = ""; }; - 08D1BA8A90EDC00E8EB28A886F2B4CD7 /* VIMActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMActivity.m; path = VimeoNetworking/Sources/Models/VIMActivity.m; sourceTree = ""; }; - 0A255F1E920EA10EF5D5D5D29ABF77DA /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; - 0C2608F23A5BD6202F176337A9F85D70 /* ResponseCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseCache.swift; path = VimeoNetworking/Sources/ResponseCache.swift; sourceTree = ""; }; - 0E61F34F2E6B1E414299E9F4D8B5FFF8 /* VimeoSessionManager+Constructors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+Constructors.swift"; path = "VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift"; sourceTree = ""; }; - 0F622C8797560A4BC9EDB9A36960BB2C /* Objc_ExceptionCatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Objc_ExceptionCatcher.m; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.m; sourceTree = ""; }; - 0F7FE012B283AB95DB394786375AF14C /* VIMVideoFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFile.h; sourceTree = ""; }; - 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-umbrella.h"; sourceTree = ""; }; - 1251E50741E644D6312C93A72D228CC2 /* AccountStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AccountStore.swift; path = VimeoNetworking/Sources/AccountStore.swift; sourceTree = ""; }; - 12603000BA159A15FCFE312613690391 /* VimeoRequestSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoRequestSerializer.swift; path = VimeoNetworking/Sources/VimeoRequestSerializer.swift; sourceTree = ""; }; - 13485EB89727E5D2EC453EE2ACF262B1 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; - 14988764C33C43F624F78A9FD05EA2D7 /* VIMActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMActivity.h; path = VimeoNetworking/Sources/Models/VIMActivity.h; sourceTree = ""; }; - 149A190283760F475F91178FCB276A53 /* VIMVideo+VOD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "VIMVideo+VOD.h"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.h"; sourceTree = ""; }; - 14EA79709F08DA21BEFAD6B727216E8A /* VIMSeason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSeason.h; path = VimeoNetworking/Sources/Models/VIMSeason.h; sourceTree = ""; }; - 1541E9FB35206F5192232467FC5B429D /* VIMUserBadge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUserBadge.m; path = VimeoNetworking/Sources/Models/VIMUserBadge.m; sourceTree = ""; }; - 1625E43ADF6E7014140E962E4D8D2E15 /* Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Subscription.swift; path = VimeoNetworking/Sources/Models/Subscription.swift; sourceTree = ""; }; - 19CEB26626C9812FA30C7379ACA089D6 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; - 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-umbrella.h"; sourceTree = ""; }; + 002DEE52AA04BFB0F28F813457694C4E /* Request+Configs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Configs.swift"; path = "VimeoNetworking/Sources/Request+Configs.swift"; sourceTree = ""; }; + 02BDFC75AF7EE167CA02D56FD1AAFA77 /* VimeoRequestSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoRequestSerializer.swift; path = VimeoNetworking/Sources/VimeoRequestSerializer.swift; sourceTree = ""; }; + 03BD44E17BF4F0A8D5B2F4DAD5ABB72C /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh"; sourceTree = ""; }; + 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUploadTests-dummy.m"; sourceTree = ""; }; + 04D12C6544446F37488A73372ECD7402 /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; + 052E7814C47996F86C13B71099AC1077 /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; + 053845F6F48FFC8FA3C048741EE12B54 /* VIMConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMConnection.h; path = VimeoNetworking/Sources/Models/VIMConnection.h; sourceTree = ""; }; + 054FA7F7A2C705EB16FA99EAD39768E7 /* VIMPolicyDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPolicyDocument.h; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.h; sourceTree = ""; }; + 05B90B6BC0EE7E2771D386409E2520A1 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; + 063F1229CC3B5D19372FD50F1A721E17 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; + 074CB90AB4EE491A4175829E41A021F1 /* VIMPictureCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPictureCollection.h; path = VimeoNetworking/Sources/Models/VIMPictureCollection.h; sourceTree = ""; }; + 087D35323DA57BBD3EB0B15AAA2CECDE /* VIMObjectMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMObjectMapper.h; path = VimeoNetworking/Sources/Models/VIMObjectMapper.h; sourceTree = ""; }; + 0929220DA05F2AABD8DE93E3B540E6CA /* VimeoNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = VimeoNetworking.modulemap; sourceTree = ""; }; + 0A4E139A3CA72544668FBA60696E4E83 /* VIMVideoDRMFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDRMFiles.m; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.m; sourceTree = ""; }; + 0B23AFAA8CFABF5F1D2C46768C75744A /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; + 0B5E7710A26B1361770593626EA31E53 /* Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Subscription.swift; path = VimeoNetworking/Sources/Models/Subscription.swift; sourceTree = ""; }; + 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.release.xcconfig"; sourceTree = ""; }; + 0D407DADF950894F8DA630A7035A18A9 /* VIMVODConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODConnection.m; path = VimeoNetworking/Sources/Models/VIMVODConnection.m; sourceTree = ""; }; + 0E3912B484138E27FC0A632EBA58DA2C /* Objc_ExceptionCatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Objc_ExceptionCatcher.m; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.m; sourceTree = ""; }; + 0E53C77939A0A7EB1AC9CE305AECE884 /* VIMChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMChannel.h; path = VimeoNetworking/Sources/Models/VIMChannel.h; sourceTree = ""; }; + 0F5BE0EE692E13BAB3C21C81744A5D29 /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; + 0FBB8F3B5297FB637EEE888393828C5F /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = VimeoNetworking/Sources/Response.swift; sourceTree = ""; }; + 11B32D5B0AC4636B49B4686C20F3FE22 /* VIMComment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMComment.h; path = VimeoNetworking/Sources/Models/VIMComment.h; sourceTree = ""; }; + 124E322BB1AC2D264A50206A59E74948 /* VIMUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMUploadTicket.m; sourceTree = ""; }; + 1263405891BAC778C715376CF6CAF9B2 /* Pods-VimeoUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload.modulemap"; sourceTree = ""; }; + 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.debug.xcconfig"; sourceTree = ""; }; + 164D73327C635745B3323BF6ED3ECD65 /* Pods-VimeoUpload-iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-acknowledgements.markdown"; sourceTree = ""; }; + 16D39169B31656EF7684BFE1E1D00092 /* VIMVideo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideo.m; path = VimeoNetworking/Sources/Models/VIMVideo.m; sourceTree = ""; }; + 1774CA527703D1CF85EBC2345BBFF1C2 /* VIMRecommendation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMRecommendation.m; path = VimeoNetworking/Sources/Models/VIMRecommendation.m; sourceTree = ""; }; + 1987C1726A4ECD388F92C613C3901C4D /* VIMCredit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCredit.h; path = VimeoNetworking/Sources/Models/VIMCredit.h; sourceTree = ""; }; + 19B931CA1E789A92BFD8ECC5CBDBA3ED /* String+Parameters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Parameters.swift"; path = "VimeoNetworking/Sources/String+Parameters.swift"; sourceTree = ""; }; + 19FAC3BA1D697B48272C1677518BEFAA /* VIMVideoPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPreference.m; path = VimeoNetworking/Sources/Models/VIMVideoPreference.m; sourceTree = ""; }; + 1A4D7AFAE3FD308B081EEEDFB903ED6E /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; + 1C5628750E74ECB23E63B36AEF2A8E62 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-frameworks.sh"; sourceTree = ""; }; 1C6422F81EA10F0A3062FC248BE9659A /* Pods_VimeoUpload_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS.framework; path = "Pods-VimeoUpload-iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1D06933F7D0190E13136B6084CCF19FD /* VIMVideoHLSFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoHLSFile.h; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.h; sourceTree = ""; }; - 1DD953AC1282A72EB724028504DB991B /* VIMPictureCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPictureCollection.m; path = VimeoNetworking/Sources/Models/VIMPictureCollection.m; sourceTree = ""; }; - 1E2C31E1C5219A492BA51ECF975649C4 /* Pods-VimeoUpload-iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-acknowledgements.plist"; sourceTree = ""; }; - 1F5BC750D923B3B868099617A48936CF /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; - 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-dummy.m"; sourceTree = ""; }; - 20B9A2C2DE00876AF465AD16D2C4C5BA /* VIMSizeQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSizeQuota.m; path = VimeoNetworking/Sources/Models/VIMSizeQuota.m; sourceTree = ""; }; - 213E236A9902F5C48054532E31B83A86 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; - 223024B664957866BB751A1110F1B9F0 /* VIMCredit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCredit.h; path = VimeoNetworking/Sources/Models/VIMCredit.h; sourceTree = ""; }; - 2258E00A17D080420C729F636C7DA1FF /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; - 23AB835CE25AE0CA04362D10838A3CF0 /* VIMCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCategory.h; path = VimeoNetworking/Sources/Models/VIMCategory.h; sourceTree = ""; }; - 281BE9E67D00EF177F449FA07B3FB9C6 /* VIMUserBadge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUserBadge.h; path = VimeoNetworking/Sources/Models/VIMUserBadge.h; sourceTree = ""; }; - 2823D0E27387DEDA4CD0C3CFBCC0B44F /* Pods-VimeoUpload-iOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-frameworks.sh"; sourceTree = ""; }; - 2A3F72A38ECAA6689938E0DD34F3126A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 2A556F76898649B5A28BDB5446ED8308 /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig"; sourceTree = ""; }; - 2B409357FA7F1EE47504EB11F838F1FD /* VIMVideoDRMFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDRMFiles.m; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.m; sourceTree = ""; }; - 2B670858BCB563B5FDA0DFAF36BAC42E /* VIMComment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMComment.m; path = VimeoNetworking/Sources/Models/VIMComment.m; sourceTree = ""; }; - 2BC19A9538D0325AF47F77D4BDAB05E5 /* VimeoClient.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoClient.swift; path = VimeoNetworking/Sources/VimeoClient.swift; sourceTree = ""; }; - 2BF35D801896FA2A238107E3F9288174 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-frameworks.sh"; sourceTree = ""; }; - 2C1DAA99F189991E9808E85A60902767 /* VIMTag.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTag.m; path = VimeoNetworking/Sources/Models/VIMTag.m; sourceTree = ""; }; + 1D3D066919EE5CBF346AC0F67F4E49EF /* VIMAccount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAccount.m; path = VimeoNetworking/Sources/Models/VIMAccount.m; sourceTree = ""; }; + 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOSTests-dummy.m"; sourceTree = ""; }; + 211D21902A27187BB9A6CBCFDF54C734 /* VIMPrivacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPrivacy.h; path = VimeoNetworking/Sources/Models/VIMPrivacy.h; sourceTree = ""; }; + 2140E97C9A902AF978123E899B2EC965 /* Pods-VimeoUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-resources.sh"; sourceTree = ""; }; + 22172916D62479D06D5CF43E7D6221F1 /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; + 23203AB46E0B1066374BDDE11472401B /* Pods-VimeoUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-umbrella.h"; sourceTree = ""; }; + 237AC7DFD930C2E41A28BC277C0E5080 /* VIMSeason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSeason.h; path = VimeoNetworking/Sources/Models/VIMSeason.h; sourceTree = ""; }; + 23B28388FB56C83D78C55CD9134F573B /* Request+Toggle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Toggle.swift"; path = "VimeoNetworking/Sources/Request+Toggle.swift"; sourceTree = ""; }; + 23ED22E21D77AADDD752F77A41CEBC92 /* VIMPicture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPicture.h; path = VimeoNetworking/Sources/Models/VIMPicture.h; sourceTree = ""; }; + 24053D2894257238A8730B9073573411 /* VIMUserBadge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUserBadge.h; path = VimeoNetworking/Sources/Models/VIMUserBadge.h; sourceTree = ""; }; + 24B19FCEF1EC11B2CA4858D49EE8BB60 /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; + 24F68E6A31E9A07717BA96E713B27524 /* VIMSeason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSeason.m; path = VimeoNetworking/Sources/Models/VIMSeason.m; sourceTree = ""; }; + 26736EE1946BB2EA2E54378979F41A8C /* VimeoNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VimeoNetworking-dummy.m"; sourceTree = ""; }; + 278F688842207EED37C8CC7FA26E7FD7 /* VIMActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMActivity.h; path = VimeoNetworking/Sources/Models/VIMActivity.h; sourceTree = ""; }; + 287638321E192A350F152932FF8696AA /* VIMSoundtrack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSoundtrack.m; path = VimeoNetworking/Sources/Models/VIMSoundtrack.m; sourceTree = ""; }; + 2AE88B0D343D0E95B717C68A0B158781 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; + 2BA6B448E7E4C5A88185668AF5E89E82 /* VIMVideoDASHFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDASHFile.m; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.m; sourceTree = ""; }; + 2C0545C6A0BB2E5FCAC25B6B48DCA078 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; + 2C2256DF269F200E54F23366139302E0 /* Mappable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Mappable.swift; path = VimeoNetworking/Sources/Mappable.swift; sourceTree = ""; }; + 2CE2728865671271B80E3729264F7010 /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; 2CF57E9BE891732B80AD558CB436D205 /* Pods_VimeoUpload_iOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOSTests.framework; path = "Pods-VimeoUpload-iOSTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D394EBCF2013AC95F4F316F6683EA0C /* VimeoReachability.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoReachability.swift; path = VimeoNetworking/Sources/VimeoReachability.swift; sourceTree = ""; }; - 2D775ED9A8AEEA1BBA968B5740A34BFD /* Request+User.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+User.swift"; path = "VimeoNetworking/Sources/Request+User.swift"; sourceTree = ""; }; - 2E6285983C1A0FF3F9827AE9B15D6EAB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 2EC7C61DABF8951A8EA0284CE90D8C35 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig"; sourceTree = ""; }; - 30232B7C92B3EA202FD3EBDCE7FCA62E /* Pods-VimeoUpload-iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-acknowledgements.markdown"; sourceTree = ""; }; - 3210E8330EE38198AC23E6AE501C828F /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-resources.sh"; sourceTree = ""; }; - 338DFD9D7A1D0BF695F33079268D7506 /* VIMAccount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAccount.m; path = VimeoNetworking/Sources/Models/VIMAccount.m; sourceTree = ""; }; - 33B7F78148EB2BCFE6839B0A753DA5A7 /* VIMQuantityQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMQuantityQuota.m; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.m; sourceTree = ""; }; - 3731BACEDB31E0440FF7D8D8C0C5E492 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = VimeoNetworking/Sources/Constants.swift; sourceTree = ""; }; - 37C980B8A834DB882EE016253A514531 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; - 3955D9A7EC2CD5C86E892193E62E9E0F /* Request+Comment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Comment.swift"; path = "VimeoNetworking/Sources/Request+Comment.swift"; sourceTree = ""; }; - 3BD0889F5B218566401FFF6EFC7448B1 /* VIMSeason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSeason.m; path = VimeoNetworking/Sources/Models/VIMSeason.m; sourceTree = ""; }; - 3BFCEC6FBC3145714CC6CF4DFC949341 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; - 3DF748E9534F1105869E8635FABD2DB5 /* Pods-VimeoUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-acknowledgements.markdown"; sourceTree = ""; }; - 40C278A2D7295B9C745A8F7C78D039A3 /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; - 40FF5ABC89E5B4D81BB332308EBD6ABA /* VIMVODConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODConnection.h; path = VimeoNetworking/Sources/Models/VIMVODConnection.h; sourceTree = ""; }; - 439CBA3DC46A23846FBD30F048BE086A /* VIMSoundtrack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSoundtrack.h; path = VimeoNetworking/Sources/Models/VIMSoundtrack.h; sourceTree = ""; }; - 494E66C69C53C64522E95F995B56BAB5 /* VIMVideoPlayRepresentation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayRepresentation.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.m; sourceTree = ""; }; - 49926875B9F5E4B438C6D0FDAEE093A2 /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-resources.sh"; sourceTree = ""; }; - 49CF485D82938742667C3CB53CCE9FED /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; - 49FDC86C4F0DDC07BF2B3A89084F05AF /* VIMUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUser.m; path = VimeoNetworking/Sources/Models/VIMUser.m; sourceTree = ""; }; - 4A5768E8C2A4AD09EE82653EC6A4E43A /* VIMChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMChannel.m; path = VimeoNetworking/Sources/Models/VIMChannel.m; sourceTree = ""; }; - 4A6089F06B69AA4011F16D1BE20C6240 /* VIMTrigger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTrigger.h; path = VimeoNetworking/Sources/Models/VIMTrigger.h; sourceTree = ""; }; - 4D38065BB0B23FBE674985A0F8B72EC9 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = VimeoNetworking/Sources/Result.swift; sourceTree = ""; }; - 4D485D3D976CC90259E83A2E9452E4A9 /* VIMComment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMComment.h; path = VimeoNetworking/Sources/Models/VIMComment.h; sourceTree = ""; }; - 4E79D6C3283CB5EF1812B0021DA11FC5 /* VIMUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMUploadTicket.h; sourceTree = ""; }; - 4F578FD9D3A32CB94B4560392C77383F /* Objc_ExceptionCatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Objc_ExceptionCatcher.h; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.h; sourceTree = ""; }; - 4FBA6678CB2E7680B2E44F4375609022 /* VimeoSessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoSessionManager.swift; path = VimeoNetworking/Sources/VimeoSessionManager.swift; sourceTree = ""; }; - 4FD417247D6F2F5D88E1083E3FB8227F /* Pods-VimeoUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-acknowledgements.plist"; sourceTree = ""; }; - 500FE9C937B576F7F751188E9C8B58C2 /* VIMNotificationsConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotificationsConnection.h; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.h; sourceTree = ""; }; - 528FFF37101F041C21101734F752C2AE /* VIMVideoPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPreference.h; path = VimeoNetworking/Sources/Models/VIMVideoPreference.h; sourceTree = ""; }; - 533C56098EE9CDC9C94F3635F25A9F98 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.release.xcconfig"; sourceTree = ""; }; - 54035CD32BBAAD35D60CCBDDEC9CEE44 /* ExceptionCatcher+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ExceptionCatcher+Swift.swift"; path = "VimeoNetworking/Sources/ExceptionCatcher+Swift.swift"; sourceTree = ""; }; - 5427FA6B4360346236E6133084DFC10E /* Spatial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Spatial.swift; path = VimeoNetworking/Sources/Models/Spatial.swift; sourceTree = ""; }; + 2D2783EEBEBD80F391B2E9561D564B74 /* PlayProgress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlayProgress.swift; path = VimeoNetworking/Sources/Models/PlayProgress.swift; sourceTree = ""; }; + 2FDD83F4E797B9E4EF28C138743CC6E9 /* VIMCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCategory.h; path = VimeoNetworking/Sources/Models/VIMCategory.h; sourceTree = ""; }; + 2FE657F6AB369E7F495FB2578B617113 /* VIMSizeQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSizeQuota.m; path = VimeoNetworking/Sources/Models/VIMSizeQuota.m; sourceTree = ""; }; + 32264BB52E443960700538AA6210172B /* VIMTrigger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTrigger.h; path = VimeoNetworking/Sources/Models/VIMTrigger.h; sourceTree = ""; }; + 343F2A822CC143967CA7786EA0932BCE /* VimeoNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-prefix.pch"; sourceTree = ""; }; + 36F75015ABE74BD204B5D4CAB023DC61 /* VIMVideoDASHFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDASHFile.h; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.h; sourceTree = ""; }; + 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUpload-umbrella.h"; sourceTree = ""; }; + 382B06B34D2454A8F5661BF34FBECDD2 /* Request+Channel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Channel.swift"; path = "VimeoNetworking/Sources/Request+Channel.swift"; sourceTree = ""; }; + 39E99DADEC276F0039A9BB6590160B92 /* Pods-VimeoUpload-iOSTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-frameworks.sh"; sourceTree = ""; }; + 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.release.xcconfig"; sourceTree = ""; }; + 3B37DF56ABB3C3B31BCC79BD629FCDE6 /* VIMVideoHLSFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoHLSFile.m; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.m; sourceTree = ""; }; + 3BF90FFD87F716998B15371C1C15106E /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist"; sourceTree = ""; }; + 3C335F5C6E5A7FFCF07AECFE11022662 /* VIMCredit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCredit.m; path = VimeoNetworking/Sources/Models/VIMCredit.m; sourceTree = ""; }; + 3C736020CFF02A03665D1F8205DCFEAE /* VIMNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotification.h; path = VimeoNetworking/Sources/Models/VIMNotification.h; sourceTree = ""; }; + 3E4249EB439BB7C93B7122461EE090C0 /* VIMPolicyDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPolicyDocument.m; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.m; sourceTree = ""; }; + 3F7089C91716E3744D691D08CBA119C1 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; + 3FAF01EF36517F4FBE35E4FEA5AA83AC /* Request+PolicyDocument.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+PolicyDocument.swift"; path = "VimeoNetworking/Sources/Request+PolicyDocument.swift"; sourceTree = ""; }; + 3FBFC292EA4C54BD77E35F6BA2F575DA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-dummy.m"; sourceTree = ""; }; + 4099B24520772D5AD7BDC99F612E9EB9 /* VIMLiveQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveQuota.swift; path = VimeoNetworking/Sources/Models/VIMLiveQuota.swift; sourceTree = ""; }; + 419AEF0897969545F437860CF7FE8B54 /* SubscriptionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionCollection.swift; path = VimeoNetworking/Sources/Models/SubscriptionCollection.swift; sourceTree = ""; }; + 41ADCAF32A9226395560D72DA6E3C950 /* VIMGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMGroup.h; path = VimeoNetworking/Sources/Models/VIMGroup.h; sourceTree = ""; }; + 43B9196F6EC54907B8C7C03C6F2FD40E /* NetworkingNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkingNotification.swift; path = VimeoNetworking/Sources/NetworkingNotification.swift; sourceTree = ""; }; + 46DC8A41923CB7ECC7B785FD6E670A22 /* VIMVideo+VOD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "VIMVideo+VOD.h"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.h"; sourceTree = ""; }; + 48142BEFC1B53A12595D6F05AE02468E /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUpload-resources.sh"; sourceTree = ""; }; + 49582A710D2FA9A39A3D318A19071A01 /* VIMLiveStreams.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveStreams.swift; path = VimeoNetworking/Sources/Models/VIMLiveStreams.swift; sourceTree = ""; }; + 4AE0BCE76395C7777050E3A008BBB0DB /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = VimeoNetworking/Sources/Result.swift; sourceTree = ""; }; + 4D332695D30979CBB112477B9E1D04E4 /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-resources.sh"; sourceTree = ""; }; + 4DFB2B113DAAEB5477BEC12A8E4CAC2B /* VIMPicture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPicture.m; path = VimeoNetworking/Sources/Models/VIMPicture.m; sourceTree = ""; }; + 4E5896490FC1BBD2F4A1828F43CD796E /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; + 4E8543B06D5A46B428E08BE3BC8B9E25 /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; + 4FE53B38466FDDC7ECA1B81488B3A06C /* VIMGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMGroup.m; path = VimeoNetworking/Sources/Models/VIMGroup.m; sourceTree = ""; }; + 51FBA33A4F10A204FC351218C64318B4 /* VIMVideoFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFile.h; sourceTree = ""; }; + 5247546347E72D6B431752E31046FECF /* VIMCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCategory.m; path = VimeoNetworking/Sources/Models/VIMCategory.m; sourceTree = ""; }; + 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig"; sourceTree = ""; }; 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 54DC90B45F8449D72BD99F888633B19A /* VIMPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPreference.h; path = VimeoNetworking/Sources/Models/VIMPreference.h; sourceTree = ""; }; - 58B62EE71CA018F665D8A742ADA3787A /* Request+PolicyDocument.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+PolicyDocument.swift"; path = "VimeoNetworking/Sources/Request+PolicyDocument.swift"; sourceTree = ""; }; - 58E8E3B2AB8BBBBA38D3F57103C1E48D /* VIMThumbnailUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMThumbnailUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.h; sourceTree = ""; }; - 590A00F4B0511AE74E5A1DE651C5634A /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; - 59ACC3119383FFF4846D1E7814D14DFB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5A1207562C5BD2A71A7DC1A59A824D64 /* Request+Picture.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Picture.swift"; path = "VimeoNetworking/Sources/Request+Picture.swift"; sourceTree = ""; }; - 5AF82FDAADDBD52AD4A5E5FD40451B8F /* VIMSoundtrack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMSoundtrack.m; path = VimeoNetworking/Sources/Models/VIMSoundtrack.m; sourceTree = ""; }; - 5C725AE77AFC85C663E9277B7E56E7F1 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5C9F540643D34B036DF1F955F1B4921C /* KeychainStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainStore.swift; path = VimeoNetworking/Sources/KeychainStore.swift; sourceTree = ""; }; - 5CCA2741496873A942541EFBB5531983 /* Pods-VimeoUpload-iOSTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-resources.sh"; sourceTree = ""; }; - 5DFE210185943D679FFCBBA4B56CF1A6 /* Scope.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scope.swift; path = VimeoNetworking/Sources/Scope.swift; sourceTree = ""; }; - 5FECF370ACCB82ABBBADEB2C23066C4F /* Request+Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Cache.swift"; path = "VimeoNetworking/Sources/Request+Cache.swift"; sourceTree = ""; }; - 600D472EDC99CA818353A5D89F987011 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; - 635406386C5C563BE8F30C456CF4EBDE /* VIMConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMConnection.h; path = VimeoNetworking/Sources/Models/VIMConnection.h; sourceTree = ""; }; - 63AC97C994F4A5DEDCFAB03FE2835587 /* VIMPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPreference.m; path = VimeoNetworking/Sources/Models/VIMPreference.m; sourceTree = ""; }; - 6402A355C8648B1DF96ACEBE585B656F /* VIMVODConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODConnection.m; path = VimeoNetworking/Sources/Models/VIMVODConnection.m; sourceTree = ""; }; - 68D1AD311A8197BF776022C79C5F1ACE /* VIMVideoPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.m; sourceTree = ""; }; - 6A0A4AB2432D657C9297E64DCDDB03A9 /* VimeoNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VimeoNetworking-dummy.m"; sourceTree = ""; }; - 6A7DD13AE760F49BD336D2C01BAA7890 /* Pods-VimeoUpload-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.debug.xcconfig"; sourceTree = ""; }; - 6A8AD460DA5A2F6BCCC1E450EFCD4B60 /* VIMUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUser.h; path = VimeoNetworking/Sources/Models/VIMUser.h; sourceTree = ""; }; - 6AC1A1CA96496068B2690A54CEA6343D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 54D7F41BC0B992675B6B1D1C460863C4 /* VIMLiveChat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveChat.swift; path = VimeoNetworking/Sources/Models/VIMLiveChat.swift; sourceTree = ""; }; + 55EAC4D12F2C78AD8A7DFE7FFF158860 /* VIMVideoPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.h; sourceTree = ""; }; + 568A1D7A6B9DCA4EEB4578D128A3D97A /* NSError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSError+Extensions.swift"; path = "VimeoNetworking/Sources/NSError+Extensions.swift"; sourceTree = ""; }; + 56AAABC6AF778F87DEB0B23C2E9D48A5 /* VIMConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMConnection.m; path = VimeoNetworking/Sources/Models/VIMConnection.m; sourceTree = ""; }; + 58510BC7E01D7BF9B0FF6F9B1299E292 /* VIMThumbnailUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMThumbnailUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.m; sourceTree = ""; }; + 586519E5D5FB438C925CE15AAE22CF71 /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; + 5BA48ED20026F05AF4A74144DF111CD9 /* VIMPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPreference.h; path = VimeoNetworking/Sources/Models/VIMPreference.h; sourceTree = ""; }; + 5C2CF949A57B249425698C5703F2B5BC /* VIMVideoFairPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFairPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.m; sourceTree = ""; }; + 5C329F17281C1736B75339A4D764E279 /* VIMVODItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODItem.m; path = VimeoNetworking/Sources/Models/VIMVODItem.m; sourceTree = ""; }; + 5E54A23CFD10B9010DF550B5FF111DED /* VIMVideoPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPreference.h; path = VimeoNetworking/Sources/Models/VIMVideoPreference.h; sourceTree = ""; }; + 5EF629404A7DC11EC1616617F52709AD /* VIMLiveTime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveTime.swift; path = VimeoNetworking/Sources/Models/VIMLiveTime.swift; sourceTree = ""; }; + 613E823A25BBCE75BC69C43C89BF7433 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = VimeoNetworking/Sources/Request.swift; sourceTree = ""; }; + 6183A34FBC7EF8E47C6CA774C5C234D7 /* VimeoClient.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoClient.swift; path = VimeoNetworking/Sources/VimeoClient.swift; sourceTree = ""; }; + 61BBAE14F6D05F87DD0A7A0F550824DD /* Pods-VimeoUpload-iOSTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-resources.sh"; sourceTree = ""; }; + 628BFC2DEB2CCA0CC4CEFA489B407AA3 /* VIMProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMProgrammedContent.swift; path = VimeoNetworking/Sources/Models/VIMProgrammedContent.swift; sourceTree = ""; }; + 6413471EE3D47C01A83213F98B23E644 /* VIMNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotification.m; path = VimeoNetworking/Sources/Models/VIMNotification.m; sourceTree = ""; }; + 65544531C57D7687204CF1A58500C6BB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 679592049C9804FB951BAA37DE2B4671 /* Request+Soundtrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Soundtrack.swift"; path = "VimeoNetworking/Sources/Request+Soundtrack.swift"; sourceTree = ""; }; 6C6F9D9FE6FFC0791183DADBD393CBFE /* Pods_VimeoUpload_iOS_OldUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS_OldUpload.framework; path = "Pods-VimeoUpload-iOS-OldUpload.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 6C9FDB087D69B2FF78F76AAF8C24EA80 /* Pods-VimeoUpload-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS.modulemap"; sourceTree = ""; }; - 6E34B0E33381605BC20762BA521A846C /* VIMRecommendation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMRecommendation.h; path = VimeoNetworking/Sources/Models/VIMRecommendation.h; sourceTree = ""; }; - 6ED127F95CDCB38838CC180BF12E4D55 /* Pods-VimeoUpload-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-resources.sh"; sourceTree = ""; }; - 70A33F9F7F54570EFF69A144E3A3F760 /* VIMVideo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideo.m; path = VimeoNetworking/Sources/Models/VIMVideo.m; sourceTree = ""; }; - 70B44A30D123EB8B4E494C3750DC262F /* VIMProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMProgrammedContent.swift; path = VimeoNetworking/Sources/Models/VIMProgrammedContent.swift; sourceTree = ""; }; - 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUploadTests-dummy.m"; sourceTree = ""; }; + 6CBD22C0BDD11AAA880FD2800A9214ED /* Request+Picture.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Picture.swift"; path = "VimeoNetworking/Sources/Request+Picture.swift"; sourceTree = ""; }; + 6D6092919464D508C8D86B2700DFA8ED /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; + 6D648E4B25C16FDBDEC0797AB2BE5007 /* AuthenticationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationController.swift; path = VimeoNetworking/Sources/AuthenticationController.swift; sourceTree = ""; }; + 6FA8F0CBBBE91CA96C4FE3E762F453C1 /* Request+Authentication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Authentication.swift"; path = "VimeoNetworking/Sources/Request+Authentication.swift"; sourceTree = ""; }; + 7230FAF41E404CCAC4D74CA406827057 /* VIMVideoPlayRepresentation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayRepresentation.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.m; sourceTree = ""; }; 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; - 761B02BADB3E7B60DB3FF23CD76B6AF2 /* VIMVideoHLSFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoHLSFile.m; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.m; sourceTree = ""; }; - 77C69108CD986B77A9C0122212FD6613 /* PlayProgress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlayProgress.swift; path = VimeoNetworking/Sources/Models/PlayProgress.swift; sourceTree = ""; }; - 78D4C6E7DFAF7621B138929C43CEAD58 /* VIMUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMUploadTicket.m; sourceTree = ""; }; - 78E698DE1E56024C0E969710944608D8 /* VimeoNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VimeoNetworking.h; path = VimeoNetworking/Sources/VimeoNetworking.h; sourceTree = ""; }; - 7AED40431616221804026E870D2C4C82 /* Request+Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Category.swift"; path = "VimeoNetworking/Sources/Request+Category.swift"; sourceTree = ""; }; - 7C61AA5DF51D49E9C9ADF4B82C45FE7B /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; - 7E1665CCFC918114440A9C679C0EBC34 /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; - 7EB63AB5D89A08887565D82CBAC4A0A3 /* ErrorCode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorCode.swift; path = VimeoNetworking/Sources/ErrorCode.swift; sourceTree = ""; }; - 7EDADBD03E681FF52A2DE74B6E5A00A4 /* VIMVideo+VOD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VIMVideo+VOD.m"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.m"; sourceTree = ""; }; - 7F86DFC5D05E754156CA58540DAA1BAC /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; - 7FA3810B9E6829C7403D5D0F19EDACFD /* VIMVideoPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPreference.m; path = VimeoNetworking/Sources/Models/VIMVideoPreference.m; sourceTree = ""; }; - 80E26D00B3A1139F9D88C0E57B6F0DA3 /* Pods-VimeoUpload-iOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.debug.xcconfig"; sourceTree = ""; }; - 813FFFC7FD25CCBEFAADC204524CBF26 /* VIMObjectMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMObjectMapper.h; path = VimeoNetworking/Sources/Models/VIMObjectMapper.h; sourceTree = ""; }; - 81B9D7C302854F8DDD4076AE8D68B1B7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8251D7E0AE21801085F5938A385FEECA /* Request+Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Notifications.swift"; path = "VimeoNetworking/Sources/Request+Notifications.swift"; sourceTree = ""; }; + 75A3716400D089BF995F91A2FCE5CACA /* VIMUploadQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadQuota.m; path = VimeoNetworking/Sources/Models/VIMUploadQuota.m; sourceTree = ""; }; + 768B121F5BBF2F6F17A30D3AF51F39BC /* Pods-VimeoUpload-iOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOSTests.modulemap"; sourceTree = ""; }; + 77ECC63F0D5FFCD103ED573C1D69080D /* VIMPrivacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPrivacy.m; path = VimeoNetworking/Sources/Models/VIMPrivacy.m; sourceTree = ""; }; + 7A6EB113AA7361D9D96093B066909AF1 /* VIMVideoUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoUtils.h; path = VimeoNetworking/Sources/Models/VIMVideoUtils.h; sourceTree = ""; }; + 7A9C62A5A324AA9AE6DEFBB9032EA5E7 /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; + 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-umbrella.h"; sourceTree = ""; }; + 7ECC7558C97F2EC5306C76D50C163A34 /* VIMComment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMComment.m; path = VimeoNetworking/Sources/Models/VIMComment.m; sourceTree = ""; }; + 7EDCAC22E80332414E26B22B5ADAF2A6 /* VIMUserBadge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUserBadge.m; path = VimeoNetworking/Sources/Models/VIMUserBadge.m; sourceTree = ""; }; + 8076122816BCBFBE66625E25D858ABEF /* VIMBadge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMBadge.swift; path = VimeoNetworking/Sources/Models/VIMBadge.swift; sourceTree = ""; }; + 809D7871F89F10847F736FD51B6E572F /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; 84027987FF22C70AB94CB6DB9FB0CBD5 /* Pods_VimeoUpload_iOS_OldUploadTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload_iOS_OldUploadTests.framework; path = "Pods-VimeoUpload-iOS-OldUploadTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8854A148A98E4C656CC085331FEE2A76 /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh"; sourceTree = ""; }; - 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; - 8A0EACC1726F08952CBA6D09D34A5E69 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; - 8A85F49E86198194EBD238BC4D17B241 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; - 8B32A79195E4789E0D38A7C199CAB76A /* Request+Channel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Channel.swift"; path = "VimeoNetworking/Sources/Request+Channel.swift"; sourceTree = ""; }; - 8B62CA840DF965405A11E44123254BAC /* VIMVideoDRMFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDRMFiles.h; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.h; sourceTree = ""; }; - 8C5391EE3E5EBC61C92F45484F77F90B /* VIMVODItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODItem.h; path = VimeoNetworking/Sources/Models/VIMVODItem.h; sourceTree = ""; }; - 8D434E487EE19FF84352C937F1008B3B /* Pods-VimeoUpload-iOS-OldUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS-OldUpload.modulemap"; sourceTree = ""; }; - 8E9A61DA32392AD194FABDB69398E9DA /* Request+ProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+ProgrammedContent.swift"; path = "VimeoNetworking/Sources/Request+ProgrammedContent.swift"; sourceTree = ""; }; - 90087B0D4E77D07B4E9F1D217680CB6B /* VIMVideoFairPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFairPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.h; sourceTree = ""; }; - 90CE0CDA94D5A8DDA81A0AA529497EEB /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOSTests-acknowledgements.markdown"; sourceTree = ""; }; - 9181B76CF70F368A91B6164CF5EA35AF /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; - 927C6F167862BCAC06F4E08000EB8C58 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; - 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h"; sourceTree = ""; }; + 84F081230D6019BBC85EB4E8B1C0846F /* VIMReviewPage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMReviewPage.swift; path = VimeoNetworking/Sources/Models/VIMReviewPage.swift; sourceTree = ""; }; + 85994E98526B612F0F6742D5F61D1405 /* Request+Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Cache.swift"; path = "VimeoNetworking/Sources/Request+Cache.swift"; sourceTree = ""; }; + 85B639446FA6F412610BA87432738461 /* VIMVideoDRMFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDRMFiles.h; path = VimeoNetworking/Sources/Models/VIMVideoDRMFiles.h; sourceTree = ""; }; + 85BC7320C1C886A0FB389B093BA102C9 /* VimeoReachability.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoReachability.swift; path = VimeoNetworking/Sources/VimeoReachability.swift; sourceTree = ""; }; + 85ECA743434223FD5CD6B7F01E353850 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; + 85FA1FE99D7EB95F4D20DED65256B047 /* VIMVideoPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoPlayFile.m; sourceTree = ""; }; + 88144FC6064F1266CC84EBAFAEF323C8 /* VIMModelObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMModelObject.m; path = VimeoNetworking/Sources/Models/VIMModelObject.m; sourceTree = ""; }; + 88BE4FC1F681617CAF8FD663DFD66784 /* VIMChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMChannel.m; path = VimeoNetworking/Sources/Models/VIMChannel.m; sourceTree = ""; }; + 88E89F9C17ADFE5CAD4DE8D8CC0A0D28 /* Pods-VimeoUpload-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS.modulemap"; sourceTree = ""; }; + 89919609A4C82EA22E98E3889206920D /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist"; sourceTree = ""; }; + 8BDAFE6138268993BA22EC2BA977CE78 /* Request+Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Notifications.swift"; path = "VimeoNetworking/Sources/Request+Notifications.swift"; sourceTree = ""; }; + 8C9165823267758FD6A92FD5BE0B6610 /* Pods-VimeoUpload-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-resources.sh"; sourceTree = ""; }; + 8D709E2705777478BAC15C2AD7D53CAC /* VimeoNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VimeoNetworking.xcconfig; sourceTree = ""; }; + 8E3FABD02BFBCDCFB4C132537520E96E /* VIMObjectMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMObjectMapper.m; path = VimeoNetworking/Sources/Models/VIMObjectMapper.m; sourceTree = ""; }; + 8E6D96934932FA9638F6BD2E31B8D86E /* Pods-VimeoUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-acknowledgements.plist"; sourceTree = ""; }; + 8F4591C0BC7AC01DD3ACA0A8926A7B54 /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; + 9030EDE526F33AE457609C8466220643 /* VIMPictureCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPictureCollection.m; path = VimeoNetworking/Sources/Models/VIMPictureCollection.m; sourceTree = ""; }; + 9198636B9A11064EB1AB3CC6FA2327A4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 92BE1336A28EB4076DFE2007C5CC0CE1 /* VIMQuantityQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMQuantityQuota.m; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.m; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 94A2963496CBF1D4C44ECBA1D783CE49 /* VIMVideo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideo.h; path = VimeoNetworking/Sources/Models/VIMVideo.h; sourceTree = ""; }; + 950BD159D58CE92F402BBAB66465DE38 /* VIMInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMInteraction.m; path = VimeoNetworking/Sources/Models/VIMInteraction.m; sourceTree = ""; }; + 9526C61F835808A6B7FA2E9E882109BE /* VIMVODConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODConnection.h; path = VimeoNetworking/Sources/Models/VIMVODConnection.h; sourceTree = ""; }; + 952F507F085A0B032F0A5999B8BB257B /* Pods-VimeoUpload-iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-acknowledgements.plist"; sourceTree = ""; }; + 9531324FE69A206C8D425D93D70BCB29 /* Pods-VimeoUpload-iOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-frameworks.sh"; sourceTree = ""; }; 95D6664DF623C80FB5A5C526B85C924B /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VimeoUpload.framework; path = "Pods-VimeoUpload.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 95DCAF0CD8E8A04FB849D0EB3ED32D01 /* VIMPicture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPicture.h; path = VimeoNetworking/Sources/Models/VIMPicture.h; sourceTree = ""; }; - 9717512502B2CBB64AF956ABFD3ECF10 /* Request+Configs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Configs.swift"; path = "VimeoNetworking/Sources/Request+Configs.swift"; sourceTree = ""; }; - 994751133E5FF4982C5BCE1CAAB6A78B /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; - 9A4BE21C00C1529F947AEADC6AFEC0AB /* VIMRecommendation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMRecommendation.m; path = VimeoNetworking/Sources/Models/VIMRecommendation.m; sourceTree = ""; }; - 9ACF5761B029845B3F2897FDE0D45BB0 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist"; sourceTree = ""; }; - 9AF9D80E0A02BB32BC9B773852EB179C /* VIMNotificationsConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotificationsConnection.m; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.m; sourceTree = ""; }; - 9BB0F28B65CFA82A1097FD4C71DA0487 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist"; sourceTree = ""; }; - 9CB779FF1FA13F0CA99A13B6A0857464 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = VimeoNetworking/Sources/Response.swift; sourceTree = ""; }; - 9D84ED393688D7F4321FF3478294DAAA /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; - 9E78D488EE2F56C490F374FBD83C1062 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown"; sourceTree = ""; }; - 9FE2618631D9AF7217C1FC477FE2046E /* VIMObjectMapper+Generic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VIMObjectMapper+Generic.swift"; path = "VimeoNetworking/Sources/VIMObjectMapper+Generic.swift"; sourceTree = ""; }; - A0648207A189AF57F74C57B6416EFA4B /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; - A17090BB86BF96FF7E88156C3CB28957 /* AuthenticationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationController.swift; path = VimeoNetworking/Sources/AuthenticationController.swift; sourceTree = ""; }; - A287772AED26189394F852F1383AC103 /* Request+Soundtrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Soundtrack.swift"; path = "VimeoNetworking/Sources/Request+Soundtrack.swift"; sourceTree = ""; }; - A33177A8F3A1862EEA26D30A1D63CC07 /* VIMPicture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPicture.m; path = VimeoNetworking/Sources/Models/VIMPicture.m; sourceTree = ""; }; - A59DE65C23DA87346FB7BB1F08A38182 /* VIMVideoUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoUtils.m; path = VimeoNetworking/Sources/Models/VIMVideoUtils.m; sourceTree = ""; }; - A5CFEC28DA0D60B074FCFDEBB948B940 /* VIMVideoPlayRepresentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayRepresentation.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.h; sourceTree = ""; }; - A5F7EE334D37C9A1E58488BE86B5C0EC /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = AFNetworking.modulemap; sourceTree = ""; }; - A69D06730C5B3566A7B8FF5A91C529C1 /* VIMPolicyDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPolicyDocument.h; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.h; sourceTree = ""; }; - A6B196AB2ADA189C96F4A92DF020A2AB /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; - A784B675172C4B624597642F4BFE56E7 /* SubscriptionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionCollection.swift; path = VimeoNetworking/Sources/Models/SubscriptionCollection.swift; sourceTree = ""; }; - A81FB057C4219FBF8BD3D002E9E7272B /* VimeoNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = VimeoNetworking.modulemap; sourceTree = ""; }; - A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOSTests-dummy.m"; sourceTree = ""; }; - A95F8642BCADE8FFFF3519DABF17AB95 /* VIMPrivacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPrivacy.m; path = VimeoNetworking/Sources/Models/VIMPrivacy.m; sourceTree = ""; }; + 9609A25E8F530B7CBC56B003E5A0750B /* ResponseCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseCache.swift; path = VimeoNetworking/Sources/ResponseCache.swift; sourceTree = ""; }; + 973068FAC212B157A116787EFE974C00 /* VIMVideoUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoUtils.m; path = VimeoNetworking/Sources/Models/VIMVideoUtils.m; sourceTree = ""; }; + 975253FA96D61CB46588DC454929CA2D /* VIMAppeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAppeal.h; path = VimeoNetworking/Sources/Models/VIMAppeal.h; sourceTree = ""; }; + 977CC708C885349F45A1FFAA4DB28215 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUpload-dummy.m"; sourceTree = ""; }; + 9A3C26DB3876114928F36AA5CF7EA0F5 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; sourceTree = ""; }; + 9ABCB52AD09380B5670C88214D8C76CE /* VIMAccount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAccount.h; path = VimeoNetworking/Sources/Models/VIMAccount.h; sourceTree = ""; }; + 9AF971A027E87B257D7A8A2CDF166218 /* VimeoSessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoSessionManager.swift; path = VimeoNetworking/Sources/VimeoSessionManager.swift; sourceTree = ""; }; + 9C6DB9B6917E46EC2510108E0D2432EA /* VIMVideoProgressiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoProgressiveFile.h; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.h; sourceTree = ""; }; + 9C8C3258FFCED4DF57908D7C089E6CC2 /* VIMActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMActivity.m; path = VimeoNetworking/Sources/Models/VIMActivity.m; sourceTree = ""; }; + 9D016933AD5FAF12115C7809993E0D09 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOSTests-acknowledgements.plist"; sourceTree = ""; }; + 9D3768CC6CDDD824D653B921C0D96F6F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9DDACB879F6B15EC0842A540C2EC8E17 /* VIMSoundtrack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSoundtrack.h; path = VimeoNetworking/Sources/Models/VIMSoundtrack.h; sourceTree = ""; }; + 9E52F63F91C276CD217160265C6521C4 /* VIMLiveChatUser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveChatUser.swift; path = VimeoNetworking/Sources/Models/VIMLiveChatUser.swift; sourceTree = ""; }; + 9EE2E2B9ADCB9544FC9FFCAC35EBF332 /* VIMVODItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVODItem.h; path = VimeoNetworking/Sources/Models/VIMVODItem.h; sourceTree = ""; }; + A1328F72B9E5AF74B40895C0730A01C4 /* VIMVideoFairPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFairPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.h; sourceTree = ""; }; + A2617AC84E29E2531F9A850D9ACB32F0 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; + A3A92DCA092DA862EE4829F35614FC04 /* VimeoResponseSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoResponseSerializer.swift; path = VimeoNetworking/Sources/VimeoResponseSerializer.swift; sourceTree = ""; }; + A6B901CF4204810849282DA3432E8C2B /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; + A7A9C5813434BC6219ABB82CE647CF44 /* VIMLive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLive.swift; path = VimeoNetworking/Sources/Models/VIMLive.swift; sourceTree = ""; }; + A81D196287250329C0B7B7181A74E8C7 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; + AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.debug.xcconfig"; sourceTree = ""; }; AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - AE0DF6D9E98751FE374466891CF22E93 /* VIMObjectMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMObjectMapper.m; path = VimeoNetworking/Sources/Models/VIMObjectMapper.m; sourceTree = ""; }; - AF5691A664BC371E586B7A9B0EA405C8 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; - B39620FF19ACEB51C1DEA18A7A12B2D0 /* Request+Toggle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Toggle.swift"; path = "VimeoNetworking/Sources/Request+Toggle.swift"; sourceTree = ""; }; - B44AB41921F9D9B0620A5C3553FE4B72 /* Request+Video.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Video.swift"; path = "VimeoNetworking/Sources/Request+Video.swift"; sourceTree = ""; }; - B4580F679371388C6FC87FF024534456 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-iOSTests-acknowledgements.plist"; sourceTree = ""; }; - B4C942B4810471391926C69DDF06F459 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; - B5BD0E4A9E13D4E5939E74CE749ACF61 /* VIMPrivacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPrivacy.h; path = VimeoNetworking/Sources/Models/VIMPrivacy.h; sourceTree = ""; }; + AF2CF9B0653941976BEFD36BF1106037 /* VIMInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMInteraction.h; path = VimeoNetworking/Sources/Models/VIMInteraction.h; sourceTree = ""; }; + AFA9CE28C85633044910F197AE62024B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AFFFEF5CBB05177827BED4B2A494E939 /* VIMNotificationsConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotificationsConnection.h; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.h; sourceTree = ""; }; + B0B17C17A5D09B854950C4832B06F111 /* VIMSizeQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSizeQuota.h; path = VimeoNetworking/Sources/Models/VIMSizeQuota.h; sourceTree = ""; }; + B0C704A7502C2125D2158B955B598A3F /* VimeoSessionManager+Constructors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+Constructors.swift"; path = "VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift"; sourceTree = ""; }; + B21518236153EC3A64EEFEBECC69EA0F /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; + B4CB888AAB7CB5886ECEB1E6DA00DDF0 /* VIMUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUser.m; path = VimeoNetworking/Sources/Models/VIMUser.m; sourceTree = ""; }; + B4F6AAC38F1635780B6184FE5EA46AE0 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - B6671E602410D6092439152EADE23607 /* Request+Authentication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Authentication.swift"; path = "VimeoNetworking/Sources/Request+Authentication.swift"; sourceTree = ""; }; - B784B3FDEB773915E04502100EB6F701 /* VIMUploadQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadQuota.h; path = VimeoNetworking/Sources/Models/VIMUploadQuota.h; sourceTree = ""; }; - B7F8E371904C34C30A4498FCCBE5F2AB /* VIMChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMChannel.h; path = VimeoNetworking/Sources/Models/VIMChannel.h; sourceTree = ""; }; - B88A43F94D3F984AA9F607E6D336933C /* Dictionary+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Dictionary+Extension.swift"; path = "VimeoNetworking/Sources/Dictionary+Extension.swift"; sourceTree = ""; }; - BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOSTests-umbrella.h"; sourceTree = ""; }; - BC9E61ED1EDFE2CD20FA90CF00D4608B /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; - BDEBFF33778D5264ED6AEA58E613AE82 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown"; sourceTree = ""; }; + B7334D07BE6D5A54ADEC1615A9BA9D43 /* VIMVideoFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFile.m; sourceTree = ""; }; + B8D6AF7E79B10A496A13A6362D6D0ED1 /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; + B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; + BA13A5B35FCC9134048E2A9E044367D7 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; + BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-dummy.m"; sourceTree = ""; }; + BA95D72DAAF8256A3FCE22C2A19B3C4A /* VIMModelObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMModelObject.h; path = VimeoNetworking/Sources/Models/VIMModelObject.h; sourceTree = ""; }; + BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.release.xcconfig"; sourceTree = ""; }; + BD32BEB0442F9700B6A7059686E09FD6 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; + BEA387C55F9A6BA9F2050E67D857A67A /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - BFECB493111928B6FBC7E30A53CD6C0C /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; + BF0905C45FA9A8AD70DBE8F5912CDD71 /* Objc_ExceptionCatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Objc_ExceptionCatcher.h; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.h; sourceTree = ""; }; + BF68C901CE2FAF7115D7A89392132E12 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + C1033E7DEBC541D9A9338CE7C50610E4 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = VimeoNetworking/Sources/Constants.swift; sourceTree = ""; }; C29192B1F683D403AFFD632D65221D49 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - C4CF223F05BF42A197EEB5B5F427FB15 /* Pods-VimeoUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.debug.xcconfig"; sourceTree = ""; }; - C550175B7EC7075E2835E8C7DCC2723F /* VIMBadge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMBadge.swift; path = VimeoNetworking/Sources/Models/VIMBadge.swift; sourceTree = ""; }; - C5624A087C10DE994D4F380D76D11CD8 /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; - C99148A0B79F2354BFE4ACBDE082A809 /* VIMMappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMMappable.h; path = VimeoNetworking/Sources/Models/VIMMappable.h; sourceTree = ""; }; - C99A95A93AB75AFFF2B725A21CFF7377 /* VIMPictureCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPictureCollection.h; path = VimeoNetworking/Sources/Models/VIMPictureCollection.h; sourceTree = ""; }; - C9EA8CD923B36DA3EAD55FD3879A502F /* VIMVideoUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoUtils.h; path = VimeoNetworking/Sources/Models/VIMVideoUtils.h; sourceTree = ""; }; - CA212CD04BA30762B1CD913421957487 /* VIMTag.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTag.h; path = VimeoNetworking/Sources/Models/VIMTag.h; sourceTree = ""; }; - CA3350835CEC5107C6C293FE2D04E77F /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; - CA537B840B304BCD493A48F81F820D06 /* Pods-VimeoUpload-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-resources.sh"; sourceTree = ""; }; - CB8AD1BB40CAF74E14801DCD2423742E /* VIMNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotification.m; path = VimeoNetworking/Sources/Models/VIMNotification.m; sourceTree = ""; }; - CBED8FAC62EC97352938CA51099A55E9 /* Pods-VimeoUpload-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.release.xcconfig"; sourceTree = ""; }; - CC338E19D1B0972E20EE7505BA2A23D2 /* VIMInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMInteraction.h; path = VimeoNetworking/Sources/Models/VIMInteraction.h; sourceTree = ""; }; - CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUpload-umbrella.h"; sourceTree = ""; }; - CF8F7E3CBB1B67B094851E251BC41BC2 /* VIMSizeQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMSizeQuota.h; path = VimeoNetworking/Sources/Models/VIMSizeQuota.h; sourceTree = ""; }; - D112466303A0600AF69CB9E02EAA27E5 /* VIMVideoProgressiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoProgressiveFile.m; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.m; sourceTree = ""; }; - D1C4237239681814FFDD6E43465463EE /* VIMAppeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAppeal.h; path = VimeoNetworking/Sources/Models/VIMAppeal.h; sourceTree = ""; }; - D1F5A4A4953624BBBEF0F5FCB89E5137 /* digicert-sha2.cer */ = {isa = PBXFileReference; includeInIndex = 1; name = "digicert-sha2.cer"; path = "VimeoNetworking/Resources/digicert-sha2.cer"; sourceTree = ""; }; - D2425F9FA4CEFF602F6F4A053F70B656 /* Mappable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Mappable.swift; path = VimeoNetworking/Sources/Mappable.swift; sourceTree = ""; }; - D24A7C1D41EE2BA30BB03DAF0C03B000 /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; - D39B2D537CC8914B5AB105B380641859 /* VIMQuantityQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMQuantityQuota.h; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.h; sourceTree = ""; }; - D3BA141A5553BAF7C116D19D1C669DC6 /* VIMVideoProgressiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoProgressiveFile.h; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.h; sourceTree = ""; }; - D41615CC354B8B0A35926E7CC9AD71F6 /* Pods-VimeoUpload-iOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOSTests.modulemap"; sourceTree = ""; }; - D53F12E8EBC660E39EA3C8787CA543C4 /* VIMAccount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAccount.h; path = VimeoNetworking/Sources/Models/VIMAccount.h; sourceTree = ""; }; - D65690666F392CD6883791300864C4BF /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; - D6E40E32356AA402232F099288457708 /* VIMConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMConnection.m; path = VimeoNetworking/Sources/Models/VIMConnection.m; sourceTree = ""; }; - D8008689D0B9CEE5A8B4F22EDD838235 /* VIMInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMInteraction.m; path = VimeoNetworking/Sources/Models/VIMInteraction.m; sourceTree = ""; }; - D91BABF53F46F9B94488819367CB559E /* VIMUploadQuota.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMUploadQuota.m; path = VimeoNetworking/Sources/Models/VIMUploadQuota.m; sourceTree = ""; }; - DA2A360A317E5BEEB0074445003EDB17 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; - DB074C96C719EAE42367359FBE57E21F /* VIMVideoDASHFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoDASHFile.h; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.h; sourceTree = ""; }; - DE1A0D9A33DD15FBE6EBBA8E2BC96A15 /* String+Parameters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Parameters.swift"; path = "VimeoNetworking/Sources/String+Parameters.swift"; sourceTree = ""; }; - DEA77B71C751EBAB48B5E4F1CB110265 /* VIMModelObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMModelObject.m; path = VimeoNetworking/Sources/Models/VIMModelObject.m; sourceTree = ""; }; - DF54671CD48BA10A8DA67E5817580E1A /* VIMAppeal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAppeal.m; path = VimeoNetworking/Sources/Models/VIMAppeal.m; sourceTree = ""; }; - DF6081927D4DC329FD7ED0F883D3B576 /* PinCodeInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeInfo.swift; path = VimeoNetworking/Sources/Models/PinCodeInfo.swift; sourceTree = ""; }; - E02C81A3C7316395924E658D5BC8F10E /* Pods-VimeoUpload-iOSTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOSTests-frameworks.sh"; sourceTree = ""; }; - E057FC5D3359A0584EF6495E7E3F6939 /* NSURLSessionConfiguration+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSessionConfiguration+Extensions.swift"; path = "VimeoNetworking/Sources/NSURLSessionConfiguration+Extensions.swift"; sourceTree = ""; }; - E062278A9F4389EDD1742AD9257524FC /* VIMVideoFairPlayFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFairPlayFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.m; sourceTree = ""; }; - E0B7E1AC52305E19ED018CF401606970 /* NetworkingNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkingNotification.swift; path = VimeoNetworking/Sources/NetworkingNotification.swift; sourceTree = ""; }; - E1D8B2BDDECC16F881030CB0199BCF01 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; sourceTree = ""; }; - E5E07926E2F0D6EBCCF626360CF3A857 /* VimeoResponseSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VimeoResponseSerializer.swift; path = VimeoNetworking/Sources/VimeoResponseSerializer.swift; sourceTree = ""; }; - E658A3C4548684F7BC6D6A4843EBEE23 /* AppConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppConfiguration.swift; path = VimeoNetworking/Sources/AppConfiguration.swift; sourceTree = ""; }; - E66CADEDAC09183F04136EEF61E99514 /* Pods-VimeoUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-VimeoUpload.modulemap"; sourceTree = ""; }; - E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VimeoNetworking.xcconfig; sourceTree = ""; }; - E7907829F15403992DC9A4B548CD41E1 /* NSError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSError+Extensions.swift"; path = "VimeoNetworking/Sources/NSError+Extensions.swift"; sourceTree = ""; }; - E79ADD6A0AFBC97CBC10D3AC1EA024DC /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = VimeoNetworking/Sources/Request.swift; sourceTree = ""; }; - E7FF72F2B598E25BCF0422AC7894A20D /* VIMVODItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODItem.m; path = VimeoNetworking/Sources/Models/VIMVODItem.m; sourceTree = ""; }; - EB013DBE7F6A441F3FC60D8F0F84FE89 /* VIMVideoFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoFile.m; path = VimeoNetworking/Sources/Models/VIMVideoFile.m; sourceTree = ""; }; - ECF46B5E5956D18C9AAD34EE80C8F77E /* VIMModelObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMModelObject.h; path = VimeoNetworking/Sources/Models/VIMModelObject.h; sourceTree = ""; }; + C320181FBAA6419F9922C6DA04CE8858 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; + C335747BAC89FD56550A201B22346E22 /* KeychainStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainStore.swift; path = VimeoNetworking/Sources/KeychainStore.swift; sourceTree = ""; }; + C63ED0D65754AC46BA5BD265905927A3 /* Dictionary+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Dictionary+Extension.swift"; path = "VimeoNetworking/Sources/Dictionary+Extension.swift"; sourceTree = ""; }; + C7BE56B849B6D01F2998F31D2E3A1584 /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; + C8D53468D1C81CA0547CF789B6BBA279 /* VIMTrigger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTrigger.m; path = VimeoNetworking/Sources/Models/VIMTrigger.m; sourceTree = ""; }; + CD91054962150A3989B2B75468A66B3A /* VIMMappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMMappable.h; path = VimeoNetworking/Sources/Models/VIMMappable.h; sourceTree = ""; }; + CE4AA7AA36603ECE729E1CA68BA17170 /* Scope.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scope.swift; path = VimeoNetworking/Sources/Scope.swift; sourceTree = ""; }; + D16AB35B830FFEFBCA1A54FEECF00688 /* VIMVideoHLSFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoHLSFile.h; path = VimeoNetworking/Sources/Models/VIMVideoHLSFile.h; sourceTree = ""; }; + D1AAD004B2391E45D0CFDE6BD5161C45 /* VIMVideoPlayRepresentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayRepresentation.h; path = VimeoNetworking/Sources/Models/VIMVideoPlayRepresentation.h; sourceTree = ""; }; + D1FDE2C9BA85F590260F20060AB242CD /* Request+Video.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Video.swift"; path = "VimeoNetworking/Sources/Request+Video.swift"; sourceTree = ""; }; + D2119BA99E14002BF2CBE326B9FDE611 /* Spatial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Spatial.swift; path = VimeoNetworking/Sources/Models/Spatial.swift; sourceTree = ""; }; + D3776C7660DC6C3625AA0D8F5FAA309F /* Request+ProgrammedContent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+ProgrammedContent.swift"; path = "VimeoNetworking/Sources/Request+ProgrammedContent.swift"; sourceTree = ""; }; + D404A1F87C817006C3E8A666C694032F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D43CA8D891F634A3B6C030094FD57F61 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D621C64C285F2F3F6D2E94D5478904AB /* Request+Comment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Comment.swift"; path = "VimeoNetworking/Sources/Request+Comment.swift"; sourceTree = ""; }; + D65AB8A3F8709D8E03A1E55F02815E95 /* VIMTag.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMTag.h; path = VimeoNetworking/Sources/Models/VIMTag.h; sourceTree = ""; }; + D7A828D7986D21FD6CD1AAFC2C2AD868 /* Pods-VimeoUpload-iOS-OldUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS-OldUpload.modulemap"; sourceTree = ""; }; + D895586985F339C17BED2110A40833B7 /* VIMRecommendation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMRecommendation.h; path = VimeoNetworking/Sources/Models/VIMRecommendation.h; sourceTree = ""; }; + D9908ACB446096C492A446BA88FA166A /* VIMObjectMapper+Generic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VIMObjectMapper+Generic.swift"; path = "VimeoNetworking/Sources/VIMObjectMapper+Generic.swift"; sourceTree = ""; }; + DAD0521F511BD664E45EB41B58AF31B4 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + DBF3023B138669B4B95A009E32DB8BB3 /* VIMLiveHeartbeat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveHeartbeat.swift; path = VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift; sourceTree = ""; }; + DC02A4CF59E2671A57372CB540064CDA /* PinCodeInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeInfo.swift; path = VimeoNetworking/Sources/Models/PinCodeInfo.swift; sourceTree = ""; }; + DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig"; sourceTree = ""; }; + DF7407EB66F9C5451125CC6E3C6435AF /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; + DFBA9CB028E92A4BD313247C31E60A61 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown"; sourceTree = ""; }; + DFC58F47C9DD7196415DDFB9B6BC4A30 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; + E06EAE5F0C5F509843323CD31A65EE3D /* VIMQuantityQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMQuantityQuota.h; path = VimeoNetworking/Sources/Models/VIMQuantityQuota.h; sourceTree = ""; }; + E0DBA074C1A1EF7B2FBD34B015FE454E /* VIMNotificationsConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMNotificationsConnection.m; path = VimeoNetworking/Sources/Models/VIMNotificationsConnection.m; sourceTree = ""; }; + E2CEF2ED5A0E7815E9E8D4C78D59F44B /* VIMAppeal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMAppeal.m; path = VimeoNetworking/Sources/Models/VIMAppeal.m; sourceTree = ""; }; + E3B33CBD784C5CC0C9CA499EAF079807 /* VIMUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMUploadTicket.h; sourceTree = ""; }; + E3DDD452D8A4270BFFD48415D5A19622 /* AccountStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AccountStore.swift; path = VimeoNetworking/Sources/AccountStore.swift; sourceTree = ""; }; + E3E247601A359D57EC8F553F9C64CBF2 /* VIMUploadQuota.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUploadQuota.h; path = VimeoNetworking/Sources/Models/VIMUploadQuota.h; sourceTree = ""; }; + E444E11AE5A825A8EABCD76A8C4B243E /* VIMPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPreference.m; path = VimeoNetworking/Sources/Models/VIMPreference.m; sourceTree = ""; }; + E45D7B55387DB56C27D0059AB7E055B7 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown"; sourceTree = ""; }; + E4889658443569A8A1D8566903CC7C63 /* Pods-VimeoUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-acknowledgements.markdown"; sourceTree = ""; }; + E4CCA16CB4DA0BEAAF9E5FDC699E0620 /* NSURLSessionConfiguration+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSessionConfiguration+Extensions.swift"; path = "VimeoNetworking/Sources/NSURLSessionConfiguration+Extensions.swift"; sourceTree = ""; }; + E4DAE619CE7FAF272F9A37C39488F2B0 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; + E587C9FF29D88EE57BF70FD1A2E7F282 /* VIMVideoProgressiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoProgressiveFile.m; path = VimeoNetworking/Sources/Models/VIMVideoProgressiveFile.m; sourceTree = ""; }; + E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h"; sourceTree = ""; }; + E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.debug.xcconfig"; sourceTree = ""; }; + E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOSTests-umbrella.h"; sourceTree = ""; }; + E88A8D19DDE4FA9447EF624510036F40 /* ExceptionCatcher+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ExceptionCatcher+Swift.swift"; path = "VimeoNetworking/Sources/ExceptionCatcher+Swift.swift"; sourceTree = ""; }; + E8E7383021E3C28DCFB7003B7AB0CFE5 /* VIMThumbnailUploadTicket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMThumbnailUploadTicket.h; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.h; sourceTree = ""; }; + EB1C3B38E0EE553906B1DBDEFD3BDCBA /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AFNetworking.modulemap; sourceTree = ""; }; + ECF48E0E4E9723EA5C6DC20322B121BD /* Request+Category.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Category.swift"; path = "VimeoNetworking/Sources/Request+Category.swift"; sourceTree = ""; }; EDF2918E5CB02CFC1ADE04F783E882E5 /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AFNetworking.framework; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EF00725EFACBAD93B7F4DF1A20DC1F42 /* VIMVideoDASHFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVideoDASHFile.m; path = VimeoNetworking/Sources/Models/VIMVideoDASHFile.m; sourceTree = ""; }; - EF2AA60D6B2F3B5482588A54A11AEE2C /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig"; sourceTree = ""; }; - F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-iOS-OldUpload-dummy.m"; sourceTree = ""; }; + EED53863EF737035C99BED54F123B01E /* VIMVideo+VOD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VIMVideo+VOD.m"; path = "VimeoNetworking/Sources/Models/VIMVideo+VOD.m"; sourceTree = ""; }; + EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig"; sourceTree = ""; }; + EF9E166E864267D6171DC8FF81515CFB /* VIMUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMUser.h; path = VimeoNetworking/Sources/Models/VIMUser.h; sourceTree = ""; }; F0E3C679036E864BB4FCA1E4E08863D9 /* VimeoNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = VimeoNetworking.framework; path = VimeoNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F268DB0DE841D483B2E3C48B95F2013B /* VIMTrigger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTrigger.m; path = VimeoNetworking/Sources/Models/VIMTrigger.m; sourceTree = ""; }; - F321BEF3CBD2446312D1D121E254290F /* VIMVideo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideo.h; path = VimeoNetworking/Sources/Models/VIMVideo.h; sourceTree = ""; }; - F4690B8E90016909BB0EA81C311C0953 /* VIMThumbnailUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMThumbnailUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.m; sourceTree = ""; }; - F482E1B7506500767CF4C18ED47EC41B /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; - F4B92013945EAA4735C74F5F20F119CB /* VIMCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMCategory.m; path = VimeoNetworking/Sources/Models/VIMCategory.m; sourceTree = ""; }; - F4ED96BBE5EA3EC1EC3534905722909E /* Pods-VimeoUpload-iOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.release.xcconfig"; sourceTree = ""; }; - F5312CFD09774B20432B1B6F083A1BFB /* VimeoNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-prefix.pch"; sourceTree = ""; }; - F5C6F4E723ED9B6BE8833278899E2B7A /* VIMPolicyDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPolicyDocument.m; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.m; sourceTree = ""; }; - F6FB24A5536DD004B48F00834B72CAAA /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; - F74BC0BC96EBD6E2C05C64B9D1AEBACD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F780713BAF9F48FFB39AC81244609869 /* VIMNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotification.h; path = VimeoNetworking/Sources/Models/VIMNotification.h; sourceTree = ""; }; - F9A28D7473445BAC2DF8ED3294808DCF /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; - FA2516A7CB0A50CB9CD1053367E53327 /* VIMGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMGroup.h; path = VimeoNetworking/Sources/Models/VIMGroup.h; sourceTree = ""; }; - FB6A99CF789B5BEA9456117EA2855947 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; - FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-dummy.m"; sourceTree = ""; }; - FF858E05AAA86C6C60607DC47DA2B2C9 /* VIMGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMGroup.m; path = VimeoNetworking/Sources/Models/VIMGroup.m; sourceTree = ""; }; + F1EB2D7709B876FBDFFBE5216FE08811 /* AppConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppConfiguration.swift; path = VimeoNetworking/Sources/AppConfiguration.swift; sourceTree = ""; }; + F2971FC192ABB5DB91E34062D7828114 /* Request+Trigger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Trigger.swift"; path = "VimeoNetworking/Sources/Request+Trigger.swift"; sourceTree = ""; }; + F6CF395977AAF063ED0CC9668B8AAA86 /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOSTests-acknowledgements.markdown"; sourceTree = ""; }; + F83CB5B79FD3B6F067543AF05B8459D8 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; + FB3C01D5603521498E11475D64311E11 /* Request+User.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+User.swift"; path = "VimeoNetworking/Sources/Request+User.swift"; sourceTree = ""; }; + FEF32E9662EE12350E3523AAB96B9D26 /* ErrorCode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorCode.swift; path = VimeoNetworking/Sources/ErrorCode.swift; sourceTree = ""; }; + FF233975FF531F028390C83E881ACB0A /* VIMTag.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTag.m; path = VimeoNetworking/Sources/Models/VIMTag.m; sourceTree = ""; }; + FFB1DD6EDA97BAF845FBA2724A7C0787 /* digicert-sha2.cer */ = {isa = PBXFileReference; includeInIndex = 1; name = "digicert-sha2.cer"; path = "VimeoNetworking/Resources/digicert-sha2.cer"; sourceTree = ""; }; + FFB3B19EF39E15B68440047330F5C8C2 /* VimeoNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VimeoNetworking.h; path = VimeoNetworking/Sources/VimeoNetworking.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -580,21 +596,18 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0688A28EFD0D0A1A7144514DA000857E /* Security */ = { + 00B5DC5B26CF6A3BA9D2B0B38F8B6636 /* Support Files */ = { isa = PBXGroup; children = ( - 7E1665CCFC918114440A9C679C0EBC34 /* AFSecurityPolicy.h */, - 7C61AA5DF51D49E9C9ADF4B82C45FE7B /* AFSecurityPolicy.m */, + EB1C3B38E0EE553906B1DBDEFD3BDCBA /* AFNetworking.modulemap */, + BEA387C55F9A6BA9F2050E67D857A67A /* AFNetworking.xcconfig */, + 2AE88B0D343D0E95B717C68A0B158781 /* AFNetworking-dummy.m */, + BA13A5B35FCC9134048E2A9E044367D7 /* AFNetworking-prefix.pch */, + 3F7089C91716E3744D691D08CBA119C1 /* AFNetworking-umbrella.h */, + 9198636B9A11064EB1AB3CC6FA2327A4 /* Info.plist */, ); - name = Security; - sourceTree = ""; - }; - 089180826529F9F68F4B5F6A9DDBB25C /* Resources */ = { - isa = PBXGroup; - children = ( - D1F5A4A4953624BBBEF0F5FCB89E5137 /* digicert-sha2.cer */, - ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/AFNetworking"; sourceTree = ""; }; 0FF05FD7261457A83FD94741651A2C03 /* Products */ = { @@ -611,74 +624,40 @@ name = Products; sourceTree = ""; }; - 12D003CEC8F6E7BBB84C7F33EA037BFD /* Support Files */ = { - isa = PBXGroup; - children = ( - A5F7EE334D37C9A1E58488BE86B5C0EC /* AFNetworking.modulemap */, - 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */, - 01B662642B6C94DAE9E304C3539BB0F0 /* AFNetworking-dummy.m */, - 2258E00A17D080420C729F636C7DA1FF /* AFNetworking-prefix.pch */, - 13485EB89727E5D2EC453EE2ACF262B1 /* AFNetworking-umbrella.h */, - 5C725AE77AFC85C663E9277B7E56E7F1 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/AFNetworking"; - sourceTree = ""; - }; 2313536380DFE00F24F89A43A4D4F130 /* Targets Support Files */ = { isa = PBXGroup; children = ( - 250366D0E919D4D61DE1830829F12355 /* Pods-VimeoUpload */, - 7C47F48E4D14E65448AE0EDF0794BE9B /* Pods-VimeoUpload-iOS */, - 815833918B7C638BDE7B559A442FBAF2 /* Pods-VimeoUpload-iOS-OldUpload */, - 9981A11047C5F8F251522C5E56C9B686 /* Pods-VimeoUpload-iOS-OldUploadTests */, - 460F4E21B8A744E66CC3D6E8DAC45F9C /* Pods-VimeoUpload-iOSTests */, + 701E74F27C44C18C2B9541A00A1B8C64 /* Pods-VimeoUpload */, + 9760086FBBBB58C8A8E6E7736B892D36 /* Pods-VimeoUpload-iOS */, + FB293DC0192603A810CF47C026B5C90A /* Pods-VimeoUpload-iOS-OldUpload */, + 7D9A6731A8623773AC09896C3E4E44E0 /* Pods-VimeoUpload-iOS-OldUploadTests */, + 5F47914DBA4B4E735FB0B966280E79F6 /* Pods-VimeoUpload-iOSTests */, ); name = "Targets Support Files"; sourceTree = ""; }; - 250366D0E919D4D61DE1830829F12355 /* Pods-VimeoUpload */ = { - isa = PBXGroup; - children = ( - 81B9D7C302854F8DDD4076AE8D68B1B7 /* Info.plist */, - E66CADEDAC09183F04136EEF61E99514 /* Pods-VimeoUpload.modulemap */, - 3DF748E9534F1105869E8635FABD2DB5 /* Pods-VimeoUpload-acknowledgements.markdown */, - 4FD417247D6F2F5D88E1083E3FB8227F /* Pods-VimeoUpload-acknowledgements.plist */, - FEEA81B3DDF609A73C329D49E4B55284 /* Pods-VimeoUpload-dummy.m */, - 6ED127F95CDCB38838CC180BF12E4D55 /* Pods-VimeoUpload-resources.sh */, - 0FD691F49DC930AF5CB1474C1A0C703B /* Pods-VimeoUpload-umbrella.h */, - C4CF223F05BF42A197EEB5B5F427FB15 /* Pods-VimeoUpload.debug.xcconfig */, - 590A00F4B0511AE74E5A1DE651C5634A /* Pods-VimeoUpload.release.xcconfig */, - ); - name = "Pods-VimeoUpload"; - path = "Target Support Files/Pods-VimeoUpload"; - sourceTree = ""; - }; - 35816D781B3D996C536649783ADD5C40 /* Pods */ = { + 41D12163DAAC0D56E0BA8D513C3E17ED /* Reachability */ = { isa = PBXGroup; children = ( - 8E56B78AA496F7FABA78B2B4FD059BCF /* AFNetworking */, - DF19E6D93D5476A1FC6AE5732454D11C /* VimeoNetworking */, + 2CE2728865671271B80E3729264F7010 /* AFNetworkReachabilityManager.h */, + E4DAE619CE7FAF272F9A37C39488F2B0 /* AFNetworkReachabilityManager.m */, ); - name = Pods; + name = Reachability; sourceTree = ""; }; - 460F4E21B8A744E66CC3D6E8DAC45F9C /* Pods-VimeoUpload-iOSTests */ = { + 4322B4BFC8ED7BC7213735B8F344C9C6 /* AFNetworking */ = { isa = PBXGroup; children = ( - 2A3F72A38ECAA6689938E0DD34F3126A /* Info.plist */, - D41615CC354B8B0A35926E7CC9AD71F6 /* Pods-VimeoUpload-iOSTests.modulemap */, - 90CE0CDA94D5A8DDA81A0AA529497EEB /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */, - B4580F679371388C6FC87FF024534456 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */, - A8B0BB58820A0B1DA182E061E886411B /* Pods-VimeoUpload-iOSTests-dummy.m */, - E02C81A3C7316395924E658D5BC8F10E /* Pods-VimeoUpload-iOSTests-frameworks.sh */, - 5CCA2741496873A942541EFBB5531983 /* Pods-VimeoUpload-iOSTests-resources.sh */, - BBC4BAA3C77B593AEF959B3D4C03A3EE /* Pods-VimeoUpload-iOSTests-umbrella.h */, - 80E26D00B3A1139F9D88C0E57B6F0DA3 /* Pods-VimeoUpload-iOSTests.debug.xcconfig */, - F4ED96BBE5EA3EC1EC3534905722909E /* Pods-VimeoUpload-iOSTests.release.xcconfig */, + 4E5896490FC1BBD2F4A1828F43CD796E /* AFNetworking.h */, + C50CA9B5114D361504B9D62149606538 /* NSURLSession */, + 41D12163DAAC0D56E0BA8D513C3E17ED /* Reachability */, + BAD833707E673EED2FA001135A8DE9C1 /* Security */, + A723AF0E5DCA7E1EBB42F04DE7267AB7 /* Serialization */, + 00B5DC5B26CF6A3BA9D2B0B38F8B6636 /* Support Files */, + FF6763AFB81BC7491CC5E44B660637DD /* UIKit */, ); - name = "Pods-VimeoUpload-iOSTests"; - path = "Target Support Files/Pods-VimeoUpload-iOSTests"; + name = AFNetworking; + path = AFNetworking; sourceTree = ""; }; 58ADEC1A744624280C424466F85276D6 /* iOS */ = { @@ -693,45 +672,71 @@ name = iOS; sourceTree = ""; }; - 601565E25F27ABFAD5D460A428D41214 /* Support Files */ = { + 5F47914DBA4B4E735FB0B966280E79F6 /* Pods-VimeoUpload-iOSTests */ = { isa = PBXGroup; children = ( - 2E6285983C1A0FF3F9827AE9B15D6EAB /* Info.plist */, - A81FB057C4219FBF8BD3D002E9E7272B /* VimeoNetworking.modulemap */, - E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */, - 6A0A4AB2432D657C9297E64DCDDB03A9 /* VimeoNetworking-dummy.m */, - F5312CFD09774B20432B1B6F083A1BFB /* VimeoNetworking-prefix.pch */, - 7F86DFC5D05E754156CA58540DAA1BAC /* VimeoNetworking-umbrella.h */, + D404A1F87C817006C3E8A666C694032F /* Info.plist */, + 768B121F5BBF2F6F17A30D3AF51F39BC /* Pods-VimeoUpload-iOSTests.modulemap */, + F6CF395977AAF063ED0CC9668B8AAA86 /* Pods-VimeoUpload-iOSTests-acknowledgements.markdown */, + 9D016933AD5FAF12115C7809993E0D09 /* Pods-VimeoUpload-iOSTests-acknowledgements.plist */, + 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */, + 39E99DADEC276F0039A9BB6590160B92 /* Pods-VimeoUpload-iOSTests-frameworks.sh */, + 61BBAE14F6D05F87DD0A7A0F550824DD /* Pods-VimeoUpload-iOSTests-resources.sh */, + E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */, + E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */, + 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */, ); - name = "Support Files"; - path = "../Target Support Files/VimeoNetworking"; + name = "Pods-VimeoUpload-iOSTests"; + path = "Target Support Files/Pods-VimeoUpload-iOSTests"; sourceTree = ""; }; - 71A4F6DC5F9A209CAB8F044E013717B9 /* Reachability */ = { + 701E74F27C44C18C2B9541A00A1B8C64 /* Pods-VimeoUpload */ = { isa = PBXGroup; children = ( - 40C278A2D7295B9C745A8F7C78D039A3 /* AFNetworkReachabilityManager.h */, - B4C942B4810471391926C69DDF06F459 /* AFNetworkReachabilityManager.m */, + 9D3768CC6CDDD824D653B921C0D96F6F /* Info.plist */, + 1263405891BAC778C715376CF6CAF9B2 /* Pods-VimeoUpload.modulemap */, + E4889658443569A8A1D8566903CC7C63 /* Pods-VimeoUpload-acknowledgements.markdown */, + 8E6D96934932FA9638F6BD2E31B8D86E /* Pods-VimeoUpload-acknowledgements.plist */, + BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */, + 2140E97C9A902AF978123E899B2EC965 /* Pods-VimeoUpload-resources.sh */, + 23203AB46E0B1066374BDDE11472401B /* Pods-VimeoUpload-umbrella.h */, + AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */, + B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */, ); - name = Reachability; + name = "Pods-VimeoUpload"; + path = "Target Support Files/Pods-VimeoUpload"; sourceTree = ""; }; - 7C47F48E4D14E65448AE0EDF0794BE9B /* Pods-VimeoUpload-iOS */ = { + 7CBAA003F4056781232CE84655B4E34D /* Support Files */ = { isa = PBXGroup; children = ( - 59ACC3119383FFF4846D1E7814D14DFB /* Info.plist */, - 6C9FDB087D69B2FF78F76AAF8C24EA80 /* Pods-VimeoUpload-iOS.modulemap */, - 30232B7C92B3EA202FD3EBDCE7FCA62E /* Pods-VimeoUpload-iOS-acknowledgements.markdown */, - 1E2C31E1C5219A492BA51ECF975649C4 /* Pods-VimeoUpload-iOS-acknowledgements.plist */, - 20429F7864AF6AA08CDB4E78DE31A84C /* Pods-VimeoUpload-iOS-dummy.m */, - 2823D0E27387DEDA4CD0C3CFBCC0B44F /* Pods-VimeoUpload-iOS-frameworks.sh */, - CA537B840B304BCD493A48F81F820D06 /* Pods-VimeoUpload-iOS-resources.sh */, - 1C0AF9E26B1AE44BE6700D2A8CF89819 /* Pods-VimeoUpload-iOS-umbrella.h */, - 6A7DD13AE760F49BD336D2C01BAA7890 /* Pods-VimeoUpload-iOS.debug.xcconfig */, - CBED8FAC62EC97352938CA51099A55E9 /* Pods-VimeoUpload-iOS.release.xcconfig */, + D43CA8D891F634A3B6C030094FD57F61 /* Info.plist */, + 0929220DA05F2AABD8DE93E3B540E6CA /* VimeoNetworking.modulemap */, + 8D709E2705777478BAC15C2AD7D53CAC /* VimeoNetworking.xcconfig */, + 26736EE1946BB2EA2E54378979F41A8C /* VimeoNetworking-dummy.m */, + 343F2A822CC143967CA7786EA0932BCE /* VimeoNetworking-prefix.pch */, + 7A9C62A5A324AA9AE6DEFBB9032EA5E7 /* VimeoNetworking-umbrella.h */, ); - name = "Pods-VimeoUpload-iOS"; - path = "Target Support Files/Pods-VimeoUpload-iOS"; + name = "Support Files"; + path = "../Target Support Files/VimeoNetworking"; + sourceTree = ""; + }; + 7D9A6731A8623773AC09896C3E4E44E0 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + isa = PBXGroup; + children = ( + 65544531C57D7687204CF1A58500C6BB /* Info.plist */, + 9A3C26DB3876114928F36AA5CF7EA0F5 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */, + E45D7B55387DB56C27D0059AB7E055B7 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */, + 3BF90FFD87F716998B15371C1C15106E /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */, + 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */, + 03BD44E17BF4F0A8D5B2F4DAD5ABB72C /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */, + 4D332695D30979CBB112477B9E1D04E4 /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */, + E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */, + DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */, + 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */, + ); + name = "Pods-VimeoUpload-iOS-OldUploadTests"; + path = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests"; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { @@ -739,261 +744,235 @@ children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, EFC8D1216166DE80CF4A6175E6193664 /* Frameworks */, - 35816D781B3D996C536649783ADD5C40 /* Pods */, + 8EF2E400D15CA50CEC95B662D69C2865 /* Pods */, 0FF05FD7261457A83FD94741651A2C03 /* Products */, 2313536380DFE00F24F89A43A4D4F130 /* Targets Support Files */, ); sourceTree = ""; }; - 815833918B7C638BDE7B559A442FBAF2 /* Pods-VimeoUpload-iOS-OldUpload */ = { + 8EF2E400D15CA50CEC95B662D69C2865 /* Pods */ = { isa = PBXGroup; children = ( - F74BC0BC96EBD6E2C05C64B9D1AEBACD /* Info.plist */, - 8D434E487EE19FF84352C937F1008B3B /* Pods-VimeoUpload-iOS-OldUpload.modulemap */, - BDEBFF33778D5264ED6AEA58E613AE82 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */, - 9BB0F28B65CFA82A1097FD4C71DA0487 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */, - F037B43615D083286E88811012A9A172 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */, - 2BF35D801896FA2A238107E3F9288174 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */, - 49926875B9F5E4B438C6D0FDAEE093A2 /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */, - CCB098F1FA5708F997DE9A18F1CA402A /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */, - 2EC7C61DABF8951A8EA0284CE90D8C35 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */, - 533C56098EE9CDC9C94F3635F25A9F98 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */, + 4322B4BFC8ED7BC7213735B8F344C9C6 /* AFNetworking */, + A8D88FFDB1E518BB5466C025DA1601A4 /* VimeoNetworking */, ); - name = "Pods-VimeoUpload-iOS-OldUpload"; - path = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload"; + name = Pods; sourceTree = ""; }; - 8B8CDD38562AECC9D2192D3735570568 /* NSURLSession */ = { + 9760086FBBBB58C8A8E6E7736B892D36 /* Pods-VimeoUpload-iOS */ = { isa = PBXGroup; children = ( - F6FB24A5536DD004B48F00834B72CAAA /* AFHTTPSessionManager.h */, - 9D84ED393688D7F4321FF3478294DAAA /* AFHTTPSessionManager.m */, - 01FD7E491D786675786392B66C27218C /* AFURLSessionManager.h */, - CA3350835CEC5107C6C293FE2D04E77F /* AFURLSessionManager.m */, + AFA9CE28C85633044910F197AE62024B /* Info.plist */, + 88E89F9C17ADFE5CAD4DE8D8CC0A0D28 /* Pods-VimeoUpload-iOS.modulemap */, + 164D73327C635745B3323BF6ED3ECD65 /* Pods-VimeoUpload-iOS-acknowledgements.markdown */, + 952F507F085A0B032F0A5999B8BB257B /* Pods-VimeoUpload-iOS-acknowledgements.plist */, + 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */, + 9531324FE69A206C8D425D93D70BCB29 /* Pods-VimeoUpload-iOS-frameworks.sh */, + 8C9165823267758FD6A92FD5BE0B6610 /* Pods-VimeoUpload-iOS-resources.sh */, + 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */, + 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */, + BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */, ); - name = NSURLSession; + name = "Pods-VimeoUpload-iOS"; + path = "Target Support Files/Pods-VimeoUpload-iOS"; sourceTree = ""; }; - 8E56B78AA496F7FABA78B2B4FD059BCF /* AFNetworking */ = { + A723AF0E5DCA7E1EBB42F04DE7267AB7 /* Serialization */ = { isa = PBXGroup; children = ( - 927C6F167862BCAC06F4E08000EB8C58 /* AFNetworking.h */, - 8B8CDD38562AECC9D2192D3735570568 /* NSURLSession */, - 71A4F6DC5F9A209CAB8F044E013717B9 /* Reachability */, - 0688A28EFD0D0A1A7144514DA000857E /* Security */, - B5E6DA0E3E0AC270FEEA7AB27E3E5D95 /* Serialization */, - 12D003CEC8F6E7BBB84C7F33EA037BFD /* Support Files */, - B23733533370FD3EC60B6BCB3950F37D /* UIKit */, + A2617AC84E29E2531F9A850D9ACB32F0 /* AFURLRequestSerialization.h */, + 2C0545C6A0BB2E5FCAC25B6B48DCA078 /* AFURLRequestSerialization.m */, + 05B90B6BC0EE7E2771D386409E2520A1 /* AFURLResponseSerialization.h */, + C320181FBAA6419F9922C6DA04CE8858 /* AFURLResponseSerialization.m */, ); - name = AFNetworking; - path = AFNetworking; + name = Serialization; sourceTree = ""; }; - 9981A11047C5F8F251522C5E56C9B686 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + A8D88FFDB1E518BB5466C025DA1601A4 /* VimeoNetworking */ = { isa = PBXGroup; children = ( - 6AC1A1CA96496068B2690A54CEA6343D /* Info.plist */, - E1D8B2BDDECC16F881030CB0199BCF01 /* Pods-VimeoUpload-iOS-OldUploadTests.modulemap */, - 9E78D488EE2F56C490F374FBD83C1062 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.markdown */, - 9ACF5761B029845B3F2897FDE0D45BB0 /* Pods-VimeoUpload-iOS-OldUploadTests-acknowledgements.plist */, - 712E55059FAF64DCE6FDA02F37A5AA2E /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */, - 8854A148A98E4C656CC085331FEE2A76 /* Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh */, - 3210E8330EE38198AC23E6AE501C828F /* Pods-VimeoUpload-iOS-OldUploadTests-resources.sh */, - 93737ECEFDDCCE11126CF5D863927683 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */, - 2A556F76898649B5A28BDB5446ED8308 /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */, - EF2AA60D6B2F3B5482588A54A11AEE2C /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */, + E3DDD452D8A4270BFFD48415D5A19622 /* AccountStore.swift */, + F1EB2D7709B876FBDFFBE5216FE08811 /* AppConfiguration.swift */, + 6D648E4B25C16FDBDEC0797AB2BE5007 /* AuthenticationController.swift */, + C1033E7DEBC541D9A9338CE7C50610E4 /* Constants.swift */, + C63ED0D65754AC46BA5BD265905927A3 /* Dictionary+Extension.swift */, + FEF32E9662EE12350E3523AAB96B9D26 /* ErrorCode.swift */, + E88A8D19DDE4FA9447EF624510036F40 /* ExceptionCatcher+Swift.swift */, + C335747BAC89FD56550A201B22346E22 /* KeychainStore.swift */, + 2C2256DF269F200E54F23366139302E0 /* Mappable.swift */, + 43B9196F6EC54907B8C7C03C6F2FD40E /* NetworkingNotification.swift */, + 568A1D7A6B9DCA4EEB4578D128A3D97A /* NSError+Extensions.swift */, + E4CCA16CB4DA0BEAAF9E5FDC699E0620 /* NSURLSessionConfiguration+Extensions.swift */, + BF0905C45FA9A8AD70DBE8F5912CDD71 /* Objc_ExceptionCatcher.h */, + 0E3912B484138E27FC0A632EBA58DA2C /* Objc_ExceptionCatcher.m */, + DC02A4CF59E2671A57372CB540064CDA /* PinCodeInfo.swift */, + 2D2783EEBEBD80F391B2E9561D564B74 /* PlayProgress.swift */, + 613E823A25BBCE75BC69C43C89BF7433 /* Request.swift */, + 6FA8F0CBBBE91CA96C4FE3E762F453C1 /* Request+Authentication.swift */, + 85994E98526B612F0F6742D5F61D1405 /* Request+Cache.swift */, + ECF48E0E4E9723EA5C6DC20322B121BD /* Request+Category.swift */, + 382B06B34D2454A8F5661BF34FBECDD2 /* Request+Channel.swift */, + D621C64C285F2F3F6D2E94D5478904AB /* Request+Comment.swift */, + 002DEE52AA04BFB0F28F813457694C4E /* Request+Configs.swift */, + 8BDAFE6138268993BA22EC2BA977CE78 /* Request+Notifications.swift */, + 6CBD22C0BDD11AAA880FD2800A9214ED /* Request+Picture.swift */, + 3FAF01EF36517F4FBE35E4FEA5AA83AC /* Request+PolicyDocument.swift */, + D3776C7660DC6C3625AA0D8F5FAA309F /* Request+ProgrammedContent.swift */, + 679592049C9804FB951BAA37DE2B4671 /* Request+Soundtrack.swift */, + 23B28388FB56C83D78C55CD9134F573B /* Request+Toggle.swift */, + F2971FC192ABB5DB91E34062D7828114 /* Request+Trigger.swift */, + FB3C01D5603521498E11475D64311E11 /* Request+User.swift */, + D1FDE2C9BA85F590260F20060AB242CD /* Request+Video.swift */, + 0FBB8F3B5297FB637EEE888393828C5F /* Response.swift */, + 9609A25E8F530B7CBC56B003E5A0750B /* ResponseCache.swift */, + 4AE0BCE76395C7777050E3A008BBB0DB /* Result.swift */, + CE4AA7AA36603ECE729E1CA68BA17170 /* Scope.swift */, + D2119BA99E14002BF2CBE326B9FDE611 /* Spatial.swift */, + 19B931CA1E789A92BFD8ECC5CBDBA3ED /* String+Parameters.swift */, + 0B5E7710A26B1361770593626EA31E53 /* Subscription.swift */, + 419AEF0897969545F437860CF7FE8B54 /* SubscriptionCollection.swift */, + 9ABCB52AD09380B5670C88214D8C76CE /* VIMAccount.h */, + 1D3D066919EE5CBF346AC0F67F4E49EF /* VIMAccount.m */, + 278F688842207EED37C8CC7FA26E7FD7 /* VIMActivity.h */, + 9C8C3258FFCED4DF57908D7C089E6CC2 /* VIMActivity.m */, + 975253FA96D61CB46588DC454929CA2D /* VIMAppeal.h */, + E2CEF2ED5A0E7815E9E8D4C78D59F44B /* VIMAppeal.m */, + 8076122816BCBFBE66625E25D858ABEF /* VIMBadge.swift */, + 2FDD83F4E797B9E4EF28C138743CC6E9 /* VIMCategory.h */, + 5247546347E72D6B431752E31046FECF /* VIMCategory.m */, + 0E53C77939A0A7EB1AC9CE305AECE884 /* VIMChannel.h */, + 88BE4FC1F681617CAF8FD663DFD66784 /* VIMChannel.m */, + 11B32D5B0AC4636B49B4686C20F3FE22 /* VIMComment.h */, + 7ECC7558C97F2EC5306C76D50C163A34 /* VIMComment.m */, + 053845F6F48FFC8FA3C048741EE12B54 /* VIMConnection.h */, + 56AAABC6AF778F87DEB0B23C2E9D48A5 /* VIMConnection.m */, + 1987C1726A4ECD388F92C613C3901C4D /* VIMCredit.h */, + 3C335F5C6E5A7FFCF07AECFE11022662 /* VIMCredit.m */, + 6183A34FBC7EF8E47C6CA774C5C234D7 /* VimeoClient.swift */, + FFB3B19EF39E15B68440047330F5C8C2 /* VimeoNetworking.h */, + 85BC7320C1C886A0FB389B093BA102C9 /* VimeoReachability.swift */, + 02BDFC75AF7EE167CA02D56FD1AAFA77 /* VimeoRequestSerializer.swift */, + A3A92DCA092DA862EE4829F35614FC04 /* VimeoResponseSerializer.swift */, + 9AF971A027E87B257D7A8A2CDF166218 /* VimeoSessionManager.swift */, + B0C704A7502C2125D2158B955B598A3F /* VimeoSessionManager+Constructors.swift */, + 41ADCAF32A9226395560D72DA6E3C950 /* VIMGroup.h */, + 4FE53B38466FDDC7ECA1B81488B3A06C /* VIMGroup.m */, + AF2CF9B0653941976BEFD36BF1106037 /* VIMInteraction.h */, + 950BD159D58CE92F402BBAB66465DE38 /* VIMInteraction.m */, + A7A9C5813434BC6219ABB82CE647CF44 /* VIMLive.swift */, + 54D7F41BC0B992675B6B1D1C460863C4 /* VIMLiveChat.swift */, + 9E52F63F91C276CD217160265C6521C4 /* VIMLiveChatUser.swift */, + DBF3023B138669B4B95A009E32DB8BB3 /* VIMLiveHeartbeat.swift */, + 4099B24520772D5AD7BDC99F612E9EB9 /* VIMLiveQuota.swift */, + 49582A710D2FA9A39A3D318A19071A01 /* VIMLiveStreams.swift */, + 5EF629404A7DC11EC1616617F52709AD /* VIMLiveTime.swift */, + CD91054962150A3989B2B75468A66B3A /* VIMMappable.h */, + BA95D72DAAF8256A3FCE22C2A19B3C4A /* VIMModelObject.h */, + 88144FC6064F1266CC84EBAFAEF323C8 /* VIMModelObject.m */, + 3C736020CFF02A03665D1F8205DCFEAE /* VIMNotification.h */, + 6413471EE3D47C01A83213F98B23E644 /* VIMNotification.m */, + AFFFEF5CBB05177827BED4B2A494E939 /* VIMNotificationsConnection.h */, + E0DBA074C1A1EF7B2FBD34B015FE454E /* VIMNotificationsConnection.m */, + 087D35323DA57BBD3EB0B15AAA2CECDE /* VIMObjectMapper.h */, + 8E3FABD02BFBCDCFB4C132537520E96E /* VIMObjectMapper.m */, + D9908ACB446096C492A446BA88FA166A /* VIMObjectMapper+Generic.swift */, + 23ED22E21D77AADDD752F77A41CEBC92 /* VIMPicture.h */, + 4DFB2B113DAAEB5477BEC12A8E4CAC2B /* VIMPicture.m */, + 074CB90AB4EE491A4175829E41A021F1 /* VIMPictureCollection.h */, + 9030EDE526F33AE457609C8466220643 /* VIMPictureCollection.m */, + 054FA7F7A2C705EB16FA99EAD39768E7 /* VIMPolicyDocument.h */, + 3E4249EB439BB7C93B7122461EE090C0 /* VIMPolicyDocument.m */, + 5BA48ED20026F05AF4A74144DF111CD9 /* VIMPreference.h */, + E444E11AE5A825A8EABCD76A8C4B243E /* VIMPreference.m */, + 211D21902A27187BB9A6CBCFDF54C734 /* VIMPrivacy.h */, + 77ECC63F0D5FFCD103ED573C1D69080D /* VIMPrivacy.m */, + 628BFC2DEB2CCA0CC4CEFA489B407AA3 /* VIMProgrammedContent.swift */, + E06EAE5F0C5F509843323CD31A65EE3D /* VIMQuantityQuota.h */, + 92BE1336A28EB4076DFE2007C5CC0CE1 /* VIMQuantityQuota.m */, + D895586985F339C17BED2110A40833B7 /* VIMRecommendation.h */, + 1774CA527703D1CF85EBC2345BBFF1C2 /* VIMRecommendation.m */, + 84F081230D6019BBC85EB4E8B1C0846F /* VIMReviewPage.swift */, + 237AC7DFD930C2E41A28BC277C0E5080 /* VIMSeason.h */, + 24F68E6A31E9A07717BA96E713B27524 /* VIMSeason.m */, + B0B17C17A5D09B854950C4832B06F111 /* VIMSizeQuota.h */, + 2FE657F6AB369E7F495FB2578B617113 /* VIMSizeQuota.m */, + 9DDACB879F6B15EC0842A540C2EC8E17 /* VIMSoundtrack.h */, + 287638321E192A350F152932FF8696AA /* VIMSoundtrack.m */, + D65AB8A3F8709D8E03A1E55F02815E95 /* VIMTag.h */, + FF233975FF531F028390C83E881ACB0A /* VIMTag.m */, + E8E7383021E3C28DCFB7003B7AB0CFE5 /* VIMThumbnailUploadTicket.h */, + 58510BC7E01D7BF9B0FF6F9B1299E292 /* VIMThumbnailUploadTicket.m */, + 32264BB52E443960700538AA6210172B /* VIMTrigger.h */, + C8D53468D1C81CA0547CF789B6BBA279 /* VIMTrigger.m */, + E3E247601A359D57EC8F553F9C64CBF2 /* VIMUploadQuota.h */, + 75A3716400D089BF995F91A2FCE5CACA /* VIMUploadQuota.m */, + E3B33CBD784C5CC0C9CA499EAF079807 /* VIMUploadTicket.h */, + 124E322BB1AC2D264A50206A59E74948 /* VIMUploadTicket.m */, + EF9E166E864267D6171DC8FF81515CFB /* VIMUser.h */, + B4CB888AAB7CB5886ECEB1E6DA00DDF0 /* VIMUser.m */, + 24053D2894257238A8730B9073573411 /* VIMUserBadge.h */, + 7EDCAC22E80332414E26B22B5ADAF2A6 /* VIMUserBadge.m */, + 94A2963496CBF1D4C44ECBA1D783CE49 /* VIMVideo.h */, + 16D39169B31656EF7684BFE1E1D00092 /* VIMVideo.m */, + 46DC8A41923CB7ECC7B785FD6E670A22 /* VIMVideo+VOD.h */, + EED53863EF737035C99BED54F123B01E /* VIMVideo+VOD.m */, + 36F75015ABE74BD204B5D4CAB023DC61 /* VIMVideoDASHFile.h */, + 2BA6B448E7E4C5A88185668AF5E89E82 /* VIMVideoDASHFile.m */, + 85B639446FA6F412610BA87432738461 /* VIMVideoDRMFiles.h */, + 0A4E139A3CA72544668FBA60696E4E83 /* VIMVideoDRMFiles.m */, + A1328F72B9E5AF74B40895C0730A01C4 /* VIMVideoFairPlayFile.h */, + 5C2CF949A57B249425698C5703F2B5BC /* VIMVideoFairPlayFile.m */, + 51FBA33A4F10A204FC351218C64318B4 /* VIMVideoFile.h */, + B7334D07BE6D5A54ADEC1615A9BA9D43 /* VIMVideoFile.m */, + D16AB35B830FFEFBCA1A54FEECF00688 /* VIMVideoHLSFile.h */, + 3B37DF56ABB3C3B31BCC79BD629FCDE6 /* VIMVideoHLSFile.m */, + 55EAC4D12F2C78AD8A7DFE7FFF158860 /* VIMVideoPlayFile.h */, + 85FA1FE99D7EB95F4D20DED65256B047 /* VIMVideoPlayFile.m */, + D1AAD004B2391E45D0CFDE6BD5161C45 /* VIMVideoPlayRepresentation.h */, + 7230FAF41E404CCAC4D74CA406827057 /* VIMVideoPlayRepresentation.m */, + 5E54A23CFD10B9010DF550B5FF111DED /* VIMVideoPreference.h */, + 19FAC3BA1D697B48272C1677518BEFAA /* VIMVideoPreference.m */, + 9C6DB9B6917E46EC2510108E0D2432EA /* VIMVideoProgressiveFile.h */, + E587C9FF29D88EE57BF70FD1A2E7F282 /* VIMVideoProgressiveFile.m */, + 7A6EB113AA7361D9D96093B066909AF1 /* VIMVideoUtils.h */, + 973068FAC212B157A116787EFE974C00 /* VIMVideoUtils.m */, + 9526C61F835808A6B7FA2E9E882109BE /* VIMVODConnection.h */, + 0D407DADF950894F8DA630A7035A18A9 /* VIMVODConnection.m */, + 9EE2E2B9ADCB9544FC9FFCAC35EBF332 /* VIMVODItem.h */, + 5C329F17281C1736B75339A4D764E279 /* VIMVODItem.m */, + E1E45123E9E4848E748B8D4B65242E1F /* Resources */, + 7CBAA003F4056781232CE84655B4E34D /* Support Files */, ); - name = "Pods-VimeoUpload-iOS-OldUploadTests"; - path = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests"; + name = VimeoNetworking; + path = VimeoNetworking; sourceTree = ""; }; - B23733533370FD3EC60B6BCB3950F37D /* UIKit */ = { + BAD833707E673EED2FA001135A8DE9C1 /* Security */ = { isa = PBXGroup; children = ( - C5624A087C10DE994D4F380D76D11CD8 /* AFAutoPurgingImageCache.h */, - 600D472EDC99CA818353A5D89F987011 /* AFAutoPurgingImageCache.m */, - A6B196AB2ADA189C96F4A92DF020A2AB /* AFImageDownloader.h */, - 3BFCEC6FBC3145714CC6CF4DFC949341 /* AFImageDownloader.m */, - FB6A99CF789B5BEA9456117EA2855947 /* AFNetworkActivityIndicatorManager.h */, - 19CEB26626C9812FA30C7379ACA089D6 /* AFNetworkActivityIndicatorManager.m */, - 1F5BC750D923B3B868099617A48936CF /* UIActivityIndicatorView+AFNetworking.h */, - 0A255F1E920EA10EF5D5D5D29ABF77DA /* UIActivityIndicatorView+AFNetworking.m */, - BC9E61ED1EDFE2CD20FA90CF00D4608B /* UIButton+AFNetworking.h */, - 9181B76CF70F368A91B6164CF5EA35AF /* UIButton+AFNetworking.m */, - BFECB493111928B6FBC7E30A53CD6C0C /* UIImage+AFNetworking.h */, - 994751133E5FF4982C5BCE1CAAB6A78B /* UIImageView+AFNetworking.h */, - 8A0EACC1726F08952CBA6D09D34A5E69 /* UIImageView+AFNetworking.m */, - AF5691A664BC371E586B7A9B0EA405C8 /* UIKit+AFNetworking.h */, - D65690666F392CD6883791300864C4BF /* UIProgressView+AFNetworking.h */, - DA2A360A317E5BEEB0074445003EDB17 /* UIProgressView+AFNetworking.m */, - 49CF485D82938742667C3CB53CCE9FED /* UIRefreshControl+AFNetworking.h */, - A0648207A189AF57F74C57B6416EFA4B /* UIRefreshControl+AFNetworking.m */, - D24A7C1D41EE2BA30BB03DAF0C03B000 /* UIWebView+AFNetworking.h */, - F9A28D7473445BAC2DF8ED3294808DCF /* UIWebView+AFNetworking.m */, + 0B23AFAA8CFABF5F1D2C46768C75744A /* AFSecurityPolicy.h */, + 052E7814C47996F86C13B71099AC1077 /* AFSecurityPolicy.m */, ); - name = UIKit; + name = Security; sourceTree = ""; }; - B5E6DA0E3E0AC270FEEA7AB27E3E5D95 /* Serialization */ = { + C50CA9B5114D361504B9D62149606538 /* NSURLSession */ = { isa = PBXGroup; children = ( - 8A85F49E86198194EBD238BC4D17B241 /* AFURLRequestSerialization.h */, - 37C980B8A834DB882EE016253A514531 /* AFURLRequestSerialization.m */, - F482E1B7506500767CF4C18ED47EC41B /* AFURLResponseSerialization.h */, - 213E236A9902F5C48054532E31B83A86 /* AFURLResponseSerialization.m */, + 586519E5D5FB438C925CE15AAE22CF71 /* AFHTTPSessionManager.h */, + 85ECA743434223FD5CD6B7F01E353850 /* AFHTTPSessionManager.m */, + 063F1229CC3B5D19372FD50F1A721E17 /* AFURLSessionManager.h */, + 24B19FCEF1EC11B2CA4858D49EE8BB60 /* AFURLSessionManager.m */, ); - name = Serialization; + name = NSURLSession; sourceTree = ""; }; - DF19E6D93D5476A1FC6AE5732454D11C /* VimeoNetworking */ = { + E1E45123E9E4848E748B8D4B65242E1F /* Resources */ = { isa = PBXGroup; children = ( - 1251E50741E644D6312C93A72D228CC2 /* AccountStore.swift */, - E658A3C4548684F7BC6D6A4843EBEE23 /* AppConfiguration.swift */, - A17090BB86BF96FF7E88156C3CB28957 /* AuthenticationController.swift */, - 3731BACEDB31E0440FF7D8D8C0C5E492 /* Constants.swift */, - B88A43F94D3F984AA9F607E6D336933C /* Dictionary+Extension.swift */, - 7EB63AB5D89A08887565D82CBAC4A0A3 /* ErrorCode.swift */, - 54035CD32BBAAD35D60CCBDDEC9CEE44 /* ExceptionCatcher+Swift.swift */, - 5C9F540643D34B036DF1F955F1B4921C /* KeychainStore.swift */, - D2425F9FA4CEFF602F6F4A053F70B656 /* Mappable.swift */, - E0B7E1AC52305E19ED018CF401606970 /* NetworkingNotification.swift */, - E7907829F15403992DC9A4B548CD41E1 /* NSError+Extensions.swift */, - E057FC5D3359A0584EF6495E7E3F6939 /* NSURLSessionConfiguration+Extensions.swift */, - 4F578FD9D3A32CB94B4560392C77383F /* Objc_ExceptionCatcher.h */, - 0F622C8797560A4BC9EDB9A36960BB2C /* Objc_ExceptionCatcher.m */, - DF6081927D4DC329FD7ED0F883D3B576 /* PinCodeInfo.swift */, - 77C69108CD986B77A9C0122212FD6613 /* PlayProgress.swift */, - E79ADD6A0AFBC97CBC10D3AC1EA024DC /* Request.swift */, - B6671E602410D6092439152EADE23607 /* Request+Authentication.swift */, - 5FECF370ACCB82ABBBADEB2C23066C4F /* Request+Cache.swift */, - 7AED40431616221804026E870D2C4C82 /* Request+Category.swift */, - 8B32A79195E4789E0D38A7C199CAB76A /* Request+Channel.swift */, - 3955D9A7EC2CD5C86E892193E62E9E0F /* Request+Comment.swift */, - 9717512502B2CBB64AF956ABFD3ECF10 /* Request+Configs.swift */, - 8251D7E0AE21801085F5938A385FEECA /* Request+Notifications.swift */, - 5A1207562C5BD2A71A7DC1A59A824D64 /* Request+Picture.swift */, - 58B62EE71CA018F665D8A742ADA3787A /* Request+PolicyDocument.swift */, - 8E9A61DA32392AD194FABDB69398E9DA /* Request+ProgrammedContent.swift */, - A287772AED26189394F852F1383AC103 /* Request+Soundtrack.swift */, - B39620FF19ACEB51C1DEA18A7A12B2D0 /* Request+Toggle.swift */, - 0279AA9EFAF1A2B4A5CBF25821A5F353 /* Request+Trigger.swift */, - 2D775ED9A8AEEA1BBA968B5740A34BFD /* Request+User.swift */, - B44AB41921F9D9B0620A5C3553FE4B72 /* Request+Video.swift */, - 9CB779FF1FA13F0CA99A13B6A0857464 /* Response.swift */, - 0C2608F23A5BD6202F176337A9F85D70 /* ResponseCache.swift */, - 4D38065BB0B23FBE674985A0F8B72EC9 /* Result.swift */, - 5DFE210185943D679FFCBBA4B56CF1A6 /* Scope.swift */, - 5427FA6B4360346236E6133084DFC10E /* Spatial.swift */, - DE1A0D9A33DD15FBE6EBBA8E2BC96A15 /* String+Parameters.swift */, - 1625E43ADF6E7014140E962E4D8D2E15 /* Subscription.swift */, - A784B675172C4B624597642F4BFE56E7 /* SubscriptionCollection.swift */, - D53F12E8EBC660E39EA3C8787CA543C4 /* VIMAccount.h */, - 338DFD9D7A1D0BF695F33079268D7506 /* VIMAccount.m */, - 14988764C33C43F624F78A9FD05EA2D7 /* VIMActivity.h */, - 08D1BA8A90EDC00E8EB28A886F2B4CD7 /* VIMActivity.m */, - D1C4237239681814FFDD6E43465463EE /* VIMAppeal.h */, - DF54671CD48BA10A8DA67E5817580E1A /* VIMAppeal.m */, - C550175B7EC7075E2835E8C7DCC2723F /* VIMBadge.swift */, - 23AB835CE25AE0CA04362D10838A3CF0 /* VIMCategory.h */, - F4B92013945EAA4735C74F5F20F119CB /* VIMCategory.m */, - B7F8E371904C34C30A4498FCCBE5F2AB /* VIMChannel.h */, - 4A5768E8C2A4AD09EE82653EC6A4E43A /* VIMChannel.m */, - 4D485D3D976CC90259E83A2E9452E4A9 /* VIMComment.h */, - 2B670858BCB563B5FDA0DFAF36BAC42E /* VIMComment.m */, - 635406386C5C563BE8F30C456CF4EBDE /* VIMConnection.h */, - D6E40E32356AA402232F099288457708 /* VIMConnection.m */, - 223024B664957866BB751A1110F1B9F0 /* VIMCredit.h */, - 029DD25355A20155F5263F91BB7FEB40 /* VIMCredit.m */, - 2BC19A9538D0325AF47F77D4BDAB05E5 /* VimeoClient.swift */, - 78E698DE1E56024C0E969710944608D8 /* VimeoNetworking.h */, - 2D394EBCF2013AC95F4F316F6683EA0C /* VimeoReachability.swift */, - 12603000BA159A15FCFE312613690391 /* VimeoRequestSerializer.swift */, - E5E07926E2F0D6EBCCF626360CF3A857 /* VimeoResponseSerializer.swift */, - 4FBA6678CB2E7680B2E44F4375609022 /* VimeoSessionManager.swift */, - 0E61F34F2E6B1E414299E9F4D8B5FFF8 /* VimeoSessionManager+Constructors.swift */, - FA2516A7CB0A50CB9CD1053367E53327 /* VIMGroup.h */, - FF858E05AAA86C6C60607DC47DA2B2C9 /* VIMGroup.m */, - CC338E19D1B0972E20EE7505BA2A23D2 /* VIMInteraction.h */, - D8008689D0B9CEE5A8B4F22EDD838235 /* VIMInteraction.m */, - C99148A0B79F2354BFE4ACBDE082A809 /* VIMMappable.h */, - ECF46B5E5956D18C9AAD34EE80C8F77E /* VIMModelObject.h */, - DEA77B71C751EBAB48B5E4F1CB110265 /* VIMModelObject.m */, - F780713BAF9F48FFB39AC81244609869 /* VIMNotification.h */, - CB8AD1BB40CAF74E14801DCD2423742E /* VIMNotification.m */, - 500FE9C937B576F7F751188E9C8B58C2 /* VIMNotificationsConnection.h */, - 9AF9D80E0A02BB32BC9B773852EB179C /* VIMNotificationsConnection.m */, - 813FFFC7FD25CCBEFAADC204524CBF26 /* VIMObjectMapper.h */, - AE0DF6D9E98751FE374466891CF22E93 /* VIMObjectMapper.m */, - 9FE2618631D9AF7217C1FC477FE2046E /* VIMObjectMapper+Generic.swift */, - 95DCAF0CD8E8A04FB849D0EB3ED32D01 /* VIMPicture.h */, - A33177A8F3A1862EEA26D30A1D63CC07 /* VIMPicture.m */, - C99A95A93AB75AFFF2B725A21CFF7377 /* VIMPictureCollection.h */, - 1DD953AC1282A72EB724028504DB991B /* VIMPictureCollection.m */, - A69D06730C5B3566A7B8FF5A91C529C1 /* VIMPolicyDocument.h */, - F5C6F4E723ED9B6BE8833278899E2B7A /* VIMPolicyDocument.m */, - 54DC90B45F8449D72BD99F888633B19A /* VIMPreference.h */, - 63AC97C994F4A5DEDCFAB03FE2835587 /* VIMPreference.m */, - B5BD0E4A9E13D4E5939E74CE749ACF61 /* VIMPrivacy.h */, - A95F8642BCADE8FFFF3519DABF17AB95 /* VIMPrivacy.m */, - 70B44A30D123EB8B4E494C3750DC262F /* VIMProgrammedContent.swift */, - D39B2D537CC8914B5AB105B380641859 /* VIMQuantityQuota.h */, - 33B7F78148EB2BCFE6839B0A753DA5A7 /* VIMQuantityQuota.m */, - 6E34B0E33381605BC20762BA521A846C /* VIMRecommendation.h */, - 9A4BE21C00C1529F947AEADC6AFEC0AB /* VIMRecommendation.m */, - 14EA79709F08DA21BEFAD6B727216E8A /* VIMSeason.h */, - 3BD0889F5B218566401FFF6EFC7448B1 /* VIMSeason.m */, - CF8F7E3CBB1B67B094851E251BC41BC2 /* VIMSizeQuota.h */, - 20B9A2C2DE00876AF465AD16D2C4C5BA /* VIMSizeQuota.m */, - 439CBA3DC46A23846FBD30F048BE086A /* VIMSoundtrack.h */, - 5AF82FDAADDBD52AD4A5E5FD40451B8F /* VIMSoundtrack.m */, - CA212CD04BA30762B1CD913421957487 /* VIMTag.h */, - 2C1DAA99F189991E9808E85A60902767 /* VIMTag.m */, - 58E8E3B2AB8BBBBA38D3F57103C1E48D /* VIMThumbnailUploadTicket.h */, - F4690B8E90016909BB0EA81C311C0953 /* VIMThumbnailUploadTicket.m */, - 4A6089F06B69AA4011F16D1BE20C6240 /* VIMTrigger.h */, - F268DB0DE841D483B2E3C48B95F2013B /* VIMTrigger.m */, - B784B3FDEB773915E04502100EB6F701 /* VIMUploadQuota.h */, - D91BABF53F46F9B94488819367CB559E /* VIMUploadQuota.m */, - 4E79D6C3283CB5EF1812B0021DA11FC5 /* VIMUploadTicket.h */, - 78D4C6E7DFAF7621B138929C43CEAD58 /* VIMUploadTicket.m */, - 6A8AD460DA5A2F6BCCC1E450EFCD4B60 /* VIMUser.h */, - 49FDC86C4F0DDC07BF2B3A89084F05AF /* VIMUser.m */, - 281BE9E67D00EF177F449FA07B3FB9C6 /* VIMUserBadge.h */, - 1541E9FB35206F5192232467FC5B429D /* VIMUserBadge.m */, - F321BEF3CBD2446312D1D121E254290F /* VIMVideo.h */, - 70A33F9F7F54570EFF69A144E3A3F760 /* VIMVideo.m */, - 149A190283760F475F91178FCB276A53 /* VIMVideo+VOD.h */, - 7EDADBD03E681FF52A2DE74B6E5A00A4 /* VIMVideo+VOD.m */, - DB074C96C719EAE42367359FBE57E21F /* VIMVideoDASHFile.h */, - EF00725EFACBAD93B7F4DF1A20DC1F42 /* VIMVideoDASHFile.m */, - 8B62CA840DF965405A11E44123254BAC /* VIMVideoDRMFiles.h */, - 2B409357FA7F1EE47504EB11F838F1FD /* VIMVideoDRMFiles.m */, - 90087B0D4E77D07B4E9F1D217680CB6B /* VIMVideoFairPlayFile.h */, - E062278A9F4389EDD1742AD9257524FC /* VIMVideoFairPlayFile.m */, - 0F7FE012B283AB95DB394786375AF14C /* VIMVideoFile.h */, - EB013DBE7F6A441F3FC60D8F0F84FE89 /* VIMVideoFile.m */, - 1D06933F7D0190E13136B6084CCF19FD /* VIMVideoHLSFile.h */, - 761B02BADB3E7B60DB3FF23CD76B6AF2 /* VIMVideoHLSFile.m */, - 0627D0F046BC1A05A689F1B332F10429 /* VIMVideoPlayFile.h */, - 68D1AD311A8197BF776022C79C5F1ACE /* VIMVideoPlayFile.m */, - A5CFEC28DA0D60B074FCFDEBB948B940 /* VIMVideoPlayRepresentation.h */, - 494E66C69C53C64522E95F995B56BAB5 /* VIMVideoPlayRepresentation.m */, - 528FFF37101F041C21101734F752C2AE /* VIMVideoPreference.h */, - 7FA3810B9E6829C7403D5D0F19EDACFD /* VIMVideoPreference.m */, - D3BA141A5553BAF7C116D19D1C669DC6 /* VIMVideoProgressiveFile.h */, - D112466303A0600AF69CB9E02EAA27E5 /* VIMVideoProgressiveFile.m */, - C9EA8CD923B36DA3EAD55FD3879A502F /* VIMVideoUtils.h */, - A59DE65C23DA87346FB7BB1F08A38182 /* VIMVideoUtils.m */, - 40FF5ABC89E5B4D81BB332308EBD6ABA /* VIMVODConnection.h */, - 6402A355C8648B1DF96ACEBE585B656F /* VIMVODConnection.m */, - 8C5391EE3E5EBC61C92F45484F77F90B /* VIMVODItem.h */, - E7FF72F2B598E25BCF0422AC7894A20D /* VIMVODItem.m */, - 089180826529F9F68F4B5F6A9DDBB25C /* Resources */, - 601565E25F27ABFAD5D460A428D41214 /* Support Files */, + FFB1DD6EDA97BAF845FBA2724A7C0787 /* digicert-sha2.cer */, ); - name = VimeoNetworking; - path = VimeoNetworking; + name = Resources; sourceTree = ""; }; EFC8D1216166DE80CF4A6175E6193664 /* Frameworks */ = { @@ -1005,6 +984,51 @@ name = Frameworks; sourceTree = ""; }; + FB293DC0192603A810CF47C026B5C90A /* Pods-VimeoUpload-iOS-OldUpload */ = { + isa = PBXGroup; + children = ( + 3FBFC292EA4C54BD77E35F6BA2F575DA /* Info.plist */, + D7A828D7986D21FD6CD1AAFC2C2AD868 /* Pods-VimeoUpload-iOS-OldUpload.modulemap */, + DFBA9CB028E92A4BD313247C31E60A61 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */, + 89919609A4C82EA22E98E3889206920D /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.plist */, + 977CC708C885349F45A1FFAA4DB28215 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m */, + 1C5628750E74ECB23E63B36AEF2A8E62 /* Pods-VimeoUpload-iOS-OldUpload-frameworks.sh */, + 48142BEFC1B53A12595D6F05AE02468E /* Pods-VimeoUpload-iOS-OldUpload-resources.sh */, + 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */, + EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */, + 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */, + ); + name = "Pods-VimeoUpload-iOS-OldUpload"; + path = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload"; + sourceTree = ""; + }; + FF6763AFB81BC7491CC5E44B660637DD /* UIKit */ = { + isa = PBXGroup; + children = ( + 22172916D62479D06D5CF43E7D6221F1 /* AFAutoPurgingImageCache.h */, + B4F6AAC38F1635780B6184FE5EA46AE0 /* AFAutoPurgingImageCache.m */, + B21518236153EC3A64EEFEBECC69EA0F /* AFImageDownloader.h */, + 809D7871F89F10847F736FD51B6E572F /* AFImageDownloader.m */, + BF68C901CE2FAF7115D7A89392132E12 /* AFNetworkActivityIndicatorManager.h */, + F83CB5B79FD3B6F067543AF05B8459D8 /* AFNetworkActivityIndicatorManager.m */, + DAD0521F511BD664E45EB41B58AF31B4 /* UIActivityIndicatorView+AFNetworking.h */, + 1A4D7AFAE3FD308B081EEEDFB903ED6E /* UIActivityIndicatorView+AFNetworking.m */, + 8F4591C0BC7AC01DD3ACA0A8926A7B54 /* UIButton+AFNetworking.h */, + 04D12C6544446F37488A73372ECD7402 /* UIButton+AFNetworking.m */, + 0F5BE0EE692E13BAB3C21C81744A5D29 /* UIImage+AFNetworking.h */, + 4E8543B06D5A46B428E08BE3BC8B9E25 /* UIImageView+AFNetworking.h */, + BD32BEB0442F9700B6A7059686E09FD6 /* UIImageView+AFNetworking.m */, + DFC58F47C9DD7196415DDFB9B6BC4A30 /* UIKit+AFNetworking.h */, + C7BE56B849B6D01F2998F31D2E3A1584 /* UIProgressView+AFNetworking.h */, + A81D196287250329C0B7B7181A74E8C7 /* UIProgressView+AFNetworking.m */, + A6B901CF4204810849282DA3432E8C2B /* UIRefreshControl+AFNetworking.h */, + B8D6AF7E79B10A496A13A6362D6D0ED1 /* UIRefreshControl+AFNetworking.m */, + 6D6092919464D508C8D86B2700DFA8ED /* UIWebView+AFNetworking.h */, + DF7407EB66F9C5451125CC6E3C6435AF /* UIWebView+AFNetworking.m */, + ); + name = UIKit; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1156,7 +1180,7 @@ isa = PBXNativeTarget; buildConfigurationList = BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */; buildPhases = ( - 69EA8A3B2B045C39F3FEAE055C1971DE /* Sources */, + 1B65B9263FF910AE8407A699F5EEA77D /* Sources */, CAF8D4EE064B6B1E4B79174DA6AA5F6C /* Frameworks */, 117A8DE7291D5E8AA42C06C16D65274E /* Headers */, 8EBBDB3B4D1EB2379318B416840C565D /* Resources */, @@ -1266,8 +1290,8 @@ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -1304,112 +1328,120 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 48A6D60BFBEA60A2A5034A42587756EB /* Sources */ = { + 1B65B9263FF910AE8407A699F5EEA77D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, + 45C5E5C88C1EB4F937EA8A8D61DB0C23 /* AccountStore.swift in Sources */, + 5A7CF07EA04BA6904C2F6D39B150D757 /* AppConfiguration.swift in Sources */, + D29CE3B4936E30E40BC49BCBE051E6E7 /* AuthenticationController.swift in Sources */, + 767C08640B306D31713FD796812936C0 /* Constants.swift in Sources */, + A1710C525C025D208EB261429E490278 /* Dictionary+Extension.swift in Sources */, + 25379E1884028D67BCE71FEEA527EFEE /* ErrorCode.swift in Sources */, + E8D92DC026B209771BD949E05D3AFA33 /* ExceptionCatcher+Swift.swift in Sources */, + 4CCEE8AD3AB1532C4D32339D5A9F4FDD /* KeychainStore.swift in Sources */, + DFA98792F73CC575F29CD10916103410 /* Mappable.swift in Sources */, + 83FCDB17570F4ADA7D366C700736120E /* NetworkingNotification.swift in Sources */, + 729562B22F1B677795997EC19EBE5E4D /* NSError+Extensions.swift in Sources */, + 0CA27B020872840789DDD453336E98C7 /* NSURLSessionConfiguration+Extensions.swift in Sources */, + 53723F5259DD8CD633384A2291821642 /* Objc_ExceptionCatcher.m in Sources */, + 6CFFF6EA4DB06FCB1320EF210520FCD5 /* PinCodeInfo.swift in Sources */, + 1EC80AD1D978C4A4D3F82C28FA58EA7E /* PlayProgress.swift in Sources */, + B87677143190F1C49F87267E39D745F3 /* Request+Authentication.swift in Sources */, + 37508AC12B9ED38F747EC85055974269 /* Request+Cache.swift in Sources */, + ABEBAECC5140ECAB02E412F3DE476B27 /* Request+Category.swift in Sources */, + E94E39B8FECDD3842F5FB8FBEFEB6054 /* Request+Channel.swift in Sources */, + F8DB5B57BE4B167EF10DAD14072039C0 /* Request+Comment.swift in Sources */, + 990790C6F911F26D24DF9A81CA970FCC /* Request+Configs.swift in Sources */, + CED12BB88FEE708DB47745F5857012D5 /* Request+Notifications.swift in Sources */, + 706F3B0C597A952378A51F1873477426 /* Request+Picture.swift in Sources */, + D73AE6017ADC0EF9CA84D0E02250C2A6 /* Request+PolicyDocument.swift in Sources */, + EC5A268ACF995CA30027C6CF627A8B8B /* Request+ProgrammedContent.swift in Sources */, + D19E4DB2AEC0FC7BA37078125F804A43 /* Request+Soundtrack.swift in Sources */, + 7F968612C43120B6D49943DC92DB0052 /* Request+Toggle.swift in Sources */, + 864FD16EDBB5343B65EC37FBADD2F0F3 /* Request+Trigger.swift in Sources */, + 56E5E28B1650515B91DEF816F96C09EF /* Request+User.swift in Sources */, + FBD54579F7A263415943EB203D81370C /* Request+Video.swift in Sources */, + C050293AE104F3869527D11E7822DB7A /* Request.swift in Sources */, + DF09590E7A5BF4A32212FE8A114589EF /* Response.swift in Sources */, + D7AE1DD407A36AF40EBB0C662B62D505 /* ResponseCache.swift in Sources */, + 8AE6353E2FBBA60948388B3351DE48A6 /* Result.swift in Sources */, + 98904000AD1F8FA3A3D945866291A42C /* Scope.swift in Sources */, + 937C8560C042D0CC1ACCC3618750B857 /* Spatial.swift in Sources */, + 8113369DB2CE9C201C875DA720235E5E /* String+Parameters.swift in Sources */, + 4981298872C3F1FA3EB6DF29D43C2931 /* Subscription.swift in Sources */, + 09CCB2D01C908D1F18C168BFE2D015E4 /* SubscriptionCollection.swift in Sources */, + 19CBEFD2FE3B51BBBD6EB5C306DF1E33 /* VIMAccount.m in Sources */, + 1B9DAF4DF791C38FB91C4E7A38D79062 /* VIMActivity.m in Sources */, + 85A609C171BB4D1D23D027237BFBF7D4 /* VIMAppeal.m in Sources */, + 811CD8F797817145A346855CE3194CCA /* VIMBadge.swift in Sources */, + 4A7A0A0B5B1793FF010DD3CFDB5A4EE7 /* VIMCategory.m in Sources */, + 8D9A10A6ABE05F6E3F774486FDDD90F7 /* VIMChannel.m in Sources */, + 4CA81BD4492C7D793741606C3D410330 /* VIMComment.m in Sources */, + 313CC415834728A2653DA14105740126 /* VIMConnection.m in Sources */, + AFE2D5FF4D78A45B80385BC8DAB5F851 /* VIMCredit.m in Sources */, + 265637986C671D48DE7FC3D3D42B7029 /* VimeoClient.swift in Sources */, + 6CDAC316B91CEEA2FCD0F7C9ED61BF30 /* VimeoNetworking-dummy.m in Sources */, + 537BCA27C302C1D048F1D82069075E41 /* VimeoReachability.swift in Sources */, + 3994E504660F6E69ED57D96E3DAF94DA /* VimeoRequestSerializer.swift in Sources */, + F3F52817DF323371086B21F563A1EEE3 /* VimeoResponseSerializer.swift in Sources */, + E4A6474C6D3CED3DD82258EBF50A9FFC /* VimeoSessionManager+Constructors.swift in Sources */, + F35673701FC7573279DE0CC68E549B11 /* VimeoSessionManager.swift in Sources */, + FCFD3758BFB63793A511AB04B1FE672C /* VIMGroup.m in Sources */, + C5216BDC40CF312A70ECA56DF5C21864 /* VIMInteraction.m in Sources */, + 1D5FB1A02A460CB09AE80A426471252D /* VIMLive.swift in Sources */, + DCF19474199F4EA958137F6B5F304CD7 /* VIMLiveChat.swift in Sources */, + 837388C35B7A8917315A208E6EA54D49 /* VIMLiveChatUser.swift in Sources */, + E36E4818037EACFB6946DA8229948E6B /* VIMLiveHeartbeat.swift in Sources */, + CED879759741E3F812F32CE57FB72729 /* VIMLiveQuota.swift in Sources */, + 1E2EA0508607A84659BC878E159CD2A5 /* VIMLiveStreams.swift in Sources */, + C3FEBACE24CAF319171EBDB795F99A3B /* VIMLiveTime.swift in Sources */, + AB98637833B7A86D89C477A862540969 /* VIMModelObject.m in Sources */, + 5CC666EBAF9BD88DF747D1CB5CEDF811 /* VIMNotification.m in Sources */, + 2869715605BBE2B9F0B87C481140C4AC /* VIMNotificationsConnection.m in Sources */, + AD81E630EC401FD350FF7C29C05F25AD /* VIMObjectMapper+Generic.swift in Sources */, + AA25051CDC01C768E6E46255EB93F2B9 /* VIMObjectMapper.m in Sources */, + FA55E421C1662BBECDB85A47D2BEE5E8 /* VIMPicture.m in Sources */, + 42C73F918F74A0B30E7992CE1EB76853 /* VIMPictureCollection.m in Sources */, + 3B6799B53665F7F1436612AFCCC090BE /* VIMPolicyDocument.m in Sources */, + 4C4E7F49FEA0E2B51A9FCE9382D4AF48 /* VIMPreference.m in Sources */, + 1F32D6BF08EB1CF5EB83BD7E17FD6D27 /* VIMPrivacy.m in Sources */, + C650CC4AF213C8559BC0EBD8418819A6 /* VIMProgrammedContent.swift in Sources */, + 0EBDE2B3D3B9C877D50C0D1949B344EF /* VIMQuantityQuota.m in Sources */, + 3518FAB66E75C2AC434098F8DC95C2CE /* VIMRecommendation.m in Sources */, + CAB95DE480716810D329F134A24EF989 /* VIMReviewPage.swift in Sources */, + ECD8E19C454CE6D614ACBD223FF43C2A /* VIMSeason.m in Sources */, + CF44A759B149E45255D54C33ECC58445 /* VIMSizeQuota.m in Sources */, + 467821605636A2B9193545BB1990932D /* VIMSoundtrack.m in Sources */, + 864F11B2FB4805BB730B0B929DC09498 /* VIMTag.m in Sources */, + 5D353E5F24A02F78A2C5CC17B64683C3 /* VIMThumbnailUploadTicket.m in Sources */, + 15E9310FCAD4917B88DE4B7A40293D36 /* VIMTrigger.m in Sources */, + 003BDE303FE1CC5BA4F9B106DD2F7CCD /* VIMUploadQuota.m in Sources */, + 4507742119523A6934ECCCCD328937E8 /* VIMUploadTicket.m in Sources */, + 54D3FB5505D4D955DE3F274986E61A61 /* VIMUser.m in Sources */, + B3D9C7D0ED3C02560E4221B78A345065 /* VIMUserBadge.m in Sources */, + 86D7A1DF2852184B6C61D0ABB3B164CF /* VIMVideo+VOD.m in Sources */, + 03D7437E2933E8F2D84D7C7120258C1C /* VIMVideo.m in Sources */, + 5B6320ED801A729CE23AE5745FB5F1F9 /* VIMVideoDASHFile.m in Sources */, + E43218932402D46FD0FE12CF83CF807D /* VIMVideoDRMFiles.m in Sources */, + B1305241D2F650681B2EC3BF76A63FF1 /* VIMVideoFairPlayFile.m in Sources */, + 7C8BF51A65698DB93A4F5D42350FC2FB /* VIMVideoFile.m in Sources */, + 231A81C92805B54EFD046C0FDD2F9FAE /* VIMVideoHLSFile.m in Sources */, + 193C20581E7FE079B9F905C18767C75F /* VIMVideoPlayFile.m in Sources */, + 8B5E3846BE778BF092BE4551A48B208A /* VIMVideoPlayRepresentation.m in Sources */, + C51F7FE4EFB5491C81C2BD82597DC0EF /* VIMVideoPreference.m in Sources */, + 30925D0003407DA31B1289D5CE154E56 /* VIMVideoProgressiveFile.m in Sources */, + ACA6C556378A7464AB80AC8930B0AC03 /* VIMVideoUtils.m in Sources */, + 86F10D77DE9504655628925288EC297C /* VIMVODConnection.m in Sources */, + D5CB48412364BD732AE9F5687C9DB020 /* VIMVODItem.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 69EA8A3B2B045C39F3FEAE055C1971DE /* Sources */ = { + 48A6D60BFBEA60A2A5034A42587756EB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A90F6D31147BD8FCEC444B7D99EB4798 /* AccountStore.swift in Sources */, - 2D99923831FFCE9F73C0C7D1E9F850E2 /* AppConfiguration.swift in Sources */, - 409A333CEF46B3875FD07DFD2D9C351B /* AuthenticationController.swift in Sources */, - F42AFA87354F2430D2381ABF91869006 /* Constants.swift in Sources */, - B3389B8752DF8E9154754220D09D26C9 /* Dictionary+Extension.swift in Sources */, - 8C006C64C5E77BEBECE54877B7BA22F0 /* ErrorCode.swift in Sources */, - 8670EB68C4D288954C15F2F9C2C935EE /* ExceptionCatcher+Swift.swift in Sources */, - F28BC46F4F246E19C0A9B040C5834B32 /* KeychainStore.swift in Sources */, - 080339FE8D3D0888FDF6C05AFF7FC108 /* Mappable.swift in Sources */, - A08EFFFF7DFACA49EB5F271ACD172E91 /* NetworkingNotification.swift in Sources */, - 6DF3CEDD6910937636F93F666E1FEF2C /* NSError+Extensions.swift in Sources */, - 99B51DB5B80BBD7A2597A8E79C34290D /* NSURLSessionConfiguration+Extensions.swift in Sources */, - 643CE7142699088977B0ACB353A4FE6B /* Objc_ExceptionCatcher.m in Sources */, - 8EA375C3F30127C965344B1369E6CC16 /* PinCodeInfo.swift in Sources */, - CB84112F8B8F712719EA050973CCC8D1 /* PlayProgress.swift in Sources */, - 19A239662363D8BFC6BA9BF3D5067368 /* Request+Authentication.swift in Sources */, - DDC2160DEE810F9EB54D5F4A4085FD06 /* Request+Cache.swift in Sources */, - D7B8668CAC424FB726E911830640210E /* Request+Category.swift in Sources */, - 7093D03FB36F62140CD7CB962C129184 /* Request+Channel.swift in Sources */, - A4CD0619CCDE6268C1769EF1379D3C5F /* Request+Comment.swift in Sources */, - 5FF671C4F478DAC06FFC03103078E43C /* Request+Configs.swift in Sources */, - 3BA7D30869081B9F81B6AD4DB1F37EA2 /* Request+Notifications.swift in Sources */, - B259265059C9F541C99A43E37B2CEFA6 /* Request+Picture.swift in Sources */, - D8384F0B4B1075A71813D409FD144A3F /* Request+PolicyDocument.swift in Sources */, - 5B6A5C2A7EC9E33337DE6287258CE806 /* Request+ProgrammedContent.swift in Sources */, - 301E7201FA2B9D755BCB08E3159E9F50 /* Request+Soundtrack.swift in Sources */, - F9988F40EBF406C9B8DFBBED61ECFC9C /* Request+Toggle.swift in Sources */, - 187D2040010AAE21EB338F950BA62F30 /* Request+Trigger.swift in Sources */, - 3D0097FB9A164EF53868F633A5D83647 /* Request+User.swift in Sources */, - 6E4D1B3AADC1FD45199854A24E146F0C /* Request+Video.swift in Sources */, - DCD624F830FDEDF0AE7E3DB66BBFFEC2 /* Request.swift in Sources */, - 8CE568F7A75458FEE8E5920F28460A1A /* Response.swift in Sources */, - 95FFAABEF0F35C113EC0189D39FF80A0 /* ResponseCache.swift in Sources */, - 719B05BF832EB807BD9313C39D9C1923 /* Result.swift in Sources */, - D4812514244A32F4EF17A3403CEB49E0 /* Scope.swift in Sources */, - C99047215776E7CB95C77ADC520B7001 /* Spatial.swift in Sources */, - 5AFC1E2FD02BA2FADA6BA4E264CD032A /* String+Parameters.swift in Sources */, - CF276AE6C6EFAF02D2DD4373E92D0648 /* Subscription.swift in Sources */, - 9FE718C13D939CB402496CD9D1644692 /* SubscriptionCollection.swift in Sources */, - DA1A46D62BEA2431AC6FD66D58E28C27 /* VIMAccount.m in Sources */, - 6A4FBD31811C902A97F3B75EE81B0ADD /* VIMActivity.m in Sources */, - 82752C5EBCDE2118D9B50C7623D5BF3B /* VIMAppeal.m in Sources */, - 43E008C211B853777039F3785D922B98 /* VIMBadge.swift in Sources */, - 430264544D67783EE06E5CBD9F8A7538 /* VIMCategory.m in Sources */, - 8A689A9EF197DC68E6947A869A6EE657 /* VIMChannel.m in Sources */, - 39A7BA428B81014747047554360D5933 /* VIMComment.m in Sources */, - D2D5FEA35F9DC0817488AC6B206C9C5B /* VIMConnection.m in Sources */, - 02605A6A0E2F37A37F765B54D8435EFE /* VIMCredit.m in Sources */, - 9AA200004AD2C86C440D0365294E8C25 /* VimeoClient.swift in Sources */, - 5BA9E478846DD5BD2F10533663C65DB0 /* VimeoNetworking-dummy.m in Sources */, - 1439E0621A820C1E240A135EDB917A78 /* VimeoReachability.swift in Sources */, - 5D3BDA09F740ECC2062E1876B3E9397C /* VimeoRequestSerializer.swift in Sources */, - F80A5BF96718E74CF0164FF1CF6CACE6 /* VimeoResponseSerializer.swift in Sources */, - 247BEC62A7A059F149C2F1DEE37EC117 /* VimeoSessionManager+Constructors.swift in Sources */, - 7417910A809FB46D7CBE239E1E41F40E /* VimeoSessionManager.swift in Sources */, - 39C4E7D235F2488DC19D3F16FFF5EF30 /* VIMGroup.m in Sources */, - 325DB73E71BF50607177ED27D34C4DEA /* VIMInteraction.m in Sources */, - D59D192A899629E78E80F8EA3AD0122B /* VIMModelObject.m in Sources */, - CE5AC9A4F95093069A44087A1689ACCB /* VIMNotification.m in Sources */, - CD632493290A2E4430F2F12E548B03B2 /* VIMNotificationsConnection.m in Sources */, - D27E342A895F8F0BF51D6B926ECA83FF /* VIMObjectMapper+Generic.swift in Sources */, - F6258BE02142A4CCAEBB00A2C4CEE82B /* VIMObjectMapper.m in Sources */, - 57782C2C26EC21E455E8B710E011BBAE /* VIMPicture.m in Sources */, - 8588C695824D58E2A9EAAE4D4A0E1BB9 /* VIMPictureCollection.m in Sources */, - 331895E3C644AC16BE2DFF952ACA9A1B /* VIMPolicyDocument.m in Sources */, - 86BE885A7FB6FC6F0B4E1C905DA7B64C /* VIMPreference.m in Sources */, - A73687DB3AA0983108BAEBF72C2340ED /* VIMPrivacy.m in Sources */, - F76D02044108AE9B76A2EBC583A3F403 /* VIMProgrammedContent.swift in Sources */, - F82C4C45E9CC756A62AA0F72D001B83D /* VIMQuantityQuota.m in Sources */, - F5B609F28B2E1EBF8AA9348E28333378 /* VIMRecommendation.m in Sources */, - 4F4DAAC9FD07C2F53A8FCAB14DDC976D /* VIMSeason.m in Sources */, - D90CAB5734D50648EE042D7F6EF739C7 /* VIMSizeQuota.m in Sources */, - 3DD477AEFC34A1B8BE6C21CB3737112D /* VIMSoundtrack.m in Sources */, - 93096AB36C54BB032194725968A44EA3 /* VIMTag.m in Sources */, - 1C415F8572AB31B576839CD7D07F5ACA /* VIMThumbnailUploadTicket.m in Sources */, - AC2F13906A8DF6AB50AB826835026D89 /* VIMTrigger.m in Sources */, - 20B1A3A44C5B99E3C0E0111980E2D166 /* VIMUploadQuota.m in Sources */, - 8E1AF09B6DC4CAE39BD8296809C3EB0E /* VIMUploadTicket.m in Sources */, - 2E50A1D999933C0305B3BD6C8E3DB6A8 /* VIMUser.m in Sources */, - 91DFEC02233D3AB83A35E5756A18A36C /* VIMUserBadge.m in Sources */, - 2158EA68FF692EC0E79E21A1868DDADC /* VIMVideo+VOD.m in Sources */, - E9083640FA1E37FD7F1CD8C3D3113F71 /* VIMVideo.m in Sources */, - 39B6EA71EDF5F8DDFEE1E4F5BEA0159B /* VIMVideoDASHFile.m in Sources */, - C1539E868EAA683B1B80A0F530ACCDF1 /* VIMVideoDRMFiles.m in Sources */, - 0FF332A4A3B2E0FC72A18026068678FA /* VIMVideoFairPlayFile.m in Sources */, - BF2E64C3355CB069145EAF61D1223910 /* VIMVideoFile.m in Sources */, - 8BFB2E98B986C0843E8FB1D4C63DC4B1 /* VIMVideoHLSFile.m in Sources */, - A8F1B4C9D1D600563C86DF374BB1FF59 /* VIMVideoPlayFile.m in Sources */, - 778D21F2C8E74994835AF74CF639561E /* VIMVideoPlayRepresentation.m in Sources */, - B9331886EB47FEE9CC9739C45CEE35CB /* VIMVideoPreference.m in Sources */, - 1CBE32C0E7A5B487D85887CECE9070E0 /* VIMVideoProgressiveFile.m in Sources */, - 29F875173B766FA11C5852EA61C674DC /* VIMVideoUtils.m in Sources */, - F51ECD19F851C26CEB4925B83D85ABDA /* VIMVODConnection.m in Sources */, - 7DEBA2ACA54253C65CA292BCF51B476B /* VIMVODItem.m in Sources */, + CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1516,174 +1548,152 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 00F87340FE541E1103068D879CA2CF38 /* Release */ = { + 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */; + baseConfigurationReference = BEA387C55F9A6BA9F2050E67D857A67A /* AFNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = VimeoNetworking; + MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 0353BEE271297126048240FF40109383 /* Debug */ = { + 4847B57B4A65C23778D7CB43055459C7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C4CF223F05BF42A197EEB5B5F427FB15 /* Pods-VimeoUpload.debug.xcconfig */; + baseConfigurationReference = DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload; + PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 20D32A089D17DDAD18CBFD6FBF2E9615 /* Debug */ = { + 7F525E5C9E7655710D00B417733FF93A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2A556F76898649B5A28BDB5446ED8308 /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */; + baseConfigurationReference = 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 2175E73CD648994904DA0EE62BAFD809 /* Release */ = { + 887401EF06F31C5449153BE7B7801D96 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F4ED96BBE5EA3EC1EC3534905722909E /* Pods-VimeoUpload-iOSTests.release.xcconfig */; + baseConfigurationReference = 8D709E2705777478BAC15C2AD7D53CAC /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOSTests; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_NAME = VimeoNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 2B510856FA4E9572B537CBE0802D1591 /* Release */ = { + 96953B0A688C8F1B9D5A885629BAD093 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CBED8FAC62EC97352938CA51099A55E9 /* Pods-VimeoUpload-iOS.release.xcconfig */; + baseConfigurationReference = BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1692,113 +1702,128 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 2DD310F88AC219696E5427287889ABE7 /* Release */ = { + 97E7263EC7910334B64B17C51EC21E8F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */; + baseConfigurationReference = B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = AFNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_VimeoUpload; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 34FE9531DA9AF2820790339988D5FF41 /* Release */ = { + 991D2ACF36318340024E3F7ACF7FB825 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; }; - name = Release; + name = Debug; }; - 505D755E61F57BAAE9431B5466556E3B /* Debug */ = { + A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2EC7C61DABF8951A8EA0284CE90D8C35 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; + baseConfigurationReference = EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1808,107 +1833,95 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 8B3142E38294C0E28FF0047FA73C2EE5 /* Release */ = { + AC4A9B891556FD0225D15F5278786405 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 533C56098EE9CDC9C94F3635F25A9F98 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; + baseConfigurationReference = 8D709E2705777478BAC15C2AD7D53CAC /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_NAME = VimeoNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 9E3B0F5EFF14D554D71BB8100B4A6C5C /* Debug */ = { + B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89AB0F31192190BE89B818137CC8A970 /* AFNetworking.xcconfig */; + baseConfigurationReference = 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = AFNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - A752ACEB3813BB9BE2907109FC21334C /* Release */ = { + B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 590A00F4B0511AE74E5A1DE651C5634A /* Pods-VimeoUpload.release.xcconfig */; + baseConfigurationReference = AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1916,42 +1929,36 @@ PRODUCT_NAME = Pods_VimeoUpload; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - B017DF19B619918B580DB5352814A431 /* Debug */ = { + B74D3C7ABDBC926B683234C5B86E043F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E66FD2DF824A81DF2975B49945EAEA30 /* VimeoNetworking.xcconfig */; + baseConfigurationReference = BEA387C55F9A6BA9F2050E67D857A67A /* AFNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/AFNetworking/AFNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/AFNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = VimeoNetworking; + MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -1959,29 +1966,25 @@ }; name = Debug; }; - B2255DAE8F42483DEA722A3035D3E833 /* Debug */ = { + CD0AF168E1330906C7302C8513242FE4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6A7DD13AE760F49BD336D2C01BAA7890 /* Pods-VimeoUpload-iOS.debug.xcconfig */; + baseConfigurationReference = 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1991,36 +1994,89 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - B5B05939143791DFBEA62213256EB290 /* Debug */ = { + DA03565BE765DB55C6448FB363A44481 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 80E26D00B3A1139F9D88C0E57B6F0DA3 /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -2034,98 +2090,47 @@ }; name = Debug; }; - B7BD003B8DAA163290363B593AB8A4B9 /* Release */ = { + F042D3877BC9E4C7C19D93921E6650DE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF2AA60D6B2F3B5482588A54A11AEE2C /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; + baseConfigurationReference = 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = Pods_VimeoUpload_iOSTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - C104F7F091290C3D1E248192F07FE689 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 0D4109D91B43D42CD4DEC15877BB90A8 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - B5B05939143791DFBEA62213256EB290 /* Debug */, - 2175E73CD648994904DA0EE62BAFD809 /* Release */, + E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */, + F042D3877BC9E4C7C19D93921E6650DE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2133,8 +2138,8 @@ 2545BFAECF1D540C5259B454339817B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 20D32A089D17DDAD18CBFD6FBF2E9615 /* Debug */, - B7BD003B8DAA163290363B593AB8A4B9 /* Release */, + 4847B57B4A65C23778D7CB43055459C7 /* Debug */, + B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2142,8 +2147,8 @@ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - C104F7F091290C3D1E248192F07FE689 /* Debug */, - 34FE9531DA9AF2820790339988D5FF41 /* Release */, + 991D2ACF36318340024E3F7ACF7FB825 /* Debug */, + DA03565BE765DB55C6448FB363A44481 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2151,8 +2156,8 @@ 31E01BC98C827BD8A78F94173CDCC418 /* Build configuration list for PBXNativeTarget "AFNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9E3B0F5EFF14D554D71BB8100B4A6C5C /* Debug */, - 2DD310F88AC219696E5427287889ABE7 /* Release */, + B74D3C7ABDBC926B683234C5B86E043F /* Debug */, + 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2160,8 +2165,8 @@ 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - B2255DAE8F42483DEA722A3035D3E833 /* Debug */, - 2B510856FA4E9572B537CBE0802D1591 /* Release */, + CD0AF168E1330906C7302C8513242FE4 /* Debug */, + 96953B0A688C8F1B9D5A885629BAD093 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2169,8 +2174,8 @@ 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0353BEE271297126048240FF40109383 /* Debug */, - A752ACEB3813BB9BE2907109FC21334C /* Release */, + B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */, + 97E7263EC7910334B64B17C51EC21E8F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2178,8 +2183,8 @@ AD05C11A3D8E19B37EB76DD0591807ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - 505D755E61F57BAAE9431B5466556E3B /* Debug */, - 8B3142E38294C0E28FF0047FA73C2EE5 /* Release */, + A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */, + 7F525E5C9E7655710D00B417733FF93A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2187,8 +2192,8 @@ BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - B017DF19B619918B580DB5352814A431 /* Debug */, - 00F87340FE541E1103068D879CA2CF38 /* Release */, + 887401EF06F31C5449153BE7B7801D96 /* Debug */, + AC4A9B891556FD0225D15F5278786405 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/VimeoNetworking/Info.plist b/Pods/Target Support Files/VimeoNetworking/Info.plist index cba25855..90db36aa 100644 --- a/Pods/Target Support Files/VimeoNetworking/Info.plist +++ b/Pods/Target Support Files/VimeoNetworking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.0.1 + 3.1.0 CFBundleSignature ???? CFBundleVersion diff --git a/Pods/VimeoNetworking/README.md b/Pods/VimeoNetworking/README.md index fe8b0162..fef1f9df 100644 --- a/Pods/VimeoNetworking/README.md +++ b/Pods/VimeoNetworking/README.md @@ -1,6 +1,6 @@ # VimeoNetworking [![](https://circleci.com/gh/vimeo/VimeoNetworking.png?style=shield&circle-token=0443de366b231f05e3b1b1b3bf64a434b9ec1cfe)](https://circleci.com/gh/vimeo/VimeoNetworking) -**VimeoNetworking** is the authoritative Swift networking library for the Vimeo API. Fully designed and implemented with Swift in mind, **VimeoNetworking** is type-safe, well `enum`erated, and never, ever, *ever* force-unwrapped. +**VimeoNetworking** is the authoritative Swift networking library for the Vimeo API. Fully designed and implemented with Swift in mind, **VimeoNetworking** is type-safe, well `enum`erated, and never, ever, *ever* force-unwrapped. ##### Hey Creator, if you're primarily interested in uploading videos to Vimeo, you should also check out [VimeoUpload](https://github.com/vimeo/VimeoUpload). @@ -9,7 +9,8 @@ - iOS (8.0+) - tvOS (9.0+) -## Installing with CocoaPods +## Installing +At this stage of development VimeoNetworking is not yet available as a CocoaPod via the public Podspecs repo. For now we recommend including it in your project as a submodule. If you'd still like to work with VimeoNetworking as a development pod, simply configure your Podfile as shown below. To get started integrating `VimeoNetworking`, add the following lines to your `Podfile` and run `pod install`: @@ -17,7 +18,7 @@ To get started integrating `VimeoNetworking`, add the following lines to your `P use_frameworks! # required for Swift frameworks target 'YourAppTargetName' do - pod 'VimeoNetworking', '1.0' + pod 'VimeoNetworking', :path => './Submodules/VimeoNetworking' end ``` @@ -52,15 +53,15 @@ Before we can actually start getting meaningful data from the API, there's one l Client credentials allow you to see everything that's publicly available on Vimeo. This is essentially equivalent to visiting Vimeo.com without signing up for an account or logging in. This is the simplest authentication method to implement, just one function completes the grant. -```Swift +```Swift let authenticationController = AuthenticationController(client: vimeoClient) -authenticationController.clientCredentialsGrant { result in +authenticationController.clientCredentialsGrant { result in switch result { case .Success(let account): print("Successfully authenticated with account: \(account)") case .Failure(let error): - print("error authenticating: \(error)") + print("error authenticating: \(error)") } } ``` @@ -88,7 +89,7 @@ The user will be prompted to log in and grant permissions to your application. func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { authenticationController.codeGrant(responseURL: url) { result in - switch result + switch result { case .Success(let account): print("authenticated successfully: \(account)") @@ -96,7 +97,7 @@ func application(app: UIApplication, openURL url: NSURL, options: [String : AnyO print("failure authenticating: \(error)") } } - + return true } ``` @@ -123,18 +124,18 @@ authenticationController.accessToken("your_access_tocken") { result in `AuthenticationController` saves the accounts it successfully authenticates in the Keychain. The next time your application launches, you should first attempt to load a previously authenticated account before prompting the user to authenticate. ```Swift -do +do { - if let account = try authenticationController.loadSavedAccount() + if let account = try authenticationController.loadSavedAccount() { print("account loaded successfully: \(account)" - } - else + } + else { print("no saved account found, authenticate...") } } -catch let error +catch let error { print("error loading account: \(error)") } @@ -163,7 +164,7 @@ By declaring the expected model object type, we can ensure that both the request After we send that request, we'll get a `Result` enum back. This could be either a `.Success` or a `.Failure` value. `.Success` will contain a `Response` object, while `.Failure` will contain an `NSError`. Switch between these two cases to handle whichever is encountered: ```Swift -vimeoClient.request(videoRequest) { result in +vimeoClient.request(videoRequest) { result in switch result { case .Success(let response: Response): let video: VIMVideo = response.model @@ -182,12 +183,12 @@ One neat **ProTip**: Your `Request` model type doesn't just have to be a single ```Swift let staffPickedVideosRequest = Request<[VIMVideo]>(path: "/channels/staffpicks/videos") -vimeoClient.request(staffPickedVideosRequest) { result in - switch result +vimeoClient.request(staffPickedVideosRequest) { result in + switch result { case .Success(let response: Response): let videos: [VIMVideo] = response.model - for video in videos + for video in videos { print("retrieved video: \(video)") } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift index 29fee82c..b114da20 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift @@ -133,7 +133,7 @@ final class AccountStore throw error } - if let userJSON = account.userJSON + if let userJSON = account.userJSON as? [String: Any] { try account.user = VIMObjectMapper.mapObject(responseDictionary: userJSON) as VIMUser } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift index 71296bc8..1e8f7522 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AppConfiguration.swift @@ -24,50 +24,41 @@ // THE SOFTWARE. // -import Foundation - -/** - * Stores all static information relevant to a client application - */ +/// Stores all static information relevant to a client application public struct AppConfiguration { public let clientIdentifier: String public let clientSecret: String public let scopes: [Scope] - - let keychainService: String - let keychainAccessGroup: String? - public let apiVersion: String public let baseUrl: URL + let keychainService: String + let keychainAccessGroup: String? - /** - Create a new `AppConfiguration` - - - parameter clientIdentifier: The client key designated by the api for your application - - parameter clientSecret: The client secret designated by the api for your application - - parameter scopes: An array of `Scope`s that your application requests - - parameter keychainService: Identifes your application to the system keychain, defaults to `KeychainServiceVimeo` - - parameter keychainAccessGroup: Access group your application should use for the system keychain, defaults to nil - - parameter apiVersion: API version your requests should use, defaults to `VimeoDefaultAPIVersionString` - - parameter baseUrl: The baseUrl for HTTP requests made using this configuration, defaults to `VimeoBaseURL` - - - returns: an initialized AppConfiguration - */ + /// Create a new `AppConfiguration` + /// + /// - Parameters: + /// - clientIdentifier: The client key designated by the api for your application + /// - clientSecret: The client secret designated by the api for your application + /// - scopes: An array of `Scope`s that your application requests + /// - keychainService: Identifes your application to the system keychain, defaults to `KeychainServiceVimeo` + /// - keychainAccessGroup: Access group your application should use for the system keychain, defaults to nil + /// - apiVersion: API version your requests should use, defaults to `VimeoDefaultAPIVersionString` + /// - baseUrl: The baseUrl for HTTP requests made using this configuration, defaults to `VimeoBaseURL` public init(clientIdentifier: String, clientSecret: String, scopes: [Scope], keychainService: String, keychainAccessGroup: String? = nil, - apiVersion: String = VimeoDefaultAPIVersionString, - baseUrl: URL = VimeoBaseURL) + apiVersion: String? = nil, + baseUrl: URL? = nil) { self.clientIdentifier = clientIdentifier self.clientSecret = clientSecret self.scopes = scopes self.keychainService = keychainService self.keychainAccessGroup = keychainAccessGroup - self.apiVersion = apiVersion - self.baseUrl = baseUrl + self.apiVersion = apiVersion ?? VimeoDefaultAPIVersionString + self.baseUrl = baseUrl ?? VimeoBaseURL } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift index f171085c..c706e784 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift @@ -519,13 +519,19 @@ final public class AuthenticationController try self.accountStore.removeAccount(ofType: .user) } - // MARK: - Private - - private func authenticate(with request: AuthenticationRequest, completion: @escaping AuthenticationCompletion) + /** + Executes the specified authentication request, then the specified completion. + + - request: A request to fetch a VIMAccount. + - completion: A closure to handle the VIMAccount or error received. + */ + public func authenticate(with request: AuthenticationRequest, completion: @escaping AuthenticationCompletion) { self.authenticate(with: self.authenticatorClient, request: request, completion: completion) } + // MARK: - Private + private func authenticate(with client: VimeoClient, request: AuthenticationRequest, completion: @escaping AuthenticationCompletion) { let _ = client.request(request) { result in diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift index e4bb86c9..ff94956e 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Constants.swift @@ -30,4 +30,4 @@ import Foundation public let VimeoBaseURL = URL(string: "https://api.vimeo.com")! /// Default API version to use for requests -internal let VimeoDefaultAPIVersionString = "3.2" +let VimeoDefaultAPIVersionString = "3.2" diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift index 48626d98..5986bba5 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/ErrorCode.swift @@ -32,7 +32,8 @@ public enum VimeoErrorCode: Int // Upload case uploadStorageQuotaExceeded = 4101 case uploadDailyQuotaExceeded = 4102 - + case uploadQuotaSizeExceededCap = 3428 + case invalidRequestInput = 2204 // root error code for all invalid parameters errors below // Password-protected video playback @@ -68,6 +69,19 @@ public enum VimeoErrorCode: Int case facebookInvalidToken = 2300 case facebookMissingProperty = 2301 case facebookMalformedToken = 2302 + case googleUnableToCreateUserMissingEmail = 2325 + case googleUnableToCreateUserTokenTooLong = 2326 + case googleUnableToLoginNoToken = 2327 + case googleUnableToLoginNonExistentProperty = 2328 + case googleUnableToLoginEmailNotFoundViaToken = 2329 + case googleUnableToCreateUserInsufficientPermissions = 2330 + case googleUnableToCreateUserCannotValidateToken = 2331 + case googleUnableToCreateUserDailyLimit = 2332 + case googleUnableToLoginInsufficientPermissions = 2333 + case googleUnableToLoginCannotValidateToken = 2334 + case googleUnableToLoginDailyLimit = 2335 + case googleUnableToLoginCouldNotVerifyToken = 2336 + case googleUnableToCreateUserCouldNotVerifyToken = 2337 case emailAlreadyRegistered = 2400 case emailBlocked = 2401 case emailSpammer = 2402 @@ -88,6 +102,11 @@ public enum VimeoErrorCode: Int case userNotAllowedToFollowChannels = 3418 case batchFollowUserRequestFailed = 4005 case batchSubscribeChannelRequestFailed = 4006 + + // Live Streaming + case userNotAllowedToLiveStream = 3422 + case userHitSimultaneousLiveStreamingLimit = 3423 + case userHitMonthlyLiveStreamingMinutesQuota = 3424 } /// `HTTPStatusCode` contains HTTP status code constants used to inspect response status diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift index 81c82f22..1c6e698b 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/ExceptionCatcher+Swift.swift @@ -26,7 +26,7 @@ import Foundation -class ExceptionCatcher: ObjC_ExceptionCatcher +public class ExceptionCatcher: ObjC_ExceptionCatcher { /** Execute a block of code that could potentially throw Objective-C exceptions @@ -35,7 +35,7 @@ class ExceptionCatcher: ObjC_ExceptionCatcher - throws: an error containing any thrown exception information */ - @nonobjc internal static func doUnsafe(unsafeBlock: @escaping ((Void) -> Void)) throws + @nonobjc public static func doUnsafe(unsafeBlock: @escaping (() -> Void)) throws { if let error = self._doUnsafe(unsafeBlock) { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift index 590a8b5e..67c2abc4 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift @@ -121,9 +121,9 @@ final class KeychainStore // MARK: - - private func query(for key: String) -> [AnyHashable: Any] + private func query(for key: String) -> [String: Any] { - var query: [AnyHashable: Any] = [:] + var query: [String: Any] = [:] query[kSecClass as String] = kSecClassGenericPassword as String query[kSecAttrService as String] = self.service diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift index 47da6ed5..235e8ab0 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PinCodeInfo.swift @@ -28,14 +28,14 @@ import Foundation public class PinCodeInfo: VIMModelObject { - dynamic public var deviceCode: String? - dynamic public var userCode: String? - dynamic public var authorizeLink: String? - dynamic public var activateLink: String? + @objc dynamic public private(set) var deviceCode: String? + @objc dynamic public private(set) var userCode: String? + @objc dynamic public private(set) var authorizeLink: String? + @objc dynamic public private(set) var activateLink: String? // TODO: These are non-optional Ints with -1 invalid sentinel values because // an optional Int can't be represented in Objective-C and can't be marked // dynamic, which leads to it not getting parsed by VIMObjectMapper [RH] - dynamic public var expiresIn: Int = -1 - dynamic public var interval: Int = -1 + @objc dynamic public private(set) var expiresIn: Int = -1 + @objc dynamic public private(set) var interval: Int = -1 } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift index 33ef07f1..1c067949 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/PlayProgress.swift @@ -12,5 +12,5 @@ import Foundation public class PlayProgress: VIMModelObject { /// The time, in seconds, that the video has been viewed. - public var seconds: NSNumber? + @objc dynamic public var seconds: NSNumber? } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift index f4f59859..247745e3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Spatial.swift @@ -10,15 +10,15 @@ /// Spatial stores all information related to threesixty video public class Spatial: VIMModelObject { - public static let StereoFormatMono = "mono" - public static let StereoFormatLeftRight = "left-right" - public static let StereoFormatTopBottom = "top-bottom" + @objc public static let StereoFormatMono = "mono" + @objc public static let StereoFormatLeftRight = "left-right" + @objc public static let StereoFormatTopBottom = "top-bottom" /// Represents the projection. Value returned by the server can be: "equirectangular", "cylindrical", "cubical", "pyramid", "dome". - public var projection: String? + @objc dynamic public private(set) var projection: String? /// Represents the format. Value returned by the server can be: "mono", "left-right", "top-bottom" - public var stereoFormat: String? + @objc dynamic public private(set) var stereoFormat: String? // MARK: - VIMMappable diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift index 0ba72b57..cab4060c 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/Subscription.swift @@ -12,50 +12,54 @@ public class Subscription: VIMModelObject // MARK: - Properties /// Represents wether the user is subscribed to the `comment` notification. - var comment: NSNumber? + @objc dynamic public private(set) var comment: NSNumber? /// Represents wether the user is subscribed to the `credit` notification. - var credit: NSNumber? + @objc dynamic public private(set) var credit: NSNumber? /// Represents wether the user is subscribed to the `like` notification. - var like: NSNumber? + @objc dynamic public private(set) var like: NSNumber? /// Represents wether the user is subscribed to the `mention` notification. - var mention: NSNumber? + @objc dynamic public private(set) var mention: NSNumber? /// Represents wether the user is subscribed to the `reply` notification. - var reply: NSNumber? + @objc dynamic public private(set) var reply: NSNumber? /// Represents wether the user is subscribed to the `follow` notification. - var follow: NSNumber? + @objc dynamic public private(set) var follow: NSNumber? /// Represents wether the user is subscribed to the `video available` notification. - var videoAvailable: NSNumber? + @objc dynamic public private(set) var videoAvailable: NSNumber? /// Represents wether the user is subscribed to the `vod pre order available` notification. - var vodPreorderAvailable: NSNumber? + @objc dynamic public private(set) var vodPreorderAvailable: NSNumber? /// Represents wether the user is subscribed to the `vod rental expiration warning` notification. - var vodRentalExpirationWarning: NSNumber? + @objc dynamic public private(set) var vodRentalExpirationWarning: NSNumber? /// Represents wether the user is subscribed to the `account expiration warning` notification. - var accountExpirationWarning: NSNumber? + @objc dynamic public private(set) var accountExpirationWarning: NSNumber? /// Represents wether the user is subscribed to the `share` notification. - var share: NSNumber? + @objc dynamic public private(set) var share: NSNumber? + + /// Represents wether the is subscribed to the `New video available from followed user` notification. + @objc dynamic public private(set) var followedUserVideoAvailable: NSNumber? /// Represents the Subscription object as a Dictionary - public var toDictionary: [AnyHashable: Any] + @objc public var toDictionary: [String: Any] { - let dictionary = ["comment": self.comment ?? false, - "credit": self.credit ?? false, - "like": self.like ?? false, - "mention": self.mention ?? false, - "reply": self.reply ?? false, - "follow": self.follow ?? false, - "vod_preorder_available": self.vodPreorderAvailable ?? false, - "video_available": self.videoAvailable ?? false, - "share": self.share ?? false] + let dictionary: [String: Any] = ["comment": self.comment ?? false, + "credit": self.credit ?? false, + "like": self.like ?? false, + "mention": self.mention ?? false, + "reply": self.reply ?? false, + "follow": self.follow ?? false, + "vod_preorder_available": self.vodPreorderAvailable ?? false, + "video_available": self.videoAvailable ?? false, + "share": self.share ?? false, + "followed_user_video_available": self.followedUserVideoAvailable ?? false] return dictionary } @@ -68,7 +72,8 @@ public class Subscription: VIMModelObject "video_available": "videoAvailable", "vod_preorder_available": "vodPreorderAvailable", "vod_rental_expiration_warning": "vodRentalExpirationWarning", - "account_expiration_warning": "accountExpirationWarning"] + "account_expiration_warning": "accountExpirationWarning", + "followed_user_video_available": "followedUserVideoAvailable"] } // MARK: - Helpers @@ -76,7 +81,7 @@ public class Subscription: VIMModelObject /// Helper method that determine whether a user has all the subscription settings turned off. /// /// - Returns: A boolean that indicates whether the user has all the settings for push notifications disabled. - public func areSubscriptionsDisabled() -> Bool + @objc public func areSubscriptionsDisabled() -> Bool { return (self.comment == false && self.credit == false && @@ -86,6 +91,7 @@ public class Subscription: VIMModelObject self.follow == false && self.vodPreorderAvailable == false && self.videoAvailable == false && - self.share == false) + self.share == false && + self.followedUserVideoAvailable == false) } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift index eea4d188..e41dd2a5 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/SubscriptionCollection.swift @@ -12,13 +12,13 @@ public class SubscriptionCollection: VIMModelObject // MARK: - Properties /// Represents the uri - public var uri: String? + @objc dynamic public private(set) var uri: String? /// Represents the subscription - public var subscription: Subscription? + @objc dynamic public private(set) var subscription: Subscription? /// Represents the migration that indicates whether the user has migrated from the old system `VIMTrigger` to new new system `Localytics`. - public var migrated: NSNumber? + @objc dynamic public private(set) var migrated: NSNumber? // MARK: - VIMMappable diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift index a733c8fe..68835772 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMBadge.swift @@ -29,11 +29,11 @@ import Foundation /// VIMBadge contains the text and/or icons used to display a badge on a video item public class VIMBadge: VIMModelObject { - dynamic public var type: String? - dynamic public var festival: String? - dynamic public var link: String? - dynamic public var text: String? - dynamic public var pictures: VIMPictureCollection? + @objc dynamic public var type: String? + @objc dynamic public var festival: String? + @objc dynamic public var link: String? + @objc dynamic public var text: String? + @objc dynamic public var pictures: VIMPictureCollection? public override func getClassForObjectKey(_ key: String) -> AnyClass? { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h index 1b8d7a6a..c6c23d06 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.h @@ -59,6 +59,8 @@ extern NSString *const __nonnull VIMConnectionNameRecommendedUsers; extern NSString *const __nonnull VIMConnectionNameModeratedChannels; extern NSString *const __nonnull VIMConnectionNameContents; extern NSString *const __nonnull VIMConnectionNameNotifications; +extern NSString *const __nonnull VIMConnectionNameBlockUser; +extern NSString *const __nonnull VIMConnectionNameLiveStats; @interface VIMConnection : VIMModelObject diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m index b79ef442..d15bf9b3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMConnection.m @@ -59,6 +59,9 @@ NSString *const VIMConnectionNameModeratedChannels = @"moderated_channels"; NSString *const VIMConnectionNameContents = @"contents"; NSString *const VIMConnectionNameNotifications = @"notifications"; +NSString *const VIMConnectionNameBlockUser = @"block"; +NSString *const VIMConnectionNameLiveStats = @"live_stats"; + @implementation VIMConnection diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h index 96219d23..c1ea7d67 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.h @@ -34,6 +34,7 @@ extern NSString * const __nonnull VIMInteractionNameLike; extern NSString * const __nonnull VIMInteractionNameBuy; extern NSString * const __nonnull VIMInteractionNameRent; extern NSString * const __nonnull VIMInteractionNameSubscribe; +extern NSString * const __nonnull VIMInteractionNamePurchase; typedef NS_ENUM(NSInteger, VIMInteractionStreamStatus) { VIMInteractionStreamStatusUnavailable = 0, // user cannot purchase @@ -48,6 +49,8 @@ typedef NS_ENUM(NSInteger, VIMInteractionStreamStatus) { @property (nonatomic, strong, nullable) NSNumber *added; @property (nonatomic, strong, nullable) NSDate *addedTime; +@property (nonatomic, strong, nullable) NSString *status; + # pragma mark - VOD related only @property (nonatomic, copy, nullable) NSString *link; @property (nonatomic, copy, nullable) NSString *download; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m index 3d342d97..df70c425 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMInteraction.m @@ -34,6 +34,7 @@ NSString * const VIMInteractionNameBuy = @"buy"; NSString * const VIMInteractionNameRent = @"rent"; NSString * const VIMInteractionNameSubscribe = @"subscribe"; +NSString * const VIMInteractionNamePurchase = @"purchase"; @interface VIMInteraction() @property (nonatomic, copy, nullable) NSString *added_time; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift new file mode 100644 index 00000000..a4fc0db5 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLive.swift @@ -0,0 +1,142 @@ +// +// VIMLive.swift +// VimeoNetworking +// +// Created by Van Nguyen on 08/29/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// The streaming status of a live video. +/// +/// - unavailable: The RTMP link is visible but not yet able to receive the stream. +/// - pending: Vimeo is working on setting up the connection. +/// - ready: The RTMP's URL is ready to receive video content. +/// - streamingPreview: The stream is in a "preview" state. It will be accessible to the public when you transition to "streaming". +/// - streaming: The stream is open and receiving content. +/// - streamingError: The stream has failed due to an error relating to the broadcaster; They may have reached their monthly broadcast limit, for example. +/// - archiving: The stream has finished, and the video is in the process of being archived, but is not ready to play yet. +/// - archiveError: There was a problem archiving the stream. +/// - done: The stream has been ended intentionally by the end-user. +public enum LiveStreamingStatus: String +{ + case unavailable = "unavailable" + case pending = "pending" + case ready = "ready" + case streamingPreview = "streaming_preview" + case streaming = "streaming" + case streamingError = "streaming_error" + case archiving = "archiving" + case archiveError = "archive_error" + case done = "done" +} + +/// An object that represents the `live` field in +/// a `clip` response. +public class VIMLive: VIMModelObject +{ + private struct Constants + { + static let ChatKey = "chat" + } + + /// The RTMP link is visible but not yet able to receive the stream. + @objc public static let LiveStreamStatusUnavailable = "unavailable" + + /// Vimeo is working on setting up the connection. + @objc public static let LiveStreamStatusPending = "pending" + + /// The RTMP's URL is ready to receive video content. + @objc public static let LiveStreamStatusReady = "ready" + + /// The stream is in a "preview" state. It will be accessible to the public when you transition to "streaming". + @objc public static let LiveStreamStatusStreamingPreview = "streaming_preview" + + /// The stream is open and receiving content. + @objc public static let LiveStreamStatusStreaming = "streaming" + + /// The stream has failed due to an error relating to the broadcaster; They may have reached their monthly broadcast limit, for example. + @objc public static let LiveStreamStatusStreamingError = "streaming_error" + + /// The stream has finished, and the video is in the process of being archived, but is not ready to play yet. + @objc public static let LiveStreamStatusArchiving = "archiving" + + /// There was a problem archiving the stream. + @objc public static let LiveStreamStatusArchiveError = "archive_error" + + /// The stream has been ended intentionally by the end-user. + @objc public static let LiveStreamStatusDone = "done" + + /// An RTMP link used to host a live stream. + @objc dynamic public private(set) var link: String? + + /// A token for streaming. + @objc dynamic public private(set) var key: String? + + /// The timestamp that the stream is active. + @objc dynamic public private(set) var activeTime: NSDate? + + /// The timestamp that the stream is over. + @objc dynamic public private(set) var endedTime: NSDate? + + /// The timestamp that the live video is + /// archived. + @objc dynamic public private(set) var archivedTime: NSDate? + + /// The timestamp that the live video is + /// scheduled to be online. + @objc dynamic public private(set) var scheduledStartTime: NSDate? + + /** + The status of the live video in string. + + - Note: + Technically, this property should not be used to + check the status of a live video. Use + `liveStreamingStatus` instead for easy checking. + */ + @objc dynamic public private(set) var status: String? + + /// The status of the live video in `LiveStreamingStatus` enum. + public var liveStreamingStatus: LiveStreamingStatus? + { + guard let status = self.status else + { + return nil + } + + return LiveStreamingStatus(rawValue: status) + } + + /// The live event's chat. + @objc public private(set) var chat: VIMLiveChat? + + public override func getClassForObjectKey(_ key: String!) -> AnyClass? + { + if key == Constants.ChatKey + { + return VIMLiveChat.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift new file mode 100644 index 00000000..8936a57d --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChat.swift @@ -0,0 +1,54 @@ +// +// VIMLiveChat.swift +// VimeoNetworking +// +// Created by Van Nguyen on 10/10/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +/// An object representing the `chat` field in a `live` response. This +/// `live` response is part of the `clip` representation. +public class VIMLiveChat: VIMModelObject +{ + private struct Constants + { + static let UserKey = "user" + } + + /// The ID of the live event chat room. + @objc public private(set) var roomId: NSNumber? + + /// JWT for the user to access the live event chat room. + @objc public private(set) var token: String? + + /// The current user. + @objc public private(set) var user: VIMLiveChatUser? + + @objc public override func getClassForObjectKey(_ key: String!) -> AnyClass? + { + if key == Constants.UserKey + { + return VIMLiveChatUser.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift new file mode 100644 index 00000000..a5c920c5 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift @@ -0,0 +1,101 @@ +// +// VIMLiveChatUser.swift +// VimeoNetworking +// +// Created by Van Nguyen on 10/10/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +/// The user's account type. +/// +/// - basic: "Vimeo Basic" tier. +/// - business: "Vimeo Business" tier. +/// - liveBusiness: "Business Live" tier. +/// - livePro: "PRO Live" tier. +/// - plus: "Vimeo Plus" tier. +/// - pro: "Vimeo PRO" tier. +/// - proUnlimited: "Custom Live" tier. +public enum AccountType: String +{ + case basic = "basic" + case business = "business" + case liveBusiness = "live_business" + case livePro = "live_pro" + case plus = "plus" + case pro = "pro" + case proUnlimited = "pro_unlimited" +} + +/// An object representing the `user` field in a `chat` response. +public class VIMLiveChatUser: VIMModelObject +{ + private struct Constants + { + static let PictureResponseKey = "pictures" + } + + /// Returns a string representation of the account type, if available. + /// + /// - Note: This property provides an Objective-C interface for the Swift-only property, `accountType`. + @objc public private(set) var account: String? + + /// The user's account type in `AccountType`. + public var accountType: AccountType? + { + guard let accountValue = self.account else + { + return nil + } + + return AccountType(rawValue: accountValue) + } + + /// The user's ID. + @objc public private(set) var id: NSNumber? + + /// Is this user the creator of the live event? + @objc public private(set) var isCreator: NSNumber? + + /// Is this user a Vimeo staff member? + @objc public private(set) var isStaff: NSNumber? + + /// The users' display name. + @objc public private(set) var name: String? + + /// The active picture for this user. + @objc public private(set) var pictures: VIMPictureCollection? + + /// URI of the current user. + @objc public private(set) var uri: String? + + /// Absolute URL of the current user. + @objc public private(set) var link: String? + + public override func getClassForObjectKey(_ key: String!) -> AnyClass? + { + if key == Constants.PictureResponseKey + { + return VIMPictureCollection.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift new file mode 100644 index 00000000..1c1b4557 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveHeartbeat.swift @@ -0,0 +1,44 @@ +// +// VIMLiveHeartbeat.swift +// VimeoNetworking +// +// Created by Van Nguyen on 10/04/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An object representing the `live` object in either an `hls` or a `dash` response. +public class VIMLiveHeartbeat: VIMModelObject +{ + private struct Constants + { + static let HeartbeatUrlKey = "heartbeat" + } + + /// The heartbeat URL that the client should send requests to. + @objc dynamic public private(set) var heartbeatUrl: String? + + override public func getObjectMapping() -> Any? + { + return [Constants.HeartbeatUrlKey: "heartbeatUrl"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift new file mode 100644 index 00000000..cf2f335f --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveQuota.swift @@ -0,0 +1,59 @@ +// +// VIMLiveQuota.swift +// VimeoNetworking +// +// Created by Van Nguyen on 09/11/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An object that represents the `live_quota` +/// field in a `user` response. +public class VIMLiveQuota: VIMModelObject +{ + private struct Constants + { + static let StreamsKey = "streams" + static let TimeKey = "time" + } + + /// The `streams` field in a `live_quota` response. + @objc dynamic public private(set) var streams: VIMLiveStreams? + + /// The `time` field in a `live_quota` response. + @objc dynamic public private(set) var time: VIMLiveTime? + + override public func getClassForObjectKey(_ key: String!) -> AnyClass! + { + if key == Constants.StreamsKey + { + return VIMLiveStreams.self + } + + if key == Constants.TimeKey + { + return VIMLiveTime.self + } + + return nil + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveStreams.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveStreams.swift new file mode 100644 index 00000000..8ab56f2b --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveStreams.swift @@ -0,0 +1,43 @@ +// +// VIMLiveStreams.swift +// VimeoNetworking +// +// Created by Van Nguyen on 09/11/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An object that represents the `streams` field +/// in a `live_quota` response. +public class VIMLiveStreams: VIMModelObject +{ + /// The maximum streams a user can make. + @objc dynamic public private(set) var maxStreams: NSNumber? + + /// The remaining streams a user can make. + @objc dynamic public private(set) var remainingStreams: NSNumber? + + override public func getObjectMapping() -> Any! + { + return ["remaining": "remainingStreams", "maximum": "maxStreams"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveTime.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveTime.swift new file mode 100644 index 00000000..37322348 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveTime.swift @@ -0,0 +1,46 @@ +// +// VIMLiveTime.swift +// VimeoNetworking +// +// Created by Van Nguyen on 09/11/2017. +// Copyright (c) Vimeo (https://vimeo.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An object that represents the `time` field in +/// a `live_quota` response. +public class VIMLiveTime: VIMModelObject +{ + /// The maximum time (in seconds) per event a user can stream. + @objc dynamic public private(set) var maxTimePerEvent: NSNumber? + + /// The maximum time (in seconds) per month a user can stream. + @objc dynamic public private(set) var maxTimePerMonth: NSNumber? + + /// The remaining time (in seconds) this month a user can stream. + @objc dynamic public private(set) var remainingTimeThisMonth: NSNumber? + + override public func getObjectMapping() -> Any! + { + return ["monthly_remaining": "remainingTimeThisMonth", "monthly_maximum": "maxTimePerMonth", "event_maximum": "maxTimePerEvent"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h index 561c4c7f..1ff9808a 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.h @@ -38,7 +38,8 @@ typedef NS_ENUM(NSUInteger, VIMNotificationType) { VIMNotificationTypeFollow, VIMNotificationTypeLike, VIMNotificationTypeReply, - VIMNotificationTypeVideoAvailable + VIMNotificationTypeVideoAvailable, // User new video available + VIMNotificationTypeFollowedUserVideoAvailable // Followed user new video available }; @interface VIMNotification : VIMModelObject @@ -57,4 +58,6 @@ typedef NS_ENUM(NSUInteger, VIMNotificationType) { + (nonnull NSDictionary *)supportedTypeMap; +@property (nonatomic, strong, nullable) NSNumber *typeUnseenCount; + @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m index d2e148cb..fa338e71 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotification.m @@ -42,7 +42,8 @@ @implementation VIMNotification @"follow" : @(VIMNotificationTypeFollow), @"like" : @(VIMNotificationTypeLike), @"reply" : @(VIMNotificationTypeReply), - @"video_available" : @(VIMNotificationTypeVideoAvailable)}; + @"video_available" : @(VIMNotificationTypeVideoAvailable), + @"followed_user_video_available" : @(VIMNotificationTypeFollowedUserVideoAvailable)}; }); return _typeMap; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h index 043a9f02..3bf1f859 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.h @@ -16,5 +16,6 @@ @return An NSInteger specifying the total of new notifications currently supported */ - (NSInteger)supportedNotificationNewTotal; +- (NSInteger)supportedNotificationUnseenTotal; @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m index bdee4763..525ad87f 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMNotificationsConnection.m @@ -12,11 +12,23 @@ @interface VIMNotificationsConnection () @property (nonatomic, copy, nullable) NSDictionary *type_count; +@property (nonatomic, copy, nullable) NSDictionary *type_unseen_count; @end @implementation VIMNotificationsConnection +- (void)didFinishMapping +{ + // This is a migration for the outage on 2/20/18 where these counts were being returned as empty arrays for some users. + // https://vimean.atlassian.net/browse/VIM-5996 [ghking] 2/22/18 + + if (![self.type_count isKindOfClass:[NSDictionary class]]) + { + self.type_count = [NSDictionary new]; + } +} + - (NSInteger)supportedNotificationNewTotal { NSArray *supportedNotificationKeys = [[VIMNotification supportedTypeMap] allKeys]; @@ -30,4 +42,17 @@ - (NSInteger)supportedNotificationNewTotal return total; } +- (NSInteger)supportedNotificationUnseenTotal +{ + NSArray *supportedNotificationKeys = [[VIMNotification supportedTypeMap] allKeys]; + + NSInteger total = 0; + for (NSString *key in supportedNotificationKeys) + { + total += self.type_unseen_count[key].integerValue; + } + + return total; +} + @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift index 356eb901..503e19d1 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMProgrammedContent.swift @@ -28,13 +28,13 @@ import Foundation public class VIMProgrammedContent: VIMModelObject { - dynamic public var uri: String? - dynamic public var name: String? - dynamic public var type: String? - dynamic public var content: NSArray? + @objc dynamic public private(set) var uri: String? + @objc dynamic public private(set) var name: String? + @objc dynamic public private(set) var type: String? + @objc dynamic public private(set) var content: NSArray? - dynamic private var metadata: [AnyHashable: Any]? - dynamic private var connections: [AnyHashable: Any]? + @objc dynamic private var metadata: [String: Any]? + @objc dynamic private var connections: [String: Any]? private struct Constants { @@ -90,15 +90,15 @@ public class VIMProgrammedContent: VIMModelObject private func parseConnections() { - guard let dict = self.metadata?[Constants.ConnectionsKey] as? [AnyHashable: Any] else + guard let dict = self.metadata?[Constants.ConnectionsKey] as? [String: Any] else { return } - self.connections = [AnyHashable: Any]() + self.connections = [String: Any]() for (key, value) in dict { - if let valueDict = value as? [AnyHashable: Any] + if let valueDict = value as? [String: Any] { self.connections?[key] = VIMConnection(keyValueDictionary: valueDict) } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m index 68f58e00..7331c742 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMQuantityQuota.m @@ -39,8 +39,8 @@ @implementation VIMQuantityQuota - (void)didFinishMapping { - self.canUploadHd = [self.hd boolValue]; - self.canUploadSd = [self.sd boolValue]; + self.canUploadHd = [self.hd respondsToSelector:@selector(boolValue)] ? [self.hd boolValue] : NO; + self.canUploadSd = [self.sd respondsToSelector:@selector(boolValue)] ? [self.sd boolValue] : NO; } @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift new file mode 100644 index 00000000..79ae4d55 --- /dev/null +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMReviewPage.swift @@ -0,0 +1,21 @@ +// +// VIMReviewPage.swift +// VimeoNetworking +// +// Created by Lim, Jennifer on 3/19/18. +// + +/// VIMReviewPage stores all information related to review a video +public class VIMReviewPage: VIMModelObject +{ + /// Represents whether the review page is active for this video + @objc dynamic public private(set) var isActive: NSNumber? + + /// Represents the review page link + @objc dynamic public private(set) var link: String? + + public override func getObjectMapping() -> Any + { + return ["active" : "isActive"] + } +} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h index 2b2b1b54..752cb024 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h @@ -33,13 +33,17 @@ @class VIMPreference; @class VIMUploadQuota; @class VIMUserBadge; +@class VIMLiveQuota; typedef NS_ENUM(NSInteger, VIMUserAccountType) { VIMUserAccountTypeBasic = 0, VIMUserAccountTypePro, VIMUserAccountTypePlus, - VIMUserAccountTypeBusiness + VIMUserAccountTypeBusiness, + VIMUserAccountTypeLivePro, + VIMUserAccountTypeLiveBusiness, + VIMUserAccountTypeLivePremium }; @interface VIMUser : VIMModelObject @@ -61,6 +65,7 @@ typedef NS_ENUM(NSInteger, VIMUserAccountType) @property (nonatomic, strong, nullable) VIMPreference *preferences; @property (nonatomic, strong, nullable) VIMUploadQuota *uploadQuota; @property (nonatomic, copy, nullable) NSString *account; +@property (nonatomic, strong, nullable) VIMLiveQuota *liveQuota; - (nullable VIMConnection *)connectionWithName:(nonnull NSString *)connectionName; - (nullable VIMNotificationsConnection *)notificationsConnection; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m index 35483c4c..463b9fa3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m @@ -33,6 +33,15 @@ #import "VIMPreference.h" #import "VIMUploadQuota.h" #import "VIMUserBadge.h" +#import + +static NSString *const Basic = @"basic"; +static NSString *const Plus = @"plus"; +static NSString *const Pro = @"pro"; +static NSString *const Business = @"business"; +static NSString *const LivePro = @"live_pro"; +static NSString *const LiveBusiness = @"live_business"; +static NSString *const LivePremium = @"live_premium"; @interface VIMUser () @@ -92,6 +101,11 @@ - (Class)getClassForObjectKey:(NSString *)key { return [VIMUploadQuota class]; } + + if ([key isEqualToString:@"live_quota"]) + { + return [VIMLiveQuota class]; + } return nil; } @@ -199,22 +213,34 @@ - (void)parseInteractions - (void)parseAccountType { - if ([self.account isEqualToString:@"plus"]) + if ([self.account isEqualToString:Plus]) { self.accountType = VIMUserAccountTypePlus; } - else if ([self.account isEqualToString:@"pro"]) + else if ([self.account isEqualToString:Pro]) { self.accountType = VIMUserAccountTypePro; } - else if ([self.account isEqualToString:@"basic"]) + else if ([self.account isEqualToString:Basic]) { self.accountType = VIMUserAccountTypeBasic; } - else if ([self.account isEqualToString:@"business"]) + else if ([self.account isEqualToString:Business]) { self.accountType = VIMUserAccountTypeBusiness; } + else if ([self.account isEqualToString:LivePro]) + { + self.accountType = VIMUserAccountTypeLivePro; + } + else if ([self.account isEqualToString:LiveBusiness]) + { + self.accountType = VIMUserAccountTypeLiveBusiness; + } + else if ([self.account isEqualToString:LivePremium]) + { + self.accountType = VIMUserAccountTypeLivePremium; + } } - (void)parseEmails @@ -270,13 +296,19 @@ - (NSString *)accountTypeAnalyticsIdentifier { default: case VIMUserAccountTypeBasic: - return @"basic"; + return Basic; case VIMUserAccountTypePlus: - return @"plus"; + return Plus; case VIMUserAccountTypePro: - return @"pro"; + return Pro; case VIMUserAccountTypeBusiness: - return @"business"; + return Business; + case VIMUserAccountTypeLivePro: + return LivePro; + case VIMUserAccountTypeLiveBusiness: + return LiveBusiness; + case VIMUserAccountTypeLivePremium: + return LivePremium; } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h index 247c3b3f..c7feb119 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h @@ -32,6 +32,8 @@ typedef NS_ENUM(NSInteger, VIMUserBadgeType) VIMUserBadgeTypePlus, VIMUserBadgeTypePro, VIMUserBadgeTypeBusiness, + VIMUserBadgeTypeLiveBusiness, + VIMUserBadgeTypeLivePro, VIMUserBadgeTypeAlum, VIMUserBadgeTypeStaff, VIMUserBadgeTypeSupport, diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m index 984d9c90..3346836b 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m @@ -35,6 +35,8 @@ @implementation VIMUserBadge static NSString *const Curation = @"curation"; static NSString *const Support = @"support"; static NSString *const Alum = @"alum"; +static NSString *const LivePro = @"live_pro"; +static NSString *const LiveBusiness = @"live_business"; - (void)didFinishMapping { @@ -71,6 +73,14 @@ - (void)parseBadge { self.badgeType = VIMUserBadgeTypeAlum; } + else if ([self.type isEqualToString:LivePro]) + { + self.badgeType = VIMUserBadgeTypeLivePro; + } + else if ([self.type isEqualToString:LiveBusiness]) + { + self.badgeType = VIMUserBadgeTypeLiveBusiness; + } else { self.badgeType = VIMUserBadgeTypeDefault; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h index 370864f8..0b8e5735 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h @@ -36,6 +36,8 @@ @class VIMVideoPlayRepresentation; @class VIMBadge; @class Spatial; +@class VIMLive; +@class VIMReviewPage; extern NSString * __nonnull VIMContentRating_Language; extern NSString * __nonnull VIMContentRating_Drugs; @@ -45,6 +47,7 @@ extern NSString * __nonnull VIMContentRating_Unrated; extern NSString * __nonnull VIMContentRating_Safe; typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { + VIMVideoProcessingStatusUnavailable, VIMVideoProcessingStatusAvailable, VIMVideoProcessingStatusUploading, VIMVideoProcessingStatusTranscodeStarting, // New state added to API 11/18/2015 with in-app support added 2/11/2016 [AH] @@ -84,6 +87,8 @@ typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { @property (nonatomic, copy, nullable) NSString *password; @property (nonatomic, strong, nullable) VIMBadge *badge; @property (nonatomic, strong, nullable) Spatial *spatial; +@property (nonatomic, strong, nullable) VIMLive *live; +@property (nonatomic, strong, nullable) VIMReviewPage *reviewPage; @property (nonatomic, assign) VIMVideoProcessingStatus videoStatus; @@ -108,9 +113,58 @@ typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { - (BOOL)isDRMProtected; - (NSInteger)likesCount; - (NSInteger)commentsCount; + +/** + Checks for the existence of a Spatial object on this VIMVideo and returns @p true if one exists. + + @return Returns @p true if a Spatial object exists for this VIMVideo. + */ - (BOOL)is360; +/** + Checks for the existence of a VIMLive object on this VIMVideo and returns @p true if one exists, but does not check the state of the live event. + + @return Returns @p true if a VIMLive object exists for this VIMVideo. + */ +- (BOOL)isLive; + +/** + Determines whether the current video represents a live event and if the event is in the pre, mid, or archiving state indicating that a live event is currently underway. + + @return Returns @p true if the live video's broadcast is about to begin, is underway, or is being archived. Returns @p false if the live video's broadcast has already been archived. + */ +- (BOOL)isLiveEventInProgress; + +/** + Determines whether the current video represents a live event and whether or not the broadcast has started. + + @return Returns @p true if the live video's broadcast has not begun. + */ +- (BOOL)isPreBroadcast; + +/** + Determines whether the current video represents a live event and if the broadcast is underway. + + @return Returns @p true when the live video's broadcast is underway. + */ +- (BOOL)isMidBroadcast; + +/** + Determines whether the current video represents a live event that is in the process of being archived. + + @return Returns @p true when the live video's broadcast has ended and is being archived. + */ +- (BOOL)isArchivingBroadcast; + +/** + Determines whether the current video represents a live event, whether it has ended, and if an archive of the broadcast is ready for playback. + + @return Returns @p true when the live video event has ended and an archive of the broadcast is available. + */ +- (BOOL)isPostBroadcast; + - (void)setIsLiked:(BOOL)isLiked; - (void)setIsWatchLater:(BOOL)isWatchLater; +- (BOOL)hasReviewPage; @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m index a77b0f3e..48a9cc54 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m @@ -77,7 +77,9 @@ - (NSDictionary *)getObjectMapping { return @{@"description": @"videoDescription", @"pictures": @"pictureCollection", - @"play": @"playRepresentation"}; + @"play": @"playRepresentation", + @"review_page": @"reviewPage", + }; } - (Class)getClassForCollectionKey:(NSString *)key @@ -133,7 +135,17 @@ - (Class)getClassForObjectKey:(NSString *)key if ([key isEqualToString:@"spatial"]) { - return [Spatial class]; + return [Spatial class]; + } + + if ([key isEqualToString:@"live"]) + { + return [VIMLive class]; + } + + if ([key isEqualToString:@"review_page"]) + { + return [VIMReviewPage class]; } return nil; @@ -309,6 +321,7 @@ - (void)formatModifiedTime - (void)setVideoStatus { NSDictionary *statusDictionary = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInt:VIMVideoProcessingStatusUnavailable], @"unavailable", [NSNumber numberWithInt:VIMVideoProcessingStatusAvailable], @"available", [NSNumber numberWithInt:VIMVideoProcessingStatusUploading], @"uploading", [NSNumber numberWithInt:VIMVideoProcessingStatusTranscoding], @"transcoding", @@ -496,4 +509,44 @@ - (BOOL)is360 return self.spatial != nil; } +- (BOOL)isLive +{ + return self.live != nil; +} + +- (BOOL)isLiveEventInProgress +{ + return self.live != nil && (self.isPreBroadcast || self.isMidBroadcast || self.isArchivingBroadcast); +} + +- (BOOL)isPreBroadcast +{ + return self.isLive && ([self.live.status isEqual: VIMLive.LiveStreamStatusUnavailable] || [self.live.status isEqual: VIMLive.LiveStreamStatusReady] || [self.live.status isEqual: VIMLive.LiveStreamStatusPending]); +} + +- (BOOL)isMidBroadcast +{ + return self.isLive && [self.live.status isEqual: VIMLive.LiveStreamStatusStreaming]; +} + +- (BOOL)isArchivingBroadcast +{ + return self.isLive && [self.live.status isEqualToString:VIMLive.LiveStreamStatusArchiving]; +} + +- (BOOL)isPostBroadcast +{ + return self.isLive && ([self.live.status isEqual: VIMLive.LiveStreamStatusDone]); +} + +- (BOOL)hasReviewPage +{ + NSString *trimmedReviewLink = [self.reviewPage.link stringByReplacingOccurrencesOfString:@" " withString:@""]; + + return self.reviewPage != nil && + self.reviewPage.isActive.boolValue == true && + self.reviewPage.link != nil && + trimmedReviewLink.length > 0; +} + @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h index 8408c132..8a9fd74c 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.h @@ -28,11 +28,14 @@ #import "VIMModelObject.h" +@class VIMLiveHeartbeat; + @interface VIMVideoPlayFile : VIMModelObject @property (nonatomic, copy, nullable) NSString *link; @property (nonatomic, strong, nullable) NSDate *expirationDate; @property (nonatomic, copy, nullable) NSString *log; +@property (nonatomic, strong, nullable) VIMLiveHeartbeat *heartbeat; - (BOOL)isExpired; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m index b55960a4..4186df02 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideoPlayFile.m @@ -25,6 +25,7 @@ // #import "VIMVideoPlayFile.h" +#import @interface VIMVideoPlayFile() @@ -36,6 +37,16 @@ @implementation VIMVideoPlayFile #pragma mark - VIMMappable +- (Class)getClassForObjectKey:(NSString *)key +{ + if ([key isEqualToString:@"live"]) + { + return [VIMLiveHeartbeat class]; + } + + return nil; +} + - (void)didFinishMapping { if ([self.expires isKindOfClass:[NSString class]]) @@ -57,7 +68,7 @@ - (void)didFinishMapping - (NSDictionary *)getObjectMapping { - return @{@"link_expiration_time": @"expires"}; + return @{@"link_expiration_time": @"expires", @"live": @"heartbeat"}; } #pragma mark - Instance methods diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift index f221590d..c5ee3c86 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/NSError+Extensions.swift @@ -35,7 +35,7 @@ public enum VimeoErrorKey: String } /// Convenience methods used to parse `NSError`s returned by Vimeo api responses -public extension NSError +@objc public extension NSError { /// Returns true if the error is a 503 Service Unavailable error public var isServiceUnavailableError: Bool @@ -83,7 +83,7 @@ public extension NSError - returns: a new `NSError` */ - class func error(withDomain domain: String?, code: Int?, description: String?) -> NSError + @nonobjc class func error(withDomain domain: String?, code: Int?, description: String?) -> NSError { var error = NSError(domain: VimeoErrorKey.VimeoErrorDomain.rawValue, code: 0, userInfo: nil) @@ -119,7 +119,7 @@ public extension NSError - returns: An error with additional user info */ - func error(byAddingUserInfo userInfo: [AnyHashable: Any]) -> NSError + func error(byAddingUserInfo userInfo: [String: Any]) -> NSError { return self.error(byAddingDomain: nil, code: nil, userInfo: userInfo) } @@ -145,7 +145,7 @@ public extension NSError - returns: An error with additional information in the user info dictionary */ - func error(byAddingDomain domain: String?, code: Int?, userInfo: [AnyHashable: Any]?) -> NSError + @nonobjc func error(byAddingDomain domain: String?, code: Int?, userInfo: [String: Any]?) -> NSError { var augmentedInfo = self.userInfo @@ -180,7 +180,7 @@ public extension NSError } /// Returns the status code of the failing response, if available - public var statusCode: Int? + @nonobjc public var statusCode: Int? { if let response = self.userInfo[AFNetworkingOperationFailingURLResponseErrorKey] as? HTTPURLResponse { @@ -191,7 +191,7 @@ public extension NSError } /// Returns the api error code of the failing response, if available - public var vimeoServerErrorCode: Int? + @nonobjc public var vimeoServerErrorCode: Int? { if let errorCode = (self.userInfo[Constants.VimeoErrorCodeKeyLegacy] as? Int) { @@ -218,7 +218,7 @@ public extension NSError { var errorCodes: [Int] = [] - if let json = self.errorResponseBodyJSON, let invalidParameters = json[Constants.VimeoInvalidParametersKey] as? [[AnyHashable: Any]] + if let json = self.errorResponseBodyJSON, let invalidParameters = json[Constants.VimeoInvalidParametersKey] as? [[String: Any]] { for invalidParameter in invalidParameters { @@ -233,13 +233,13 @@ public extension NSError } /// Returns the api error JSON dictionary, if available - public var errorResponseBodyJSON: [AnyHashable: Any]? + public var errorResponseBodyJSON: [String: Any]? { if let data = self.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey] as? Data { do { - let json = try JSONSerialization.jsonObject(with: data, options: []) as? [AnyHashable: Any] + let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] return json } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift index 0cc6b1c2..b7768e80 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/NetworkingNotification.swift @@ -83,7 +83,7 @@ public enum NetworkingNotification: String - parameter object: an optional object to pass to observers of this `NetworkingNotification` */ - public func post(object: Any?, userInfo: [AnyHashable: Any]? = nil) + public func post(object: Any?, userInfo: [String: Any]? = nil) { DispatchQueue.main.async { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift index 8d478d9e..802edb5d 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift @@ -26,6 +26,8 @@ import Foundation +public typealias AuthenticationRequest = Request + private let GrantTypeKey = "grant_type" private let ScopeKey = "scope" private let CodeKey = "code" @@ -55,13 +57,10 @@ private let AuthenticationPathPinCode = "oauth/device" private let AuthenticationPathPinCodeAuthorize = "oauth/device/authorize" private let AuthenticationPathAppTokenExchange = "oauth/appexchange" - // MARK: - private let AuthenticationPathTokens = "/tokens" -typealias AuthenticationRequest = Request - extension Request where ModelType: VIMAccount { /** diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift index 5a830160..93727dec 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift @@ -10,7 +10,7 @@ public extension Request { private static var Path: String { return "/me/notifications/subscriptions" } - private typealias ParameterDictionary = [AnyHashable: Any] + private typealias ParameterDictionary = [String: Any] private static var SubscriptionsPathComponent: String { return "/subscriptions" } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift index a7e4b64f..5fd4b7c2 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift @@ -38,6 +38,8 @@ public extension Request private static var VideosPath: String { return "/videos" } + private static var SelectedUsersPrivacyPath: String { return "/privacy/users" } + // MARK: - /** @@ -92,7 +94,9 @@ public extension Request { let parameters = [VimeoClient.Constants.PerPageKey: 100] - return Request(path: videoURI, parameters: parameters) + let path = videoURI + self.SelectedUsersPrivacyPath + + return Request(path: path, parameters: parameters) } // MARK: - Search diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift index 925a18df..e874817a 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request.swift @@ -169,7 +169,7 @@ public struct Request { let queryString = AFQueryStringFromParameters(parameters) - if queryString.characters.count > 0 + if queryString.count > 0 { components?.query = queryString } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift index d0350a51..fce808f4 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift @@ -40,7 +40,7 @@ private protocol Cache } /// Response cache handles the storage of JSON response dictionaries indexed by their associated `Request`. It contains both memory and disk caching functionality -final internal class ResponseCache +final public class ResponseCache { private struct Constant { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift index fb2fbb1b..13a773bd 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Scope.swift @@ -26,33 +26,36 @@ import Foundation - /// `Scope` describes a permission that your application requests from the API +/// `Scope` describes a permission that your application requests from the API public enum Scope: String { - /// View public videos + /// View public videos case Public = "public" - /// View private videos + /// View private videos case Private = "private" - /// View Vimeo On Demand purchase history + /// View Vimeo On Demand purchase history case Purchased = "purchased" - /// Create new videos, groups, albums, etc. + /// Create new videos, groups, albums, etc. case Create = "create" - /// Edit videos, groups, albums, etc. + /// Edit videos, groups, albums, etc. case Edit = "edit" - /// Delete videos, groups, albums, etc. + /// Delete videos, groups, albums, etc. case Delete = "delete" - /// Interact with a video on behalf of a user, such as liking a video or adding it to your watch later queue + /// Interact with a video on behalf of a user, such as liking a video or adding it to your watch later queue case Interact = "interact" - /// Upload a video + /// Upload a video case Upload = "upload" + /// Receive live-related statistics. + case Stats = "stats" + /** Combines an array of scopes into a scope string as expected by the api diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift index 028c32fc..25c98add 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift @@ -61,7 +61,8 @@ final public class VimeoClient /// The path of the request public let path: String? - fileprivate let task: URLSessionDataTask? + /// The data task of the request + public let task: URLSessionDataTask? /** Cancel the request @@ -73,13 +74,13 @@ final public class VimeoClient } /// Dictionary containing URL parameters for a request - public typealias RequestParametersDictionary = [AnyHashable: Any] + public typealias RequestParametersDictionary = [String: Any] /// Array containing URL parameters for a request public typealias RequestParametersArray = [Any] /// Dictionary containing a JSON response - public typealias ResponseDictionary = [AnyHashable: Any] + public typealias ResponseDictionary = [String: Any] /// Domain for errors generated by `VimeoClient` public static let ErrorDomain = "VimeoClientErrorDomain" @@ -159,7 +160,7 @@ final public class VimeoClient public func notifyObserversAccountChanged(forAccount account: VIMAccount?, previousAccount: VIMAccount?) { NetworkingNotification.authenticatedAccountDidChange.post(object: account, - userInfo: [UserInfoKey.previousAccount.rawValue : previousAccount ?? NSNull()]) + userInfo: [UserInfoKey.previousAccount.rawValue as String : previousAccount ?? NSNull()]) } // MARK: - Request @@ -173,7 +174,7 @@ final public class VimeoClient - returns: a `RequestToken` for the in-flight request */ - public func request(_ request: Request, completionQueue: DispatchQueue = DispatchQueue.main, completion: @escaping ResultCompletion>.T) -> RequestToken + public func request(_ request: Request, completionQueue: DispatchQueue = DispatchQueue.main, completion: @escaping ResultCompletion>.T) -> RequestToken { var networkRequestCompleted = false @@ -316,7 +317,7 @@ final public class VimeoClient // MARK: - Private task completion handlers - private func handleTaskSuccess(forRequest request: Request, task: URLSessionDataTask?, responseObject: Any?, isCachedResponse: Bool = false, isFinalResponse: Bool = true, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) + private func handleTaskSuccess(forRequest request: Request, task: URLSessionDataTask?, responseObject: Any?, isCachedResponse: Bool = false, isFinalResponse: Bool = true, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) { guard let responseDictionary = responseObject as? ResponseDictionary else @@ -421,7 +422,7 @@ final public class VimeoClient } } - private func handleTaskFailure(forRequest request: Request, task: URLSessionDataTask?, error: NSError?, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) + private func handleTaskFailure(forRequest request: Request, task: URLSessionDataTask?, error: NSError?, completionQueue: DispatchQueue, completion: @escaping ResultCompletion>.T) { let error = error ?? NSError(domain: type(of: self).ErrorDomain, code: LocalErrorCode.undefined.rawValue, userInfo: [NSLocalizedDescriptionKey: "Undefined error"]) @@ -461,7 +462,7 @@ final public class VimeoClient // MARK: - Private error handling - private func handleError(_ error: NSError, request: Request, task: URLSessionDataTask? = nil) + private func handleError(_ error: NSError, request: Request, task: URLSessionDataTask? = nil) { if error.isServiceUnavailableError { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift index 77c5495e..610774df 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift @@ -37,9 +37,10 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { static let AcceptHeaderKey = "Accept" static let AuthorizationHeaderKey = "Authorization" + static let UserAgentKey = "User-Agent" } - public typealias AccessTokenProvider = (Void) -> String? + public typealias AccessTokenProvider = () -> String? // MARK: @@ -66,7 +67,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer super.init() - self.setup(apiVersion: apiVersion) + self.configureDefaultHeaders(withAPIVersion: apiVersion) } /** @@ -83,7 +84,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer super.init() - self.setup(apiVersion: appConfiguration.apiVersion) + self.configureDefaultHeaders(withAPIVersion: appConfiguration.apiVersion) } /** @@ -100,7 +101,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { var request = super.request(withMethod: method, urlString: URLString, parameters: parameters, error: error) as URLRequest - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return (request as NSURLRequest).mutableCopy() as! NSMutableURLRequest } @@ -109,7 +110,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { var request = super.multipartFormRequest(withMethod: method, urlString: URLString, parameters: parameters, constructingBodyWith: block, error: error) as URLRequest - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return (request as NSURLRequest).mutableCopy() as! NSMutableURLRequest } @@ -118,7 +119,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { var request = super.request(withMultipartForm: request, writingStreamContentsToFile: fileURL, completionHandler: handler) as URLRequest - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return (request as NSURLRequest).mutableCopy() as! NSMutableURLRequest } @@ -127,7 +128,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer { if var request = super.request(bySerializingRequest: request, withParameters: parameters, error: error) { - request = self.requestWithAuthorizationHeader(fromRequest: request) + request = self.requestConfiguringHeaders(fromRequest: request) return request } @@ -135,14 +136,24 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer return nil } - // MARK: Private API + // MARK: Header Helpers - private func setup(apiVersion: String) + private func configureDefaultHeaders(withAPIVersion apiVersion: String) { self.setValue("application/vnd.vimeo.*+json; version=\(apiVersion)", forHTTPHeaderField: Constants.AcceptHeaderKey) } - private func requestWithAuthorizationHeader(fromRequest request: URLRequest) -> URLRequest + private func requestConfiguringHeaders(fromRequest request: URLRequest) -> URLRequest + { + var request = request + + request = self.requestAddingAuthorizationHeader(fromRequest: request) + request = self.requestModifyingUserAgentHeader(fromRequest: request) + + return request + } + + private func requestAddingAuthorizationHeader(fromRequest request: URLRequest) -> URLRequest { var request = request @@ -169,4 +180,39 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer return request } + + private func requestModifyingUserAgentHeader(fromRequest request: URLRequest) -> URLRequest + { + guard let frameworkVersion = Bundle(for: type(of: self)).infoDictionary?["CFBundleShortVersionString"] as? String else + { + assertionFailure("Unable to get the framework version") + + return request + } + + var request = request + + let frameworkString = "VimeoNetworking/\(frameworkVersion)" + + guard let existingUserAgent = request.value(forHTTPHeaderField: Constants.UserAgentKey) else + { + // DISCUSSION: AFNetworking doesn't set a User Agent for tvOS (look at the init method in AFHTTPRequestSerializer.m). + // So, on tvOS the User Agent will only specify the framework. System information might be something we want to add + // in the future if AFNetworking isn't providing it. [ghking] 6/19/17 + + #if !os(tvOS) + assertionFailure("An existing user agent was not found") + #endif + + request.setValue(frameworkString, forHTTPHeaderField: Constants.UserAgentKey) + + return request + } + + let modifiedUserAgent = existingUserAgent + " " + frameworkString + + request.setValue(modifiedUserAgent, forHTTPHeaderField: Constants.UserAgentKey) + + return request + } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift index bf2ec1ac..dbb702db 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoResponseSerializer.swift @@ -63,9 +63,9 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer - returns: the serialized JSON dictionary */ - public func responseObjectFromDownloadTaskResponse(response: URLResponse?, url: URL?, error: NSError?) throws -> [AnyHashable: Any]? + public func responseObjectFromDownloadTaskResponse(response: URLResponse?, url: URL?, error: NSError?) throws -> [String: Any]? { - var responseObject: [AnyHashable: Any]? = nil + var responseObject: [String: Any]? = nil var serializationError: NSError? = nil do { @@ -134,7 +134,7 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer - returns: downloaded data serialized into JSON dictionary */ - public func dictionaryFromDownloadTaskResponse(url: URL?) throws -> [AnyHashable: Any] + public func dictionaryFromDownloadTaskResponse(url: URL?) throws -> [String: Any] { guard let url = url else { @@ -148,10 +148,10 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer throw NSError(domain: Constants.ErrorDomain, code: 0, userInfo: userInfo) } - var dictionary: [AnyHashable: Any]? = [:] + var dictionary: [String: Any]? = [:] if data.count > 0 { - dictionary = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as? [AnyHashable: Any] + dictionary = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as? [String: Any] } if dictionary == nil @@ -165,9 +165,9 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer // MARK: Private API - private func errorInfo(fromResponse response: URLResponse?, responseObject: Any?) -> [AnyHashable: Any]? + private func errorInfo(fromResponse response: URLResponse?, responseObject: Any?) -> [String: Any]? { - var errorInfo: [AnyHashable: Any] = [:] + var errorInfo: [String: Any] = [:] if let dictionary = responseObject as? [String: Any] { @@ -215,7 +215,8 @@ final public class VimeoResponseSerializer: AFJSONResponseSerializer "application/vnd.vimeo.programmed.cinema+json", "application/vnd.vimeo.policydocument+json", "application/vnd.vimeo.notification+json", - "application/vnd.vimeo.notification.subscriptions+json"] + "application/vnd.vimeo.notification.subscriptions+json", + "application/vnd.vimeo.product+json"] ) } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift index 7ba09c23..1bf18402 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift @@ -113,6 +113,27 @@ public extension VimeoSessionManager return VimeoSessionManager(baseUrl: baseUrl, sessionConfiguration: sessionConfiguration, requestSerializer: requestSerializer) } + /// Creates a background session manager suitable for share extension to + /// use. + /// + /// - Parameters: + /// - identifier: T background session identifier. + /// - baseUrl: T base URL for the HTTP client. This value should + /// usually be set to `VimeoBaseURL`. + /// - sharedContainerIdentifier: The name of the shared container + /// between the main app and the share extension. + /// - accessTokenProvider: A block that provides an access token + /// dynamically, called on each request serialization. + /// - Returns: an initialized `VimeoSessionManager`. + static func backgroundSessionManager(identifier: String, baseUrl: URL, sharedContainerIdentifier: String, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) -> VimeoSessionManager + { + let sessionConfiguration = self.backgroundSessionConfiguration(identifier: identifier) + sessionConfiguration.sharedContainerIdentifier = sharedContainerIdentifier + let requestSerializer = VimeoRequestSerializer(accessTokenProvider: accessTokenProvider) + + return VimeoSessionManager(baseUrl: baseUrl, sessionConfiguration: sessionConfiguration, requestSerializer: requestSerializer) + } + /** Creates an unauthenticated background session manager with a static application configuration From 433423a6cc88dbb31a1cc2f7e9c709f2602afe84 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 4 May 2018 17:01:18 -0400 Subject: [PATCH 060/149] Make the `handleEvents` function not return anything --- VimeoUpload/Descriptor System/DescriptorManager.swift | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 5ef798cc..4bd93a86 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -317,18 +317,11 @@ open class DescriptorManager: NSObject // MARK: Public API - open func handleEventsForBackgroundURLSession(identifier: String, completionHandler: @escaping VoidClosure) -> Bool + open func handleEventsForBackgroundURLSession(identifier: String, completionHandler: @escaping VoidClosure) { - guard identifier == self.sessionManager.session.configuration.identifier else - { - return false - } - self.delegate?.willHandleEventsForBackgroundSession?() self.backgroundEventsCompletionHandler = completionHandler - - return true } open func suspend() From c3f37deee66720f7f3ef3c18d3d6bde8dd3f3ede Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 7 May 2018 09:34:44 -0400 Subject: [PATCH 061/149] Update `AppDelegate`s with new `handleEvents` method --- .../VimeoUpload-iOS-OldUpload/AppDelegate.swift | 5 +---- Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift index 87cad91d..8981676d 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift @@ -66,10 +66,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { - if OldVimeoUploader.sharedInstance.descriptorManager.handleEventsForBackgroundURLSession(identifier: identifier, completionHandler: completionHandler) == false - { - assertionFailure("Unhandled background events") - } + OldVimeoUploader.sharedInstance.descriptorManager.handleEventsForBackgroundURLSession(identifier: identifier, completionHandler: completionHandler) } private func requestCameraRollAccessIfNecessary() diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift index 103eab00..bd7ffec5 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift @@ -53,10 +53,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { - if NewVimeoUploader.sharedInstance.descriptorManager.handleEventsForBackgroundURLSession(identifier: identifier, completionHandler: completionHandler) == false - { - assertionFailure("Unhandled background events") - } + NewVimeoUploader.sharedInstance.descriptorManager.handleEventsForBackgroundURLSession(identifier: identifier, completionHandler: completionHandler) } } From 5a0ad1fb68e892108167d1e676429932ece0bd96 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 16 May 2018 11:43:57 -0400 Subject: [PATCH 062/149] Remove `identifier` argument --- .../AppDelegate.swift | 7 +++++- .../VimeoUpload-iOS/AppDelegate.swift | 7 +++++- .../Descriptor System/DescriptorManager.swift | 22 ++++++++++++++++++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift index 8981676d..c08f25c1 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift @@ -66,7 +66,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { - OldVimeoUploader.sharedInstance.descriptorManager.handleEventsForBackgroundURLSession(identifier: identifier, completionHandler: completionHandler) + let descriptorManager = OldVimeoUploader.sharedInstance.descriptorManager + + if descriptorManager.canHandleEventsForBackgroundURLSession(withIdentifier: identifier) + { + descriptorManager.handleEventsForBackgroundURLSession(completionHandler: completionHandler) + } } private func requestCameraRollAccessIfNecessary() diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift index bd7ffec5..aab0c1a9 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift @@ -53,7 +53,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { - NewVimeoUploader.sharedInstance.descriptorManager.handleEventsForBackgroundURLSession(identifier: identifier, completionHandler: completionHandler) + let descriptorManager = NewVimeoUploader.sharedInstance.descriptorManager + + if descriptorManager.canHandleEventsForBackgroundURLSession(withIdentifier: identifier) + { + descriptorManager.handleEventsForBackgroundURLSession(completionHandler: completionHandler) + } } } diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 4bd93a86..1bbb8ff1 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -317,7 +317,27 @@ open class DescriptorManager: NSObject // MARK: Public API - open func handleEventsForBackgroundURLSession(identifier: String, completionHandler: @escaping VoidClosure) + /// Determines if the manager can handle events from a background upload + /// session. + /// + /// Each descriptor manager is backed with a background upload session. + /// If the upload is in progress, and your app enters background mode, + /// this upload session still continues its progress. Once the upload + /// task either completes or fails, it will ping your app delegate so + /// that your app has an opportunity to handle the session's events. + /// Use or override this method to check if the descriptor manager + /// should handle events from the background session. + /// + /// - Parameter identifier: The identifier of a background session. + /// - Returns: `true` if the identifier is the same as the underlying + /// background upload session and thus the descriptor manager should + /// handle the events. `false` otherwise. + open func canHandleEventsForBackgroundURLSession(withIdentifier identifier: String) -> Bool + { + return identifier == self.sessionManager.session.configuration.identifier + } + + open func handleEventsForBackgroundURLSession(completionHandler: @escaping VoidClosure) { self.delegate?.willHandleEventsForBackgroundSession?() From ce01282a701cf8ba8dc0cb6b3874f4c358e945d7 Mon Sep 17 00:00:00 2001 From: Mike Westendorf Date: Thu, 24 May 2018 12:21:01 -0400 Subject: [PATCH 063/149] Updates CocoaPods to 1.5.2, fixes broken build for example app --- .../Cells/DemoCameraRollCell.swift | 2 +- .../project.pbxproj | 63 +- .../VimeoUpload-iOS.xcodeproj/project.pbxproj | 63 +- .../VimeoUpload.xcodeproj/project.pbxproj | 21 +- Gemfile | 2 +- Gemfile.lock | 140 ++-- Podfile.lock | 12 +- Pods/Manifest.lock | 12 +- Pods/Pods.xcodeproj/project.pbxproj | 682 ++++++++++-------- .../AFNetworking/AFNetworking.xcconfig | 7 +- ...ds-VimeoUpload-iOS-OldUpload-frameworks.sh | 80 +- ...ods-VimeoUpload-iOS-OldUpload-resources.sh | 43 +- ...s-VimeoUpload-iOS-OldUpload.debug.xcconfig | 9 +- ...VimeoUpload-iOS-OldUpload.release.xcconfig | 9 +- ...meoUpload-iOS-OldUploadTests-frameworks.sh | 72 +- ...imeoUpload-iOS-OldUploadTests-resources.sh | 43 +- ...eoUpload-iOS-OldUploadTests.debug.xcconfig | 9 +- ...Upload-iOS-OldUploadTests.release.xcconfig | 9 +- .../Pods-VimeoUpload-iOS-frameworks.sh | 80 +- .../Pods-VimeoUpload-iOS-resources.sh | 43 +- .../Pods-VimeoUpload-iOS.debug.xcconfig | 9 +- .../Pods-VimeoUpload-iOS.release.xcconfig | 9 +- .../Pods-VimeoUpload-iOSTests-frameworks.sh | 72 +- .../Pods-VimeoUpload-iOSTests-resources.sh | 43 +- .../Pods-VimeoUpload-iOSTests.debug.xcconfig | 9 +- ...Pods-VimeoUpload-iOSTests.release.xcconfig | 9 +- .../Pods-VimeoUpload-resources.sh | 43 +- .../Pods-VimeoUpload.debug.xcconfig | 9 +- .../Pods-VimeoUpload.release.xcconfig | 9 +- .../VimeoNetworking/VimeoNetworking.xcconfig | 9 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + 31 files changed, 965 insertions(+), 665 deletions(-) create mode 100644 VimeoUpload.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Examples/VimeoUpload+Demos/Cells/DemoCameraRollCell.swift b/Examples/VimeoUpload+Demos/Cells/DemoCameraRollCell.swift index e083c233..f65fa287 100644 --- a/Examples/VimeoUpload+Demos/Cells/DemoCameraRollCell.swift +++ b/Examples/VimeoUpload+Demos/Cells/DemoCameraRollCell.swift @@ -89,7 +89,7 @@ class DemoCameraRollCell: UICollectionViewCell, CameraRollAssetCell if seconds > 0 { - string = String.stringFromDuration(inSeconds: seconds) as String + string = NSString.stringFromDuration(inSeconds: seconds) as String } self.durationlabel?.text = string diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj index 28d0b408..59156019 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj @@ -232,7 +232,6 @@ AFFA40081C9CE8E000C7B6F3 /* Frameworks */, AFFA40091C9CE8E000C7B6F3 /* Resources */, BE8817D04A5626F94A584168 /* [CP] Embed Pods Frameworks */, - 4AA625097181A3EE21E48884 /* [CP] Copy Pods Resources */, 5009CCEF1E0060D800887FC1 /* Embed Frameworks */, ); buildRules = ( @@ -252,8 +251,6 @@ AFFA401B1C9CE8E000C7B6F3 /* Sources */, AFFA401C1C9CE8E000C7B6F3 /* Frameworks */, AFFA401D1C9CE8E000C7B6F3 /* Resources */, - 576AC1945F6ECF1790D2BE79 /* [CP] Embed Pods Frameworks */, - 89C1E0AD2EBD4C702D63C690 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -337,58 +334,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOS-OldUpload-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 4AA625097181A3EE21E48884 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 576AC1945F6ECF1790D2BE79 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 89C1E0AD2EBD4C702D63C690 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; BE8817D04A5626F94A584168 /* [CP] Embed Pods Frameworks */ = { @@ -397,9 +352,14 @@ files = ( ); inputPaths = ( + "${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", + "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/VimeoNetworking.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -412,13 +372,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOS-OldUploadTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj b/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj index c6525724..3a278be6 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj @@ -243,7 +243,6 @@ AFFA3F111C9CE22500C7B6F3 /* Frameworks */, AFFA3F121C9CE22500C7B6F3 /* Resources */, F99B806A68B81482408B6D2F /* [CP] Embed Pods Frameworks */, - EB2809E825F1D91F8B3E8D00 /* [CP] Copy Pods Resources */, 5009CCEB1E00604200887FC1 /* Embed Frameworks */, ); buildRules = ( @@ -263,8 +262,6 @@ AFFA3F241C9CE22500C7B6F3 /* Sources */, AFFA3F251C9CE22500C7B6F3 /* Frameworks */, AFFA3F261C9CE22500C7B6F3 /* Resources */, - 9AE9924AC1194539D3970F62 /* [CP] Embed Pods Frameworks */, - F6CB30BFCBEB63E375D9C6F9 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -347,13 +344,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOSTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; 7B5C5CEC1A3E28ED8906F076 /* [CP] Check Pods Manifest.lock */ = { @@ -362,58 +362,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 9AE9924AC1194539D3970F62 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EB2809E825F1D91F8B3E8D00 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F6CB30BFCBEB63E375D9C6F9 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; F99B806A68B81482408B6D2F /* [CP] Embed Pods Frameworks */ = { @@ -422,9 +380,14 @@ files = ( ); inputPaths = ( + "${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", + "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/VimeoNetworking.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 48b0ae07..c6a40064 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -456,7 +456,6 @@ AF40D4DD1CCE9CB600753ABA /* Frameworks */, AF40D4DE1CCE9CB600753ABA /* Headers */, AF40D4DF1CCE9CB600753ABA /* Resources */, - AF226B77AD8E786AE78DC298 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -548,28 +547,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - AF226B77AD8E786AE78DC298 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/Gemfile b/Gemfile index a9ce7092..7c65ccd6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' gem 'fastlane', '2.42.0' -gem 'cocoapods', '1.2.0' +gem 'cocoapods', '1.5.2' gem 'xcode-install', '2.1.0' gem 'xcpretty-json-formatter', '0.1.0' gem 'danger-xcode_summary', '0.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 429cbcd8..1e7b4ddb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,92 +1,95 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (2.3.5) - activesupport (4.2.9) + CFPropertyList (2.3.6) + activesupport (4.2.10) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.5.1) - public_suffix (~> 2.0, >= 2.0.2) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + atomos (0.1.2) babosa (1.0.2) claide (1.0.2) claide-plugins (0.9.2) cork nap open4 (~> 1.3) - cocoapods (1.2.0) + cocoapods (1.5.2) activesupport (>= 4.0.2, < 5) - claide (>= 1.0.1, < 2.0) - cocoapods-core (= 1.2.0) - cocoapods-deintegrate (>= 1.0.1, < 2.0) - cocoapods-downloader (>= 1.1.3, < 2.0) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.5.2) + cocoapods-deintegrate (>= 1.0.2, < 2.0) + cocoapods-downloader (>= 1.2.0, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.1.2, < 2.0) + cocoapods-trunk (>= 1.3.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) - colored (~> 1.2) + colored2 (~> 3.1) escape (~> 0.0.4) fourflusher (~> 2.0.1) gh_inspector (~> 1.0) - molinillo (~> 0.5.5) + molinillo (~> 0.6.5) nap (~> 1.0) - ruby-macho (~> 0.2.5) - xcodeproj (>= 1.4.1, < 2.0) - cocoapods-core (1.2.0) - activesupport (>= 4.0.2, < 5) + ruby-macho (~> 1.1) + xcodeproj (>= 1.5.7, < 2.0) + cocoapods-core (1.5.2) + activesupport (>= 4.0.2, < 6) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-deintegrate (1.0.1) - cocoapods-downloader (1.1.3) + cocoapods-deintegrate (1.0.2) + cocoapods-downloader (1.2.0) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) cocoapods-stats (1.0.0) - cocoapods-trunk (1.2.0) + cocoapods-trunk (1.3.0) nap (>= 0.8, < 2.0) - netrc (= 0.7.8) + netrc (~> 0.11) cocoapods-try (1.1.0) colored (1.2) colored2 (3.1.2) colorize (0.8.1) - commander-fastlane (4.4.5) + commander-fastlane (4.4.6) highline (~> 1.7.2) - cork (0.2.0) - colored (~> 1.2) - danger (4.0.4) + concurrent-ruby (1.0.5) + cork (0.3.0) + colored2 (~> 3.1) + danger (5.6.1) claide (~> 1.0) claide-plugins (>= 0.9.2) - colored (~> 1.2) + colored2 (~> 3.1) cork (~> 0.1) faraday (~> 0.9) faraday-http-cache (~> 1.0) git (~> 1) kramdown (~> 1.5) - octokit (~> 4.2) + no_proxy_fix + octokit (~> 4.7) terminal-table (~> 1) danger-plugin-api (1.0.0) danger (> 2.0) danger-xcode_summary (0.1.0) danger-plugin-api (~> 1.0) - declarative (0.0.9) + declarative (0.0.10) declarative-option (0.1.0) - domain_name (0.5.20170404) + domain_name (0.5.20180417) unf (>= 0.0.5, < 1.0.0) - dotenv (2.2.1) + dotenv (2.4.0) escape (0.0.4) - excon (0.57.1) - faraday (0.12.1) + excon (0.62.0) + faraday (0.15.2) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) faraday (>= 0.7.4) http-cookie (~> 1.0.0) faraday-http-cache (1.3.1) faraday (~> 0.8) - faraday_middleware (0.11.0.1) + faraday_middleware (0.12.2) faraday (>= 0.7.4, < 1.0) - fastimage (2.1.0) + fastimage (2.1.3) fastlane (2.42.0) CFPropertyList (>= 2.3, < 3.0.0) addressable (>= 2.3, < 3.0.0) @@ -125,8 +128,8 @@ GEM terminal-table fourflusher (2.0.1) fuzzy_match (2.0.4) - gh_inspector (1.0.3) - git (1.3.0) + gh_inspector (1.1.3) + git (1.4.0) google-api-client (0.12.0) addressable (~> 2.5, >= 2.5.1) googleauth (~> 0.5) @@ -134,22 +137,23 @@ GEM mime-types (~> 3.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) - googleauth (0.5.1) - faraday (~> 0.9) - jwt (~> 1.4) + googleauth (0.6.2) + faraday (~> 0.12) + jwt (>= 1.4, < 3.0) logging (~> 2.0) memoist (~> 0.12) multi_json (~> 1.11) os (~> 0.9) signet (~> 0.7) - highline (1.7.8) + highline (1.7.10) http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) - i18n (0.8.6) + i18n (0.9.5) + concurrent-ruby (~> 1.0) json (2.1.0) - jwt (1.5.6) - kramdown (1.13.2) + jwt (2.1.0) + kramdown (1.16.2) little-plugger (1.1.4) logging (2.2.2) little-plugger (~> 1.1) @@ -159,74 +163,76 @@ GEM mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_magick (4.5.1) - mini_portile2 (2.1.0) - minitest (5.10.2) - molinillo (0.5.7) - multi_json (1.12.1) + mini_portile2 (2.3.0) + minitest (5.11.3) + molinillo (0.6.5) + multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.0.0) - nanaimo (0.2.3) + nanaimo (0.2.5) nap (1.1.0) - netrc (0.7.8) - nokogiri (1.7.0.1) - mini_portile2 (~> 2.1.0) - octokit (4.6.2) + netrc (0.11.0) + no_proxy_fix (0.1.2) + nokogiri (1.8.2) + mini_portile2 (~> 2.3.0) + octokit (4.9.0) sawyer (~> 0.8.0, >= 0.5.3) open4 (1.3.4) os (0.9.6) - plist (3.3.0) - public_suffix (2.0.5) + plist (3.4.0) + public_suffix (3.0.2) representable (3.0.4) declarative (< 0.1.0) declarative-option (< 0.2.0) uber (< 0.2.0) - retriable (3.0.2) + retriable (3.1.1) rouge (2.0.7) - ruby-macho (0.2.6) + ruby-macho (1.1.0) rubyzip (1.2.1) sawyer (0.8.1) addressable (>= 2.3.5, < 2.6) faraday (~> 0.8, < 1.0) security (0.1.3) - signet (0.7.3) + signet (0.8.1) addressable (~> 2.3) faraday (~> 0.9) - jwt (~> 1.5) + jwt (>= 1.5, < 3.0) multi_json (~> 1.10) slack-notifier (1.5.1) terminal-notifier (1.8.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) - tty-screen (0.5.0) - tzinfo (1.2.3) + tty-screen (0.5.1) + tzinfo (1.2.5) thread_safe (~> 0.1) uber (0.1.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.4) - unicode-display_width (1.3.0) + unf_ext (0.0.7.5) + unicode-display_width (1.3.2) word_wrap (1.0.0) xcode-install (2.1.0) claide (>= 0.9.1, < 1.1.0) fastlane (>= 2.1.1, < 3.0.0) - xcodeproj (1.5.0) - CFPropertyList (~> 2.3.3) + xcodeproj (1.5.9) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.2) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.2.3) + nanaimo (~> 0.2.5) xcpretty (0.2.8) rouge (~> 2.0.7) xcpretty-json-formatter (0.1.0) xcpretty (~> 0.2, >= 0.0.7) - xcpretty-travis-formatter (0.0.4) + xcpretty-travis-formatter (1.0.0) xcpretty (~> 0.2, >= 0.0.7) PLATFORMS ruby DEPENDENCIES - cocoapods (= 1.2.0) + cocoapods (= 1.5.2) danger-xcode_summary (= 0.1.0) fastlane (= 2.42.0) fastlane-plugin-pretty_junit @@ -234,4 +240,4 @@ DEPENDENCIES xcpretty-json-formatter (= 0.1.0) BUNDLED WITH - 1.15.1 + 1.15.3 diff --git a/Podfile.lock b/Podfile.lock index ab5adfd7..c1ac208d 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -18,17 +18,21 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) + - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`)" + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - AFNetworking EXTERNAL SOURCES: VimeoNetworking: :branch: develop - :git: git@github.com:vimeo/VimeoNetworking.git + :git: "git@github.com:vimeo/VimeoNetworking.git" CHECKOUT OPTIONS: VimeoNetworking: :commit: e96d42c69784ee9d45e1c3f70e0b9e5e0f22a28f - :git: git@github.com:vimeo/VimeoNetworking.git + :git: "git@github.com:vimeo/VimeoNetworking.git" SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 @@ -36,4 +40,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 -COCOAPODS: 1.2.0 +COCOAPODS: 1.5.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index ab5adfd7..c1ac208d 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -18,17 +18,21 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`) + - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`)" + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - AFNetworking EXTERNAL SOURCES: VimeoNetworking: :branch: develop - :git: git@github.com:vimeo/VimeoNetworking.git + :git: "git@github.com:vimeo/VimeoNetworking.git" CHECKOUT OPTIONS: VimeoNetworking: :commit: e96d42c69784ee9d45e1c3f70e0b9e5e0f22a28f - :git: git@github.com:vimeo/VimeoNetworking.git + :git: "git@github.com:vimeo/VimeoNetworking.git" SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 @@ -36,4 +40,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 -COCOAPODS: 1.2.0 +COCOAPODS: 1.5.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index fc6c4cf8..f722b48e 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -15,16 +15,20 @@ 032716918FA2B8150F25BEA44FC1E35F /* Pods-VimeoUpload-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 080981D0829053FB0D91C3AC721C22E6 /* VIMUploadQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */; }; 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 34C6DA693B07265C4DCBAE97EE2D5594 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1066E708C7BDD5A2F0CB700190824FBE /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D7729272B0191CF0AEEC273F9FF8FFC1 /* MobileCoreServices.framework */; }; 110895699164F5489FEA1B5862189EF1 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2306B631FE1354BD0E5B81E1EB94D032 /* AppConfiguration.swift */; }; 12F8248721BA64F46CB0036E970CA4D2 /* VIMPictureCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = E5B2FE6582270D74BE0CBFC7A389FC8A /* VIMPictureCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B2648F4C8600A30243D27AC672A0A5 /* VIMLiveHeartbeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA4D18A3DC38EBDE55B7E5C609CC71FC /* VIMLiveHeartbeat.swift */; }; + 13DEA0CE6FC83504D998DEBF3B263336 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F7ABBC91F9865BF0C8F0A5C033AC9F63 /* UIActivityIndicatorView+AFNetworking.m */; }; 1454895436E2AEDC9FBE797C83971E31 /* VIMSeason.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F2E19F2D2D74E49166614264DA1D27 /* VIMSeason.m */; }; + 15606351AAE10A740FA83F707A743AC4 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 167ACEC255DCBED6BFDC64FAD93DC1BA /* VIMCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 24231BD46B3810C7B980D8C357456050 /* VIMCategory.h */; settings = {ATTRIBUTES = (Public, ); }; }; 173092A45F57338768EE067ECFDF126F /* ResponseCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */; }; 17AF6E91051C40A1909641FBD81CFCE6 /* VIMPolicyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */; }; 1A19B0C55294E4016F6F29DF11B37286 /* VIMRecommendation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0338339E81D84468FC3FEC3B4E0B751B /* VIMRecommendation.m */; }; 1B098FF61D835DC05E4818A260B6954F /* digicert-sha2.cer in Resources */ = {isa = PBXBuildFile; fileRef = 7AC12ADD13D05812352645C5BAEFD99D /* digicert-sha2.cer */; }; + 1B4B83A97D510F7DD45259F09EFFAE5A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90C6CE6DFFF0E79482EB6BEB9917B9D /* Security.framework */; }; 1C762B3B85A259872E5A315B3C9FEC2F /* VIMVideo+VOD.m in Sources */ = {isa = PBXBuildFile; fileRef = 594B408BD401FB948979F4BDA15CC9EA /* VIMVideo+VOD.m */; }; 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DB8FD8229ED4AD2B0CBBBDDC20F09BAA /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1E555F7B50932D19657F6BACF6482891 /* VIMVideoPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AE31BCA21D12620C2D9B0F9386A7EA /* VIMVideoPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -42,7 +46,7 @@ 2D8D15E021ED742C95A7893F7A3877DC /* VIMVideoUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 50CF7C4EB12469B6AD2059AF45FA8ECB /* VIMVideoUtils.m */; }; 2F3A5EFEDFA43593DC5AA806D91BFA5A /* VIMInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */; }; 2F4D4E3413C1336621AD3EF5461281C6 /* Request+Picture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300CFD20A787C853925F7BAE4CBFAA57 /* Request+Picture.swift */; }; - 30F0BAE1DBB79BBB6CBD957EA8B89E4B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */; }; + 30D3D5470DED1FF2B24DFE656D46F088 /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */; }; 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 67584EC80399FD96630D745DA4D1A98F /* UIButton+AFNetworking.m */; }; 327BE3456189E37F229074A8E0E59D67 /* Request+ProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE40B3ABF25113AD8DB2293E39C0B740 /* Request+ProgrammedContent.swift */; }; 34ACDFAC012CB5AE7996D0B1157ED336 /* VIMCredit.h in Headers */ = {isa = PBXBuildFile; fileRef = B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -52,11 +56,8 @@ 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */; }; 3B01A1344CDDAD474BAB3A4972534FF4 /* VIMVODItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */; }; 3C178E120BAF6B59E24F466C8FF23D6B /* VIMNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E5288CBF6B2BE080B33EB12E809F2B4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 3E9017BD1F6A95F49D9534FED7AEE8E0 /* VimeoSessionManager+Constructors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */; }; - 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; 42002EAFB3E488172644B9CCEEBBDD5E /* VIMVideoFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C8E3687C68FDA0D536295AA785351E89 /* VIMVideoFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 42AF1BB1ED090CC9E588A463441D09E3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */; }; 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A23F6E3249A977997C8255519997C806 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 44C4F1F6F4236CB76C0C34FFFBEC9E93 /* VimeoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98158361BFB9C60E8591A14756CDA100 /* VimeoClient.swift */; }; 455719CCD0654F72FBFCF510DE328339 /* VIMVideoDASHFile.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D5EE1E0744442AC49E909AD0D768A9 /* VIMVideoDASHFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -66,7 +67,6 @@ 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DE0E38A99298F3EF954325E154AA215 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 49256D3D8A3D5ECF3865BD63A889E783 /* VIMLiveStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A751CF37C60078D4E14FD77EABB59EA /* VIMLiveStreams.swift */; }; - 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4D3532EDF43F7631961FBCE2118906D1 /* VIMPolicyDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = AE97ADD7133B74F569CDBAA703BCFD65 /* VIMPolicyDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4D78E4A293A03E543CB947C6E2B5BFC7 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EC2A207160C6ABAABFFB2C7CEF0193 /* Constants.swift */; }; 4FA2FC796ACCCC463EEE77542BE8D142 /* VIMUser.h in Headers */ = {isa = PBXBuildFile; fileRef = EB3CB90C71820EE74C9F0D2DA4A7B44F /* VIMUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -82,6 +82,7 @@ 5C0565FFE84B204D8F6C99772868BDEB /* VIMVODConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = FC34BB5F2459B8BE2191283BCD59DFFC /* VIMVODConnection.m */; }; 5D4A19EA76D7EA2F9AFD1D2114FE0282 /* AuthenticationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4649337C65FD272A0B75F156507DBF18 /* AuthenticationController.swift */; }; 5E954272295CF70B4C2C2815117255AB /* VIMVideoFairPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E0B01CEC75D6CABBC311CA2D4DCE1D9 /* VIMVideoFairPlayFile.m */; }; + 608FBB1E459C630CAC2D93C823A9B12C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; 6203DE451A85E5A0AA5C13D751699B1B /* VIMAppeal.m in Sources */ = {isa = PBXBuildFile; fileRef = 58588D4FE9CAD101CBA9E66CF55B111F /* VIMAppeal.m */; }; 6286BBCC9E8308998C92DE6A732153C0 /* Spatial.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEA5F1020ACBC1E16F7C377115328C63 /* Spatial.swift */; }; 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9468DEA78D57D9B0E4C7AC7F5E504C7B /* AFNetworkActivityIndicatorManager.m */; }; @@ -93,15 +94,12 @@ 69D4E81727D4C0E26D58BB5A47263C6A /* ErrorCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8A79531959161891C56EDD3B8236F9 /* ErrorCode.swift */; }; 6A0B3B27B44D1B549931CA04D05FDA5F /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198A0FC4821182C1441C3278B81533C1 /* Dictionary+Extension.swift */; }; 6AFAD442B4AAEECF1318FA8525604051 /* VIMAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BC4A625F838AE6E28EAA14F8EABBEEE /* VIMAccount.m */; }; - 6CB3E0E344A7E19BA2ADE572A9E91C7F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 6D7348E2B052AF437E6DD693FA1BB372 /* PinCodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */; }; 6FC69948AF7AED0F67402F8044ABE1BC /* VIMTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 633F03E86937C4E4A5EB10440B86406E /* VIMTag.m */; }; 7184A2EBE622AC5493861089EB852BC9 /* VIMVideoPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 66DF12E58DBB07F4E0A32A90407E7F10 /* VIMVideoPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; 730A439176273D3D0BBEF1C123CB4B87 /* VIMUserBadge.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B7817AC6B424B77B067539E39EDA9AB /* VIMUserBadge.h */; settings = {ATTRIBUTES = (Public, ); }; }; 76FB450A67E351FEF558473DF85A052A /* Request+User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2D82462A8952625139EFE730A1D996 /* Request+User.swift */; }; - 7715E1A66A2F21A0C5F8B913E79FC9F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 78471141D3A567C068C60243ED3554B8 /* VIMInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 44F122B80BACFA0494C2CFB8D9923E4C /* VIMInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 789D749690B308852115FF20CD982A69 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */; }; 79FD18E3550C4D60892402C954D89D58 /* VIMPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D22624966A39C8E5C113CBF14F4C8CE /* VIMPreference.m */; }; 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B507D130FFEBCD98C817BB196466C70 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7AD4CE7ABA24F180CCFBD6C0310DC1AA /* VIMModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = C716B4800FAD0DDAAAFFAB57FFC40242 /* VIMModelObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -110,20 +108,20 @@ 7E9D810438EAF1EC8C73357A66E2F745 /* VIMConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = EC67B7AD7961570B52C42FF75E469EF7 /* VIMConnection.m */; }; 7EB9BEBED79E8411B9797F9B7E41B2C3 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A642117F7C53CF7A21E344EBF7E7936 /* Request.swift */; }; 7F701AD6C1E16AC30D5A089603B3F29A /* VIMGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 6497695CF3E669E163206BB20DBAFE53 /* VIMGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 81D0F571B178C2F82F146F1F5E50C097 /* VIMObjectMapper+Generic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55D5445B186DDBBEC7D7A9B467FC2E6A /* VIMObjectMapper+Generic.swift */; }; 828EB50094BB958BEE3B094F96465E3E /* VIMGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = C867648C482317091BC988216AE7BCEF /* VIMGroup.m */; }; - 82D554EC9FB9A62D935B6555325F5898 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C29192B1F683D403AFFD632D65221D49 /* Security.framework */; }; 84D5E7F02850F93CBFE2114DE63556DE /* VIMLiveQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */; }; 84FCB295072BFCC1B8C766B77B2A4355 /* VIMNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE34181F7DEEA3A80140282BBC6AB0B /* VIMNotification.m */; }; 85DA40B231DA346D3F81F5C05721E8A5 /* Mappable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A27737DBFB0A1312C26B1C96EFC0D9CC /* Mappable.swift */; }; + 878417CA55E672D2123F3E7AA4339EA1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; 8BAC1702671F9373055297301A078026 /* VIMQuantityQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = 242A72850AA33ABD4DCB90C46D7EBBF7 /* VIMQuantityQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D1538471F2C35364D46EE098BC9F426 /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8EB0FBBB983197A428EB2C6B4F6E604F /* VIMPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = 157C7EA514B07C841D376B315F5F1636 /* VIMPicture.m */; }; 907C0418B3BEBF279E024CD35630D91D /* AccountStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A25EFA17D3547663AC40E439C04067B /* AccountStore.swift */; }; 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 926CEBDC701DEEE831E9E1BD7211DCEC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DAE9E29D14DFD809059EC3455D955F8 /* SystemConfiguration.framework */; }; 926D0D88C69D6E64C4F079963246D773 /* VIMLiveChatUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D14F412DA2B5A72B420B77A5DF82B391 /* VIMLiveChatUser.swift */; }; 932CA521D19C5DB870B9EA5163CDF9D0 /* VIMUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = 686E7A5A8052386182347D07482C3C67 /* VIMUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9336820057A592619B89406F1DF4AEC9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = EC667DA5D9EC1B35E659F3B9E0341C85 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; 94CABFC144E1224E093EC7B5057F08BD /* VIMThumbnailUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = CC35A7CF63A081875F9CF7A13AED2B6F /* VIMThumbnailUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -141,10 +139,10 @@ A6C453AA6D3CA78851EB47381AFD4462 /* Request+Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A986CC4EDA505946FE3258B89387779 /* Request+Toggle.swift */; }; A7B7691B6B973F3E7F1F21F416BD3613 /* VIMLiveChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FE473E948247E7F9972B5508A413C38 /* VIMLiveChat.swift */; }; A81D296D35F0C54AD7EFAF9C6162EEEB /* Request+Soundtrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */; }; - A8C297643282E0CF5E7DF9CB6E23A0D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; A90067E931B67F86573B5310EF33BEE4 /* Request+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 592399628685EEA2CBCEAA22472FB309 /* Request+Authentication.swift */; }; A92AFBF2EA1D8470C045152905FE94EC /* ExceptionCatcher+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EE9E0E05929DC3AFDF6276C52E5988C /* ExceptionCatcher+Swift.swift */; }; AA20F58AB9ADF9E981355D9DDD6F43CA /* VIMActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD6B4F1BB9B251C7BEC59722C42AB0B /* VIMActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE16FC5B4326038C8624FACCD693CB01 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDBDFFA351A30960D21939E28DC60212 /* CoreGraphics.framework */; }; AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 03C2FA5B57F57E6E4C867E75DC638115 /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF31E2ADAC20108EB84BDE3DAC89B5AD /* VIMModelObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 9899127E9167B9D6EBA7784D892653A2 /* VIMModelObject.m */; }; B096979D89174D895ACAA9130A84C751 /* Objc_ExceptionCatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CF73647B15392A1776EAC7769039E3C1 /* Objc_ExceptionCatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -157,13 +155,14 @@ B8A0FD0C3B86C1B68BC177F0E4F46FF0 /* String+Parameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A90EF0370E7F413E923D813F419C81 /* String+Parameters.swift */; }; B8C936EBBA62FA2DB48E61C49C63631B /* VIMSizeQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */; }; B8E04F3BBEBBD14C2D12C53535CEED63 /* VIMVideoPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCEA14CC7DF08D617ED59064F004953 /* VIMVideoPlayFile.m */; }; + B921B743C1F273406F64ABEDB7AF9400 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; B9E6048FDEF1EDF00DBD5E7603882B0F /* VIMVODConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = F6C8A0A919CEE05D1634AFD91D8693BC /* VIMVODConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB2BB064BA029A5772F1B80A2504B6D4 /* VIMChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA8C97144A1B46C16C2425AD02F2647 /* VIMChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB2D516BB64D23CB562B41D9C0DCFF91 /* VIMVideoProgressiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 4791D611DF81AF66DC55313D98C6202C /* VIMVideoProgressiveFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; BCBA69CD7C8C0C72ED283C9E23F1E9E8 /* VIMCredit.m in Sources */ = {isa = PBXBuildFile; fileRef = 91179DF7663D831C96D269BFB58AD522 /* VIMCredit.m */; }; BD430763476A5C43180E216E8DF6814C /* VIMPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48ADFB75E39D89D3FC25BA8311A8A3F8 /* VIMPrivacy.m */; }; + BD68AF52C096310FF247AF573E6D3E7A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; C08010E9B33FEB8A829FBFB76BA1A56A /* VIMAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = C913DD9402D7FCE7BBA97568950974A6 /* VIMAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C50D0C30AF8712AFFA42B7F9C4AC2C7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; C740EA611A1A0708069379C21CC91D22 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E356F5BC3EF410C1A8E290BF70EE42EC /* KeychainStore.swift */; }; C7D618E6E16BAB6EE81D7A943430A155 /* VIMUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 404EBED1541B755FB84CEB0B6BF5B214 /* VIMUploadTicket.m */; }; C9FBFA4214F4CE291C59D52DFA886C02 /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D53BEEBF70CF78A7381D5E381FE19629 /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -171,7 +170,6 @@ CBD0A5C342505975B14B0722C0A40644 /* VIMVideoProgressiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C1BE847651368C4C25045E57EB0E3F /* VIMVideoProgressiveFile.m */; }; CC9E35985FC0082D929D45BA28334A1C /* VIMVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 67E8730E582CED91AFE4FA07B317CF43 /* VIMVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE4DA92A43826C17668392D0C859A80A /* AFSecurityPolicy.m */; }; - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */; }; CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 620D09827DEDF296949C919BB5E207C4 /* AFNetworking-dummy.m */; }; D109CF550CC4B4207ABD5A8BDA5D7FB2 /* VIMSpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 199439094EAB2A988BAED89C1771A848 /* VIMSpace.swift */; }; D1CC6C140311BDF560402C7B261EC749 /* VIMVideoPlayRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 58047C8CC5F49283333E246CA9F56BFA /* VIMVideoPlayRepresentation.m */; }; @@ -183,6 +181,7 @@ D86979E7D5F083AE83F26A54375E0BE6 /* VIMTrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = 434D92DDD616ED26F2A45C6EAB3DF3C2 /* VIMTrigger.h */; settings = {ATTRIBUTES = (Public, ); }; }; D8876D8D889C6B0E96CF2AFD3CDB8B97 /* VimeoSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B89681226395449BB402C81A1ED264E /* VimeoSessionManager.swift */; }; DC395092187FBC815E499B755553E751 /* Pods-VimeoUpload-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */; }; + DC9AE7B95B286B56C6445079B403C3D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; DCE8E24B5551BD3ED1FD7ABD56C10386 /* VIMVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF8D5A5B94427B5A26BF7A110935D1D /* VIMVideo.m */; }; DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EC36289436BC8F92161297A7A6BB279 /* AFNetworkReachabilityManager.m */; }; DE18C4BDBECD0E69D0696F8BD2DCD577 /* VIMChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */; }; @@ -196,11 +195,13 @@ E59B30AE3C849AECA3C525452E2AE055 /* VIMLiveTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1A9E4CA052B6791BE98CABC26BDAE96 /* VIMLiveTime.swift */; }; E67F7F8543FC715AD3B30BC6CB366B6E /* VIMThumbnailUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */; }; E6BC2F1EBCB35E455ECB7D63F1591E93 /* VIMQuantityQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DB8B03BA0C91F983BEBB7D468AA4F10 /* VIMQuantityQuota.m */; }; + E6DC085EF47756D760080D0E855E965A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; E791D2683395A22962082E7163104379 /* NSError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED3D79C25378B9CD7F9F1F4D28F37C78 /* NSError+Extensions.swift */; }; E9C53427664F14DBB8FCFAB186BCFB59 /* VIMVideoPlayRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CA19508165DFEEB376273E8D4214F59 /* VIMVideoPlayRepresentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; E9CCC4E47921BE30AAE21DE57E20BEFA /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C974CC35310983ABAED5BA8CF32332A6 /* Subscription.swift */; }; E9FDD6AECB1F1502240718DD68585725 /* PlayProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E82E7A6452665F31AB0160C36C0040 /* PlayProgress.swift */; }; EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 31D638862512159911B72BCEA7447DC2 /* AFHTTPSessionManager.m */; }; + ECE3AC09F6BE7F51C36F9AC7D5FFCF56 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; F1B355E841C99D9DBA940D0E172DAE7F /* Objc_ExceptionCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */; }; F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 7983F38BB3C81F07425BFAF1E6289C43 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; F2625E2811F90F09002CACB5816B66D5 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */; }; @@ -210,7 +211,6 @@ F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B2B4EA4DB47084F317FFA4C51ADC9C /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; F918C94B773F6FAE6B379A7A216C14DF /* VIMComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B2D0192E9B889AE401D325E73A05B /* VIMComment.m */; }; F938EE05B1FA2FCD55CAE920B0275003 /* VIMNotificationsConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A744737CCC3FB2DDD29A8A01B7569A /* VIMNotificationsConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F94CAA71DF535013FE840C72ED995ACA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; F99681CD0018DD5318E1C75064153302 /* VIMMappable.h in Headers */ = {isa = PBXBuildFile; fileRef = D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */; settings = {ATTRIBUTES = (Public, ); }; }; FB1D774E4A4E73BEC95B50B24530ADEC /* VIMCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = A962DA72E1B4C69B2EBB0CF5A88E990E /* VIMCategory.m */; }; FC4467E7982DA5205C40F4CE3876FD62 /* VIMReviewPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57B784EA87250DC92F76F6BF0638D4D2 /* VIMReviewPage.swift */; }; @@ -255,6 +255,13 @@ remoteGlobalIDString = 119F92C3FCFD322E8CA53B254AE9B6EA; remoteInfo = VimeoNetworking; }; + C1B07E8A6BB52E5A23F0C9ABD7F591F1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 007473F5B3F53CD3EEA4CABB3BD4C070; + remoteInfo = "Pods-VimeoUpload-iOS-OldUpload"; + }; DBE8C14A8BD5EC1ADA1AD87726953825 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -269,6 +276,13 @@ remoteGlobalIDString = CF671F7E57B92905F1CC91D036D6B4A7; remoteInfo = AFNetworking; }; + F4716F7EEF30FEC980B19631440BDCEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9ABE00A810B6AFE214900E3484571A39; + remoteInfo = "Pods-VimeoUpload-iOS"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -382,7 +396,6 @@ 714AC1F0B428E041A21A3D9426A0F56D /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; 714C5B0978A3C1F5DFD5196353A4674C /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; 71DED1DC4C3953219DB409A92F0E546F /* VIMAppeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAppeal.h; path = VimeoNetworking/Sources/Models/VIMAppeal.h; sourceTree = ""; }; - 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; 7426D8145A3155978F0515BEEFCB8447 /* Request+Comment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Comment.swift"; path = "VimeoNetworking/Sources/Request+Comment.swift"; sourceTree = ""; }; 768B121F5BBF2F6F17A30D3AF51F39BC /* Pods-VimeoUpload-iOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOSTests.modulemap"; sourceTree = ""; }; 770CD4C87AE1AA8397D0F6E251DCC540 /* VIMTrigger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTrigger.m; path = VimeoNetworking/Sources/Models/VIMTrigger.m; sourceTree = ""; }; @@ -403,6 +416,7 @@ 8C9165823267758FD6A92FD5BE0B6610 /* Pods-VimeoUpload-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-resources.sh"; sourceTree = ""; }; 8D9225F1748860C325BC0B5470023589 /* Request+Configs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Configs.swift"; path = "VimeoNetworking/Sources/Request+Configs.swift"; sourceTree = ""; }; 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUploadQuota.swift; path = VimeoNetworking/Sources/Models/VIMUploadQuota.swift; sourceTree = ""; }; + 8DAE9E29D14DFD809059EC3455D955F8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; 8E6BFE7016A60D816B0E3C15C0E2F3BF /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; 8E6D96934932FA9638F6BD2E31B8D86E /* Pods-VimeoUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-acknowledgements.plist"; sourceTree = ""; }; 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMThumbnailUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.m; sourceTree = ""; }; @@ -436,7 +450,6 @@ A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.debug.xcconfig"; sourceTree = ""; }; AA188B201DCC201C7D1451547279808D /* VIMVideoUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoUtils.h; path = VimeoNetworking/Sources/Models/VIMVideoUtils.h; sourceTree = ""; }; - AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; AB1A7C0E9CF186DC326357962BEC7AF5 /* VIMPictureCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPictureCollection.m; path = VimeoNetworking/Sources/Models/VIMPictureCollection.m; sourceTree = ""; }; AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseCache.swift; path = VimeoNetworking/Sources/ResponseCache.swift; sourceTree = ""; }; AC1504799A29B9D2BC4470E3E39BCA33 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; @@ -453,17 +466,14 @@ B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODItem.m; path = VimeoNetworking/Sources/Models/VIMVODItem.m; sourceTree = ""; }; B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCredit.h; path = VimeoNetworking/Sources/Models/VIMCredit.h; sourceTree = ""; }; - B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveQuota.swift; path = VimeoNetworking/Sources/Models/VIMLiveQuota.swift; sourceTree = ""; }; B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-dummy.m"; sourceTree = ""; }; BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.release.xcconfig"; sourceTree = ""; }; BCB75948A89DA6FAFB6053EFB7B39628 /* VIMPicture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPicture.h; path = VimeoNetworking/Sources/Models/VIMPicture.h; sourceTree = ""; }; BCCE3CCA275CFD5838CD6B0FFCC72CD3 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; - BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Soundtrack.swift"; path = "VimeoNetworking/Sources/Request+Soundtrack.swift"; sourceTree = ""; }; C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMChannel.m; path = VimeoNetworking/Sources/Models/VIMChannel.m; sourceTree = ""; }; - C29192B1F683D403AFFD632D65221D49 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotification.h; path = VimeoNetworking/Sources/Models/VIMNotification.h; sourceTree = ""; }; C5E4251390579CA8A4647B705BD6DD41 /* VIMVideoFairPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFairPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.h; sourceTree = ""; }; C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = VimeoNetworking/Sources/Response.swift; sourceTree = ""; }; @@ -488,13 +498,16 @@ D53BEEBF70CF78A7381D5E381FE19629 /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeInfo.swift; path = VimeoNetworking/Sources/Models/PinCodeInfo.swift; sourceTree = ""; }; D7478AE1D1B107593F1494EC8E78E8B8 /* VIMUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUpload.swift; path = VimeoNetworking/Sources/Models/VIMUpload.swift; sourceTree = ""; }; + D7729272B0191CF0AEEC273F9FF8FFC1 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMMappable.h; path = VimeoNetworking/Sources/Models/VIMMappable.h; sourceTree = ""; }; D7A828D7986D21FD6CD1AAFC2C2AD868 /* Pods-VimeoUpload-iOS-OldUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS-OldUpload.modulemap"; sourceTree = ""; }; D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMSizeQuota.swift; path = VimeoNetworking/Sources/Models/VIMSizeQuota.swift; sourceTree = ""; }; D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMInteraction.m; path = VimeoNetworking/Sources/Models/VIMInteraction.m; sourceTree = ""; }; + D90C6CE6DFFF0E79482EB6BEB9917B9D /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Objc_ExceptionCatcher.m; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.m; sourceTree = ""; }; D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+Constructors.swift"; path = "VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift"; sourceTree = ""; }; DB8FD8229ED4AD2B0CBBBDDC20F09BAA /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; + DDBDFFA351A30960D21939E28DC60212 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig"; sourceTree = ""; }; DFBA9CB028E92A4BD313247C31E60A61 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown"; sourceTree = ""; }; E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPolicyDocument.m; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.m; sourceTree = ""; }; @@ -509,6 +522,7 @@ E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h"; sourceTree = ""; }; E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.debug.xcconfig"; sourceTree = ""; }; E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOSTests-umbrella.h"; sourceTree = ""; }; + E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; E8614CB362CB4E3C9E03FCDFF2B3727C /* NSURLSessionConfiguration+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSessionConfiguration+Extensions.swift"; path = "VimeoNetworking/Sources/NSURLSessionConfiguration+Extensions.swift"; sourceTree = ""; }; E8EE2BF5E54CD69A9A8E68E9AA8D06F4 /* VimeoNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VimeoNetworking.h; path = VimeoNetworking/Sources/VimeoNetworking.h; sourceTree = ""; }; EB03BF3312FAD8B30A9EE17D0AA7BD36 /* NetworkingNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkingNotification.swift; path = VimeoNetworking/Sources/NetworkingNotification.swift; sourceTree = ""; }; @@ -538,60 +552,60 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7715E1A66A2F21A0C5F8B913E79FC9F8 /* Foundation.framework in Frameworks */, + BD68AF52C096310FF247AF573E6D3E7A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4E1872D4CC7325E3EF164880191FB61B /* Frameworks */ = { + 57F44911563C03EE01D7E49B4C1F0D0A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F94CAA71DF535013FE840C72ED995ACA /* Foundation.framework in Frameworks */, + AE16FC5B4326038C8624FACCD693CB01 /* CoreGraphics.framework in Frameworks */, + 878417CA55E672D2123F3E7AA4339EA1 /* Foundation.framework in Frameworks */, + 1066E708C7BDD5A2F0CB700190824FBE /* MobileCoreServices.framework in Frameworks */, + 1B4B83A97D510F7DD45259F09EFFAE5A /* Security.framework in Frameworks */, + 926CEBDC701DEEE831E9E1BD7211DCEC /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 57F44911563C03EE01D7E49B4C1F0D0A /* Frameworks */ = { + 720737C2C16B74DBFACA7718D80C1D1B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 789D749690B308852115FF20CD982A69 /* CoreGraphics.framework in Frameworks */, - A8C297643282E0CF5E7DF9CB6E23A0D4 /* Foundation.framework in Frameworks */, - 30F0BAE1DBB79BBB6CBD957EA8B89E4B /* MobileCoreServices.framework in Frameworks */, - 82D554EC9FB9A62D935B6555325F5898 /* Security.framework in Frameworks */, - 42AF1BB1ED090CC9E588A463441D09E3 /* SystemConfiguration.framework in Frameworks */, + 608FBB1E459C630CAC2D93C823A9B12C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 720737C2C16B74DBFACA7718D80C1D1B /* Frameworks */ = { + 7F3C819BDA5C83510A5807BEBB3DFC61 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9336820057A592619B89406F1DF4AEC9 /* Foundation.framework in Frameworks */, + ECE3AC09F6BE7F51C36F9AC7D5FFCF56 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7F3C819BDA5C83510A5807BEBB3DFC61 /* Frameworks */ = { + CAF8D4EE064B6B1E4B79174DA6AA5F6C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3E5288CBF6B2BE080B33EB12E809F2B4 /* Foundation.framework in Frameworks */, + 2945C5B22511F26C276B9C23F35A10DC /* AFNetworking.framework in Frameworks */, + DC9AE7B95B286B56C6445079B403C3D3 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - CAF8D4EE064B6B1E4B79174DA6AA5F6C /* Frameworks */ = { + F42F29F6FC6D8CE0F21767BB561E6749 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2945C5B22511F26C276B9C23F35A10DC /* AFNetworking.framework in Frameworks */, - C50D0C30AF8712AFFA42B7F9C4AC2C7B /* Foundation.framework in Frameworks */, + 13DEA0CE6FC83504D998DEBF3B263336 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D1C2FB3CCE8647049179BAAD96B9928B /* Frameworks */ = { + FD7C1E955F433AD681D32DBB2F5826A3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6CB3E0E344A7E19BA2ADE572A9E91C7F /* Foundation.framework in Frameworks */, + E6DC085EF47756D760080D0E855E965A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -856,18 +870,6 @@ name = NSURLSession; sourceTree = ""; }; - 58ADEC1A744624280C424466F85276D6 /* iOS */ = { - isa = PBXGroup; - children = ( - BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */, - AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */, - 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */, - C29192B1F683D403AFFD632D65221D49 /* Security.framework */, - B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */, - ); - name = iOS; - sourceTree = ""; - }; 5F47914DBA4B4E735FB0B966280E79F6 /* Pods-VimeoUpload-iOSTests */ = { isa = PBXGroup; children = ( @@ -981,6 +983,18 @@ path = "../Target Support Files/VimeoNetworking"; sourceTree = ""; }; + C2D2092A0B5B67D0F34937D00026E6EC /* iOS */ = { + isa = PBXGroup; + children = ( + DDBDFFA351A30960D21939E28DC60212 /* CoreGraphics.framework */, + E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */, + D7729272B0191CF0AEEC273F9FF8FFC1 /* MobileCoreServices.framework */, + D90C6CE6DFFF0E79482EB6BEB9917B9D /* Security.framework */, + 8DAE9E29D14DFD809059EC3455D955F8 /* SystemConfiguration.framework */, + ); + name = iOS; + sourceTree = ""; + }; CEAE45069CFCC48961DD462C4CF3717A /* Reachability */ = { isa = PBXGroup; children = ( @@ -1009,7 +1023,7 @@ isa = PBXGroup; children = ( 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */, - 58ADEC1A744624280C424466F85276D6 /* iOS */, + C2D2092A0B5B67D0F34937D00026E6EC /* iOS */, ); name = Frameworks; sourceTree = ""; @@ -1035,27 +1049,27 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 155D10C569A39D79D0978C5417AAD601 /* Headers */ = { + 09D8A90993BFCD73EDA661FCA2493358 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */, + 8D1538471F2C35364D46EE098BC9F426 /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2372F640A80258E3B32EE4F49E3D78D0 /* Headers */ = { + 25FE0ED3E4046FB05741DBE1B82EAA5F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */, + 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 25FE0ED3E4046FB05741DBE1B82EAA5F /* Headers */ = { + 4AB5C6AE88C290E74BE94A528AF98DAE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */, + 15606351AAE10A740FA83F707A743AC4 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1196,6 +1210,24 @@ productReference = F0E3C679036E864BB4FCA1E4E08863D9 /* VimeoNetworking.framework */; productType = "com.apple.product-type.framework"; }; + 7BC6B6B05349082946AE006E84760048 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5F8268041F345F4C58E5A93AB671738D /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */; + buildPhases = ( + 54BD266D3930C2D9B3A93E01BA9485AA /* Sources */, + F42F29F6FC6D8CE0F21767BB561E6749 /* Frameworks */, + 4AB5C6AE88C290E74BE94A528AF98DAE /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 870019A37CF2B05DB96AD2B9FB7E8112 /* PBXTargetDependency */, + ); + name = "Pods-VimeoUpload-iOS-OldUploadTests"; + productName = "Pods-VimeoUpload-iOS-OldUploadTests"; + productReference = 84027987FF22C70AB94CB6DB9FB0CBD5 /* Pods_VimeoUpload_iOS_OldUploadTests.framework */; + productType = "com.apple.product-type.framework"; + }; 9ABE00A810B6AFE214900E3484571A39 /* Pods-VimeoUpload-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */; @@ -1215,23 +1247,6 @@ productReference = 1C6422F81EA10F0A3062FC248BE9659A /* Pods_VimeoUpload_iOS.framework */; productType = "com.apple.product-type.framework"; }; - A358F2681BE306E8CB440C88A291B738 /* Pods-VimeoUpload-iOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0D4109D91B43D42CD4DEC15877BB90A8 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */; - buildPhases = ( - 48A6D60BFBEA60A2A5034A42587756EB /* Sources */, - 4E1872D4CC7325E3EF164880191FB61B /* Frameworks */, - 2372F640A80258E3B32EE4F49E3D78D0 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-VimeoUpload-iOSTests"; - productName = "Pods-VimeoUpload-iOSTests"; - productReference = 2CF57E9BE891732B80AD558CB436D205 /* Pods_VimeoUpload_iOSTests.framework */; - productType = "com.apple.product-type.framework"; - }; A8183FB71498E9B5AB9E8A5E06B4C4DA /* Pods-VimeoUpload */ = { isa = PBXNativeTarget; buildConfigurationList = 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */; @@ -1268,21 +1283,22 @@ productReference = EDF2918E5CB02CFC1ADE04F783E882E5 /* AFNetworking.framework */; productType = "com.apple.product-type.framework"; }; - D5108D4DE13C49C52958F9F8BD1BE167 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + E506237629A79E0A130B676329F7D233 /* Pods-VimeoUpload-iOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 2545BFAECF1D540C5259B454339817B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */; + buildConfigurationList = D74A5491AE8D35BC889BF72FE84777ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */; buildPhases = ( - 6A9AF494AD585120C0686C00825742C0 /* Sources */, - D1C2FB3CCE8647049179BAAD96B9928B /* Frameworks */, - 155D10C569A39D79D0978C5417AAD601 /* Headers */, + CAEE5E688CF436D65471D644D1739023 /* Sources */, + FD7C1E955F433AD681D32DBB2F5826A3 /* Frameworks */, + 09D8A90993BFCD73EDA661FCA2493358 /* Headers */, ); buildRules = ( ); dependencies = ( + 2C203BDA52334322791C6A61DB7ADDBC /* PBXTargetDependency */, ); - name = "Pods-VimeoUpload-iOS-OldUploadTests"; - productName = "Pods-VimeoUpload-iOS-OldUploadTests"; - productReference = 84027987FF22C70AB94CB6DB9FB0CBD5 /* Pods_VimeoUpload_iOS_OldUploadTests.framework */; + name = "Pods-VimeoUpload-iOSTests"; + productName = "Pods-VimeoUpload-iOSTests"; + productReference = 2CF57E9BE891732B80AD558CB436D205 /* Pods_VimeoUpload_iOSTests.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -1310,8 +1326,8 @@ A8183FB71498E9B5AB9E8A5E06B4C4DA /* Pods-VimeoUpload */, 9ABE00A810B6AFE214900E3484571A39 /* Pods-VimeoUpload-iOS */, 007473F5B3F53CD3EEA4CABB3BD4C070 /* Pods-VimeoUpload-iOS-OldUpload */, - D5108D4DE13C49C52958F9F8BD1BE167 /* Pods-VimeoUpload-iOS-OldUploadTests */, - A358F2681BE306E8CB440C88A291B738 /* Pods-VimeoUpload-iOSTests */, + 7BC6B6B05349082946AE006E84760048 /* Pods-VimeoUpload-iOS-OldUploadTests */, + E506237629A79E0A130B676329F7D233 /* Pods-VimeoUpload-iOSTests */, 119F92C3FCFD322E8CA53B254AE9B6EA /* VimeoNetworking */, ); }; @@ -1441,11 +1457,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 48A6D60BFBEA60A2A5034A42587756EB /* Sources */ = { + 54BD266D3930C2D9B3A93E01BA9485AA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, + B921B743C1F273406F64ABEDB7AF9400 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1472,27 +1488,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6A9AF494AD585120C0686C00825742C0 /* Sources */ = { + 8896B3EA11AC27D3B4CE241AA6BE1F33 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */, + 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8896B3EA11AC27D3B4CE241AA6BE1F33 /* Sources */ = { + 9BFD3C96C2F65BD321A79B59A5552580 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */, + 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9BFD3C96C2F65BD321A79B59A5552580 /* Sources */ = { + CAEE5E688CF436D65471D644D1739023 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */, + 30D3D5470DED1FF2B24DFE656D46F088 /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1519,6 +1535,12 @@ target = 119F92C3FCFD322E8CA53B254AE9B6EA /* VimeoNetworking */; targetProxy = 6B756E77C033DC75BFC0583EB2CA55F9 /* PBXContainerItemProxy */; }; + 2C203BDA52334322791C6A61DB7ADDBC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-VimeoUpload-iOS"; + target = 9ABE00A810B6AFE214900E3484571A39 /* Pods-VimeoUpload-iOS */; + targetProxy = F4716F7EEF30FEC980B19631440BDCEC /* PBXContainerItemProxy */; + }; 3ED8136B1E3DCCB23819DA2C399B53E2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = VimeoNetworking; @@ -1531,6 +1553,12 @@ target = CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */; targetProxy = 660A7C617140ECDFDE55BE458267EB47 /* PBXContainerItemProxy */; }; + 870019A37CF2B05DB96AD2B9FB7E8112 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-VimeoUpload-iOS-OldUpload"; + target = 007473F5B3F53CD3EEA4CABB3BD4C070 /* Pods-VimeoUpload-iOS-OldUpload */; + targetProxy = C1B07E8A6BB52E5A23F0C9ABD7F591F1 /* PBXContainerItemProxy */; + }; C7DBCFC7883074C8AA163F2499A5F5DD /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = VimeoNetworking; @@ -1552,7 +1580,103 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */ = { + 0723B219761616DD95B40679EA370CA6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 1EE19F5DD95931924296F637BF18BD8F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 3BF016649078803BD1067092459084D3 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */; buildSettings = { @@ -1571,9 +1695,11 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_MODULE_NAME = AFNetworking; PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -1582,10 +1708,11 @@ }; name = Release; }; - 4847B57B4A65C23778D7CB43055459C7 /* Debug */ = { + 498F7CBBD1A3DCF3E59DA8A3AFA9B8F8 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1605,7 +1732,7 @@ OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1614,10 +1741,11 @@ }; name = Debug; }; - 7F525E5C9E7655710D00B417733FF93A /* Release */ = { + 4B84AB678E6C15463777AEB23C489E6B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; + baseConfigurationReference = 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1627,31 +1755,32 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 887401EF06F31C5449153BE7B7801D96 /* Debug */ = { + 63A5E597442918360C38B5F50B567060 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; + baseConfigurationReference = B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1661,28 +1790,32 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - PRODUCT_NAME = VimeoNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 96953B0A688C8F1B9D5A885629BAD093 /* Release */ = { + 67386F0566A8CF1A982501F9DA8B3411 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */; + baseConfigurationReference = EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1692,31 +1825,32 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 97E7263EC7910334B64B17C51EC21E8F /* Release */ = { + 8D410930EE24DE65DC781EC22F3349A0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */; + baseConfigurationReference = AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1736,83 +1870,22 @@ OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; - }; - 991D2ACF36318340024E3F7ACF7FB825 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; name = Debug; }; - A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */ = { + 91A9903111659D9D0EFD74E596EAFA25 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; + baseConfigurationReference = 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1822,31 +1895,31 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - AC4A9B891556FD0225D15F5278786405 /* Release */ = { + 99C0C8FA786AADA05408FBE428F31AF2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; + baseConfigurationReference = 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1856,17 +1929,19 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - PRODUCT_NAME = VimeoNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1874,10 +1949,11 @@ }; name = Release; }; - B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */ = { + B99F908BFC2327190809D37087345A9B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; + baseConfigurationReference = 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1887,19 +1963,20 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1907,9 +1984,9 @@ }; name = Release; }; - B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */ = { + BB6AF2E09454440A6B94D5DA5DEC397C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */; + baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1920,28 +1997,26 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_MODULE_NAME = VimeoNetworking; + PRODUCT_NAME = VimeoNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - B74D3C7ABDBC926B683234C5B86E043F /* Debug */ = { + C07345BD0EF916BF089FE1EF8DD6901D /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */; buildSettings = { @@ -1960,9 +2035,11 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_MODULE_NAME = AFNetworking; PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -1970,10 +2047,44 @@ }; name = Debug; }; - CD0AF168E1330906C7302C8513242FE4 /* Debug */ = { + C8375DF10ACCB6F910C290F2C7F0481C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */; + baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_MODULE_NAME = VimeoNetworking; + PRODUCT_NAME = VimeoNetworking; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D8841E4F7B05260238C7A45CBEE96CF7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1993,18 +2104,18 @@ OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - DA03565BE765DB55C6448FB363A44481 /* Release */ = { + F4568DEE257655D290C2B9CEAB37C934 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -2036,6 +2147,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -2056,148 +2168,82 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; }; name = Release; }; - E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOSTests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F042D3877BC9E4C7C19D93921E6650DE /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOSTests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0D4109D91B43D42CD4DEC15877BB90A8 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */ = { + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */, - F042D3877BC9E4C7C19D93921E6650DE /* Release */, + 1EE19F5DD95931924296F637BF18BD8F /* Debug */, + F4568DEE257655D290C2B9CEAB37C934 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2545BFAECF1D540C5259B454339817B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */ = { + 31E01BC98C827BD8A78F94173CDCC418 /* Build configuration list for PBXNativeTarget "AFNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4847B57B4A65C23778D7CB43055459C7 /* Debug */, - B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */, + C07345BD0EF916BF089FE1EF8DD6901D /* Debug */, + 3BF016649078803BD1067092459084D3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 991D2ACF36318340024E3F7ACF7FB825 /* Debug */, - DA03565BE765DB55C6448FB363A44481 /* Release */, + 4B84AB678E6C15463777AEB23C489E6B /* Debug */, + D8841E4F7B05260238C7A45CBEE96CF7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 31E01BC98C827BD8A78F94173CDCC418 /* Build configuration list for PBXNativeTarget "AFNetworking" */ = { + 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - B74D3C7ABDBC926B683234C5B86E043F /* Debug */, - 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */, + 8D410930EE24DE65DC781EC22F3349A0 /* Debug */, + 63A5E597442918360C38B5F50B567060 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */ = { + 5F8268041F345F4C58E5A93AB671738D /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - CD0AF168E1330906C7302C8513242FE4 /* Debug */, - 96953B0A688C8F1B9D5A885629BAD093 /* Release */, + 498F7CBBD1A3DCF3E59DA8A3AFA9B8F8 /* Debug */, + 99C0C8FA786AADA05408FBE428F31AF2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */ = { + AD05C11A3D8E19B37EB76DD0591807ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */, - 97E7263EC7910334B64B17C51EC21E8F /* Release */, + 67386F0566A8CF1A982501F9DA8B3411 /* Debug */, + B99F908BFC2327190809D37087345A9B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AD05C11A3D8E19B37EB76DD0591807ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUpload" */ = { + BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */, - 7F525E5C9E7655710D00B417733FF93A /* Release */, + BB6AF2E09454440A6B94D5DA5DEC397C /* Debug */, + C8375DF10ACCB6F910C290F2C7F0481C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */ = { + D74A5491AE8D35BC889BF72FE84777ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 887401EF06F31C5449153BE7B7801D96 /* Debug */, - AC4A9B891556FD0225D15F5278786405 /* Release */, + 0723B219761616DD95B40679EA370CA6 /* Debug */, + 91A9903111659D9D0EFD74E596EAFA25 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig b/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig index 03d5266e..5a114d83 100644 --- a/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig +++ b/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig @@ -1,9 +1,8 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/AFNetworking +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/AFNetworking PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh index afd10b33..88c7fb73 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,16 +138,17 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh index 0f29f13c..08e3eaac 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,6 +138,7 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh index afd10b33..88c7fb73 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,16 +138,17 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh index 0f29f13c..08e3eaac 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,6 +138,7 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig index 467f54d7..51a06c7f 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig @@ -1,9 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig index 467f54d7..51a06c7f 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig @@ -1,9 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig b/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig index 4d397969..203a738f 100644 --- a/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig +++ b/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig @@ -1,10 +1,9 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/VimeoNetworking PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/VimeoUpload.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/VimeoUpload.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/VimeoUpload.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + From 3f3afd878462f73996d79eb7c20a0d6af1d2d392 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 24 May 2018 15:59:42 -0400 Subject: [PATCH 064/149] Inject archive names to deletion manager and failure tracker --- VimeoUpload/Upload/Controllers/VideoDeletionManager.swift | 2 +- .../Descriptor System/VideoDescriptorFailureTracker.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 3c4f1474..b79289e0 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -52,7 +52,7 @@ public class VideoDeletionManager: NSObject self.removeObservers() } - public init(sessionManager: VimeoSessionManager, retryCount: Int = VideoDeletionManager.DefaultRetryCount) + public init(sessionManager: VimeoSessionManager, retryCount: Int = VideoDeletionManager.DefaultRetryCount, archiveName: String = VideoDeletionManager.DeletionsArchiveKey) { self.sessionManager = sessionManager self.retryCount = retryCount diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index f1b9f5f0..99c40e93 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -42,7 +42,7 @@ import Foundation self.removeObservers() } - public init(name: String) + public init(name: String, archiveName: String = VideoDescriptorFailureTracker.ArchiveKey) { self.archiver = type(of: self).setupArchiver(name: name) From 92c6bbcecef6b125c353936b0d764da3cf0370d1 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 11:06:45 -0400 Subject: [PATCH 065/149] Inject archive name into the reachable descriptor manager --- VimeoUpload/Descriptor System/DescriptorManager.swift | 2 +- .../Descriptor System/ReachableDescriptorManager.swift | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 1bbb8ff1..bf5a21ce 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,7 +70,7 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init(sessionManager: AFURLSessionManager, name: String, delegate: DescriptorManagerDelegate? = nil) + init(sessionManager: AFURLSessionManager, name: String, archiveName: String?, delegate: DescriptorManagerDelegate? = nil) { self.sessionManager = sessionManager self.name = name diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 2dc2e55e..03b0bbd0 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -47,7 +47,7 @@ import VimeoNetworking // MARK: - Initialization - public init(name: String, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init(name: String, archiveName: String? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager @@ -60,7 +60,7 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, name: name, archiveName: nil, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } From db3bbcf5958ae3e229b8842c3ce0ed2c109fdddc Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 11:41:13 -0400 Subject: [PATCH 066/149] Inject archive name to the keyed archiver --- VimeoUpload/Descriptor System/DescriptorManager.swift | 2 +- .../Descriptor System/DescriptorManagerArchiver.swift | 6 +++--- .../Descriptor System/ReachableDescriptorManager.swift | 2 +- VimeoUpload/Upload/Controllers/VideoDeletionManager.swift | 4 ++-- .../Descriptor System/VideoDescriptorFailureTracker.swift | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index bf5a21ce..92ec7c11 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -75,7 +75,7 @@ open class DescriptorManager: NSObject self.sessionManager = sessionManager self.name = name self.delegate = delegate - self.archiver = DescriptorManagerArchiver(name: name) + self.archiver = DescriptorManagerArchiver(name: name, archiveName: archiveName) super.init() diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 11916327..d6a8f884 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -47,9 +47,9 @@ class DescriptorManagerArchiver // MARK: - Initialization - init(name: String) + init(name: String, archiveName: String?) { - self.archiver = type(of: self).setupArchiver(name: name) + self.archiver = type(of: self).setupArchiver(name: name, archiveName: archiveName) self.descriptors = self.loadDescriptors() self.suspended = self.loadSuspendedState() @@ -57,7 +57,7 @@ class DescriptorManagerArchiver // MARK: Setup - Archiving - private static func setupArchiver(name: String) -> KeyedArchiver + private static func setupArchiver(name: String, archiveName: String?) -> KeyedArchiver { let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] var documentsURL = URL(string: documentsPath)! diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 03b0bbd0..767e8f25 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -60,7 +60,7 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, archiveName: nil, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, name: name, archiveName: archiveName, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index b79289e0..cd737115 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -59,7 +59,7 @@ public class VideoDeletionManager: NSObject self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount - self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey) + self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archiveName: archiveName) super.init() @@ -72,7 +72,7 @@ public class VideoDeletionManager: NSObject // MARK: Setup - private static func setupArchiver(name: String) -> KeyedArchiver + private static func setupArchiver(name: String, archiveName: String) -> KeyedArchiver { let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] var documentsURL = URL(string: documentsPath)! diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 99c40e93..ce84c25e 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -44,7 +44,7 @@ import Foundation public init(name: String, archiveName: String = VideoDescriptorFailureTracker.ArchiveKey) { - self.archiver = type(of: self).setupArchiver(name: name) + self.archiver = type(of: self).setupArchiver(name: name, archiveName: archiveName) super.init() @@ -55,7 +55,7 @@ import Foundation // MARK: Setup - private static func setupArchiver(name: String) -> KeyedArchiver + private static func setupArchiver(name: String, archiveName: String) -> KeyedArchiver { let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] From aebfe2f5a552b949b94604e6636a47c0b23dae17 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 12:11:09 -0400 Subject: [PATCH 067/149] Pass in prefix instead --- VimeoUpload/Descriptor System/DescriptorManager.swift | 4 ++-- .../Descriptor System/DescriptorManagerArchiver.swift | 6 +++--- .../Descriptor System/ReachableDescriptorManager.swift | 4 ++-- VimeoUpload/Upload/Controllers/VideoDeletionManager.swift | 6 +++--- .../Descriptor System/VideoDescriptorFailureTracker.swift | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 92ec7c11..d25f5732 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,12 +70,12 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init(sessionManager: AFURLSessionManager, name: String, archiveName: String?, delegate: DescriptorManagerDelegate? = nil) + init(sessionManager: AFURLSessionManager, name: String, archivePrefix: String?, delegate: DescriptorManagerDelegate? = nil) { self.sessionManager = sessionManager self.name = name self.delegate = delegate - self.archiver = DescriptorManagerArchiver(name: name, archiveName: archiveName) + self.archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix) super.init() diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index d6a8f884..9eca7915 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -47,9 +47,9 @@ class DescriptorManagerArchiver // MARK: - Initialization - init(name: String, archiveName: String?) + init(name: String, archivePrefix: String?) { - self.archiver = type(of: self).setupArchiver(name: name, archiveName: archiveName) + self.archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix) self.descriptors = self.loadDescriptors() self.suspended = self.loadSuspendedState() @@ -57,7 +57,7 @@ class DescriptorManagerArchiver // MARK: Setup - Archiving - private static func setupArchiver(name: String, archiveName: String?) -> KeyedArchiver + private static func setupArchiver(name: String, archivePrefix: String?) -> KeyedArchiver { let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] var documentsURL = URL(string: documentsPath)! diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 767e8f25..8b6449e0 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -47,7 +47,7 @@ import VimeoNetworking // MARK: - Initialization - public init(name: String, archiveName: String? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init(name: String, archivePrefix: String? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager @@ -60,7 +60,7 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, archiveName: archiveName, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, name: name, archivePrefix: archivePrefix, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index cd737115..dcdf6778 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -52,14 +52,14 @@ public class VideoDeletionManager: NSObject self.removeObservers() } - public init(sessionManager: VimeoSessionManager, retryCount: Int = VideoDeletionManager.DefaultRetryCount, archiveName: String = VideoDeletionManager.DeletionsArchiveKey) + public init(sessionManager: VimeoSessionManager, retryCount: Int = VideoDeletionManager.DefaultRetryCount, archivePrefix: String? = nil) { self.sessionManager = sessionManager self.retryCount = retryCount self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount - self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archiveName: archiveName) + self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix) super.init() @@ -72,7 +72,7 @@ public class VideoDeletionManager: NSObject // MARK: Setup - private static func setupArchiver(name: String, archiveName: String) -> KeyedArchiver + private static func setupArchiver(name: String, archivePrefix: String?) -> KeyedArchiver { let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] var documentsURL = URL(string: documentsPath)! diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index ce84c25e..6320b83d 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -42,9 +42,9 @@ import Foundation self.removeObservers() } - public init(name: String, archiveName: String = VideoDescriptorFailureTracker.ArchiveKey) + public init(name: String, archivePrefix: String? = nil) { - self.archiver = type(of: self).setupArchiver(name: name, archiveName: archiveName) + self.archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix) super.init() @@ -55,7 +55,7 @@ import Foundation // MARK: Setup - private static func setupArchiver(name: String, archiveName: String) -> KeyedArchiver + private static func setupArchiver(name: String, archivePrefix: String?) -> KeyedArchiver { let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] From b2d3f387c22adc8f43c8eae1e862723bae465134 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 12:19:54 -0400 Subject: [PATCH 068/149] Inject prefix into keyed archiver --- .../DescriptorManagerArchiver.swift | 2 +- VimeoUpload/Descriptor System/KeyedArchiver.swift | 12 +++++++++++- .../Upload/Controllers/VideoDeletionManager.swift | 2 +- .../VideoDescriptorFailureTracker.swift | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 9eca7915..8740c310 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -69,7 +69,7 @@ class DescriptorManagerArchiver try! FileManager.default.createDirectory(atPath: documentsURL.path, withIntermediateDirectories: true, attributes: nil) } - return KeyedArchiver(basePath: documentsURL.path) + return KeyedArchiver(basePath: documentsURL.path, archivePrefix: archivePrefix) } private func loadDescriptors() -> Set diff --git a/VimeoUpload/Descriptor System/KeyedArchiver.swift b/VimeoUpload/Descriptor System/KeyedArchiver.swift index 7b0a256b..50c7b05a 100644 --- a/VimeoUpload/Descriptor System/KeyedArchiver.swift +++ b/VimeoUpload/Descriptor System/KeyedArchiver.swift @@ -31,12 +31,22 @@ public class KeyedArchiver: ArchiverProtocol private static let ArchiveExtension = "archive" private let basePath: String + private let prefix: String - public init(basePath: String) + public init(basePath: String, archivePrefix: String?) { assert(FileManager.default.fileExists(atPath: basePath, isDirectory: nil), "Invalid basePath") self.basePath = basePath + + if let prefix = archivePrefix + { + self.prefix = prefix + } + else + { + self.prefix = "" + } } public func loadObject(for key: String) -> Any? diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index dcdf6778..0febeead 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -85,7 +85,7 @@ public class VideoDeletionManager: NSObject try! FileManager.default.createDirectory(atPath: documentsURL.path, withIntermediateDirectories: true, attributes: nil) } - return KeyedArchiver(basePath: documentsURL.path) + return KeyedArchiver(basePath: documentsURL.path, archivePrefix: archivePrefix) } // MARK: Archiving diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 6320b83d..b3ddf75a 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -67,7 +67,7 @@ import Foundation try! FileManager.default.createDirectory(atPath: documentsURL.path, withIntermediateDirectories: true, attributes: nil) } - return KeyedArchiver(basePath: documentsURL.path) + return KeyedArchiver(basePath: documentsURL.path, archivePrefix: archivePrefix) } private func load() -> [String: Descriptor] From 11c9c248213acbd643ca13614c346dd9bf865dc7 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 12:25:02 -0400 Subject: [PATCH 069/149] Default prefix to nil --- VimeoUpload/Descriptor System/KeyedArchiver.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VimeoUpload/Descriptor System/KeyedArchiver.swift b/VimeoUpload/Descriptor System/KeyedArchiver.swift index 50c7b05a..ff05d84c 100644 --- a/VimeoUpload/Descriptor System/KeyedArchiver.swift +++ b/VimeoUpload/Descriptor System/KeyedArchiver.swift @@ -33,7 +33,7 @@ public class KeyedArchiver: ArchiverProtocol private let basePath: String private let prefix: String - public init(basePath: String, archivePrefix: String?) + public init(basePath: String, archivePrefix: String? = nil) { assert(FileManager.default.fileExists(atPath: basePath, isDirectory: nil), "Invalid basePath") From 47fb5d441efd903ab0c9f424360e5b0dd63e3825 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 12:32:19 -0400 Subject: [PATCH 070/149] Concatnate prefix with key --- VimeoUpload/Descriptor System/KeyedArchiver.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Descriptor System/KeyedArchiver.swift b/VimeoUpload/Descriptor System/KeyedArchiver.swift index ff05d84c..68283950 100644 --- a/VimeoUpload/Descriptor System/KeyedArchiver.swift +++ b/VimeoUpload/Descriptor System/KeyedArchiver.swift @@ -51,14 +51,14 @@ public class KeyedArchiver: ArchiverProtocol public func loadObject(for key: String) -> Any? { - let path = self.archivePath(key: key) + let path = self.archivePath(key: self.prefix + key) return NSKeyedUnarchiver.unarchiveObject(withFile: path) } public func save(object: Any, key: String) { - let path = self.archivePath(key: key) + let path = self.archivePath(key: self.prefix + key) NSKeyedArchiver.archiveRootObject(object, toFile: path) } From c7bb5498bdef44b30f9e104f70d8a996ee643e10 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 12:47:46 -0400 Subject: [PATCH 071/149] Add underscore between prefix and key --- VimeoUpload/Descriptor System/KeyedArchiver.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Descriptor System/KeyedArchiver.swift b/VimeoUpload/Descriptor System/KeyedArchiver.swift index 68283950..c81957cc 100644 --- a/VimeoUpload/Descriptor System/KeyedArchiver.swift +++ b/VimeoUpload/Descriptor System/KeyedArchiver.swift @@ -51,14 +51,14 @@ public class KeyedArchiver: ArchiverProtocol public func loadObject(for key: String) -> Any? { - let path = self.archivePath(key: self.prefix + key) + let path = self.archivePath(key: self.prefix + "_" + key) return NSKeyedUnarchiver.unarchiveObject(withFile: path) } public func save(object: Any, key: String) { - let path = self.archivePath(key: self.prefix + key) + let path = self.archivePath(key: self.prefix + "_" + key) NSKeyedArchiver.archiveRootObject(object, toFile: path) } From d6c5280618f61aac14a458a07e3d4b62527a277d Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 25 May 2018 13:02:56 -0400 Subject: [PATCH 072/149] Prevent failure tracker and deletion archives from being loaded --- .../Upload/Controllers/VideoDeletionManager.swift | 9 ++++++++- .../VideoDescriptorFailureTracker.swift | 10 +++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 0febeead..37d138ab 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -43,6 +43,7 @@ public class VideoDeletionManager: NSObject private var deletions: [VideoUri: Int] = [:] private let operationQueue: OperationQueue private let archiver: KeyedArchiver + private let shouldLoadArchive: Bool // MARK: - Initialization @@ -52,10 +53,11 @@ public class VideoDeletionManager: NSObject self.removeObservers() } - public init(sessionManager: VimeoSessionManager, retryCount: Int = VideoDeletionManager.DefaultRetryCount, archivePrefix: String? = nil) + public init(sessionManager: VimeoSessionManager, retryCount: Int = VideoDeletionManager.DefaultRetryCount, archivePrefix: String? = nil, shouldLoadArchive: Bool = true) { self.sessionManager = sessionManager self.retryCount = retryCount + self.shouldLoadArchive = shouldLoadArchive self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount @@ -92,6 +94,11 @@ public class VideoDeletionManager: NSObject private func loadDeletions() -> [VideoUri: Int] { + guard self.shouldLoadArchive == true else + { + return [:] + } + if let deletions = self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] { return deletions diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index b3ddf75a..86441d4b 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -34,6 +34,7 @@ import Foundation private let archiver: KeyedArchiver private var failedDescriptors: [String: Descriptor] = [:] + private let shouldLoadArchive: Bool // MARK: - Initialization @@ -42,9 +43,11 @@ import Foundation self.removeObservers() } - public init(name: String, archivePrefix: String? = nil) + public init(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true) { self.archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix) + + self.shouldLoadArchive = shouldLoadArchive super.init() @@ -72,6 +75,11 @@ import Foundation private func load() -> [String: Descriptor] { + guard self.shouldLoadArchive == true else + { + return [:] + } + return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] } From 57e91c773060b22927a4897d8458c4c5c1ff7fa2 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 30 May 2018 14:01:55 -0400 Subject: [PATCH 073/149] Add Boolean for descriptor manager to check if archive should be loaded --- .../Descriptor System/DescriptorManager.swift | 4 ++-- .../DescriptorManagerArchiver.swift | 16 +++++++++++++++- .../ReachableDescriptorManager.swift | 4 ++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index d25f5732..83a7196f 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,12 +70,12 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init(sessionManager: AFURLSessionManager, name: String, archivePrefix: String?, delegate: DescriptorManagerDelegate? = nil) + init(sessionManager: AFURLSessionManager, name: String, archivePrefix: String?, shouldLoadArchive: Bool, delegate: DescriptorManagerDelegate? = nil) { self.sessionManager = sessionManager self.name = name self.delegate = delegate - self.archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix) + self.archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive) super.init() diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 8740c310..d728b974 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -44,11 +44,15 @@ class DescriptorManagerArchiver self.saveSuspendedState() } } + + private let shouldLoadArchive: Bool // MARK: - Initialization - init(name: String, archivePrefix: String?) + init(name: String, archivePrefix: String?, shouldLoadArchive: Bool = true) { + self.shouldLoadArchive = shouldLoadArchive + self.archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix) self.descriptors = self.loadDescriptors() @@ -74,6 +78,11 @@ class DescriptorManagerArchiver private func loadDescriptors() -> Set { + guard self.shouldLoadArchive == true else + { + return Set() + } + return self.archiver.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() } @@ -84,6 +93,11 @@ class DescriptorManagerArchiver private func loadSuspendedState() -> Bool { + guard self.shouldLoadArchive == true else + { + return false + } + return self.archiver.loadObject(for: type(of: self).SuspendedArchiveKey) as? Bool ?? false } diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 8b6449e0..b69747b2 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -47,7 +47,7 @@ import VimeoNetworking // MARK: - Initialization - public init(name: String, archivePrefix: String? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager @@ -60,7 +60,7 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, archivePrefix: archivePrefix, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } From 10c9a21e6b2f8868414318344d23c5d4cfde1ffa Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 30 May 2018 14:30:48 -0400 Subject: [PATCH 074/149] Remove the underscore for empty prefix --- .../Descriptor System/KeyedArchiver.swift | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Descriptor System/KeyedArchiver.swift b/VimeoUpload/Descriptor System/KeyedArchiver.swift index c81957cc..0668cf13 100644 --- a/VimeoUpload/Descriptor System/KeyedArchiver.swift +++ b/VimeoUpload/Descriptor System/KeyedArchiver.swift @@ -51,14 +51,14 @@ public class KeyedArchiver: ArchiverProtocol public func loadObject(for key: String) -> Any? { - let path = self.archivePath(key: self.prefix + "_" + key) + let path = self.archivePath(key: self.key(withPrefix: self.prefix, key: key)) return NSKeyedUnarchiver.unarchiveObject(withFile: path) } public func save(object: Any, key: String) { - let path = self.archivePath(key: self.prefix + "_" + key) + let path = self.archivePath(key: self.key(withPrefix: self.prefix, key: key)) NSKeyedArchiver.archiveRootObject(object, toFile: path) } @@ -74,4 +74,16 @@ public class KeyedArchiver: ArchiverProtocol return url.absoluteString as String } + + private func key(withPrefix prefix: String, key: String) -> String + { + if prefix == "" + { + return key + } + else + { + return prefix + "_" + key + } + } } From a389d2b929c5b36044904d9998389881672de627 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 30 May 2018 15:24:30 -0400 Subject: [PATCH 075/149] Refactor literal string into constants --- .../Descriptor System/KeyedArchiver.swift | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/VimeoUpload/Descriptor System/KeyedArchiver.swift b/VimeoUpload/Descriptor System/KeyedArchiver.swift index 0668cf13..0d5ffda4 100644 --- a/VimeoUpload/Descriptor System/KeyedArchiver.swift +++ b/VimeoUpload/Descriptor System/KeyedArchiver.swift @@ -28,25 +28,21 @@ import Foundation public class KeyedArchiver: ArchiverProtocol { - private static let ArchiveExtension = "archive" + private struct Constants + { + static let ArchiveExtension = "archive" + static let UnderscoreText = "_" + } private let basePath: String - private let prefix: String + private let prefix: String? public init(basePath: String, archivePrefix: String? = nil) { assert(FileManager.default.fileExists(atPath: basePath, isDirectory: nil), "Invalid basePath") self.basePath = basePath - - if let prefix = archivePrefix - { - self.prefix = prefix - } - else - { - self.prefix = "" - } + self.prefix = archivePrefix } public func loadObject(for key: String) -> Any? @@ -70,20 +66,18 @@ public class KeyedArchiver: ArchiverProtocol var url = URL(string: self.basePath)! url = url.appendingPathComponent(key) - url = url.appendingPathExtension(type(of: self).ArchiveExtension) + url = url.appendingPathExtension(Constants.ArchiveExtension) return url.absoluteString as String } - private func key(withPrefix prefix: String, key: String) -> String + private func key(withPrefix prefix: String?, key: String) -> String { - if prefix == "" + guard let prefix = prefix else { return key } - else - { - return prefix + "_" + key - } + + return prefix + Constants.UnderscoreText + key } } From f799692a42c780dc26dde4256268bf037abc6c7a Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 21 May 2018 16:54:18 -0400 Subject: [PATCH 076/149] Inject parent folder's URL into failure tracker class --- .../VideoDescriptorFailureTracker.swift | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index f1b9f5f0..93692f39 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -32,7 +32,7 @@ import Foundation // MARK: - private let archiver: KeyedArchiver + private let archiver: KeyedArchiver? private var failedDescriptors: [String: Descriptor] = [:] // MARK: - Initialization @@ -42,9 +42,9 @@ import Foundation self.removeObservers() } - public init(name: String) + public init(name: String, parentFolderURL: URL) { - self.archiver = type(of: self).setupArchiver(name: name) + self.archiver = type(of: self).setupArchiver(name: name, parentFolderURL: parentFolderURL) super.init() @@ -55,29 +55,33 @@ import Foundation // MARK: Setup - private static func setupArchiver(name: String) -> KeyedArchiver + private static func setupArchiver(name: String, parentFolderURL: URL) -> KeyedArchiver? { - let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] + let typeFolderURL = parentFolderURL.appendingPathComponent(name) - var documentsURL = URL(string: documentsPath)! - documentsURL = documentsURL.appendingPathComponent(name) - - if FileManager.default.fileExists(atPath: documentsURL.path) == false + if FileManager.default.fileExists(atPath: typeFolderURL.path) == false { - try! FileManager.default.createDirectory(atPath: documentsURL.path, withIntermediateDirectories: true, attributes: nil) + do + { + try FileManager.default.createDirectory(at: typeFolderURL, withIntermediateDirectories: true, attributes: nil) + } + catch + { + return nil + } } - return KeyedArchiver(basePath: documentsURL.path) + return KeyedArchiver(basePath: typeFolderURL.path) } private func load() -> [String: Descriptor] { - return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] + return self.archiver?.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] } private func save() { - self.archiver.save(object: self.failedDescriptors, key: type(of: self).ArchiveKey) + self.archiver?.save(object: self.failedDescriptors, key: type(of: self).ArchiveKey) } // MARK: Public API From 96feaa116248385f566174f2e0893bb111974ebd Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 21 May 2018 17:12:25 -0400 Subject: [PATCH 077/149] Add documentation --- .../VideoDescriptorFailureTracker.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 93692f39..e760d831 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -42,6 +42,21 @@ import Foundation self.removeObservers() } + /// Initializes a descriptor failure tracker object. Upon creation, the + /// object will attempt to create a folder to save the description of + /// failed uploads if needed. If the folder already exists, it will + /// attempt to load that information into memory. + /// + /// The folder is created with the following scheme: + /// + /// ``` + /// parentFolder/name + /// ``` + /// + /// - Parameters: + /// - name: The name of the uploader. + /// - parentFolderURL: The parent folder's URL of the folder in which + /// failed uploads' description will be stored. public init(name: String, parentFolderURL: URL) { self.archiver = type(of: self).setupArchiver(name: name, parentFolderURL: parentFolderURL) From 01370066892b4a5fcb85ab1f040af15951639d7d Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 21 May 2018 18:02:17 -0400 Subject: [PATCH 078/149] Inject parent folder's URL to video deletion manager --- .../Controllers/VideoDeletionManager.swift | 51 +++++++++++++------ VimeoUpload/VimeoUploader.swift | 13 +++-- 2 files changed, 46 insertions(+), 18 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 3c4f1474..d09fdf29 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -42,7 +42,7 @@ public class VideoDeletionManager: NSObject private var deletions: [VideoUri: Int] = [:] private let operationQueue: OperationQueue - private let archiver: KeyedArchiver + private let archiver: KeyedArchiver? // MARK: - Initialization @@ -51,15 +51,32 @@ public class VideoDeletionManager: NSObject self.operationQueue.cancelAllOperations() self.removeObservers() } - - public init(sessionManager: VimeoSessionManager, retryCount: Int = VideoDeletionManager.DefaultRetryCount) + + /// Initializes a video deletion manager object. Upon creation, the + /// object will attempt to create a folder to save deletion information + /// if needed. If the folder already exists, it will attempt to load + /// that information into memory, then perform deletion. + /// + /// The folder is created with the following scheme: + /// + /// ``` + /// parentFolder/deletions + /// ``` + /// + /// - Parameters: + /// - sessionManager: A session manager object capable of deleting + /// uploads. + /// - parentFolderURL: The parent folder's URL of the folder in which + /// deletion description will be stored. + /// - retryCount: The number of retries. The default value is `3`. + public init(sessionManager: VimeoSessionManager, parentFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount) { self.sessionManager = sessionManager self.retryCount = retryCount self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount - self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey) + self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, parentFolderURL: parentFolderURL) super.init() @@ -72,27 +89,31 @@ public class VideoDeletionManager: NSObject // MARK: Setup - private static func setupArchiver(name: String) -> KeyedArchiver + private static func setupArchiver(name: String, parentFolderURL: URL) -> KeyedArchiver? { - let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] - var documentsURL = URL(string: documentsPath)! - - documentsURL = documentsURL.appendingPathComponent(name) - documentsURL = documentsURL.appendingPathComponent(VideoDeletionManager.DeletionsArchiveKey) + let deletionsFolder = parentFolderURL.appendingPathComponent(name) + let deletionsArchiveDirectory = deletionsFolder.appendingPathComponent(VideoDeletionManager.DeletionsArchiveKey) - if FileManager.default.fileExists(atPath: documentsURL.path) == false + if FileManager.default.fileExists(atPath: deletionsArchiveDirectory.path) == false { - try! FileManager.default.createDirectory(atPath: documentsURL.path, withIntermediateDirectories: true, attributes: nil) + do + { + try FileManager.default.createDirectory(at: deletionsArchiveDirectory, withIntermediateDirectories: true, attributes: nil) + } + catch + { + return nil + } } - return KeyedArchiver(basePath: documentsURL.path) + return KeyedArchiver(basePath: deletionsArchiveDirectory.path) } // MARK: Archiving private func loadDeletions() -> [VideoUri: Int] { - if let deletions = self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] + if let deletions = self.archiver?.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] { return deletions } @@ -110,7 +131,7 @@ public class VideoDeletionManager: NSObject private func save() { - self.archiver.save(object: self.deletions, key: type(of: self).DeletionsArchiveKey) + self.archiver?.save(object: self.deletions, key: type(of: self).DeletionsArchiveKey) } // MARK: Public API diff --git a/VimeoUpload/VimeoUploader.swift b/VimeoUpload/VimeoUploader.swift index 78778b5b..659d99bc 100644 --- a/VimeoUpload/VimeoUploader.swift +++ b/VimeoUpload/VimeoUploader.swift @@ -56,10 +56,17 @@ open class VimeoUploader { self.foregroundSessionManager = VimeoSessionManager.defaultSessionManager(baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) - self.deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager) + do + { + let documentsFolderURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) + self.deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager, parentFolderURL: documentsFolderURL) - self.descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, - accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) + self.descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) + } + catch + { + fatalError("Failure: Documents folder not found") + } } // MARK: Public API - Starting From b213cf8c12981e666c14aaa2c08d7e1ba2dcdbc1 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 21 May 2018 18:19:00 -0400 Subject: [PATCH 079/149] Inject parent folder's URL into descriptor manager --- .../Descriptor System/DescriptorManager.swift | 4 +-- .../DescriptorManagerArchiver.swift | 34 +++++++++++-------- .../ReachableDescriptorManager.swift | 4 +-- VimeoUpload/VimeoUploader.swift | 2 +- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 1bbb8ff1..9e12bf3c 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,12 +70,12 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init(sessionManager: AFURLSessionManager, name: String, delegate: DescriptorManagerDelegate? = nil) + init(sessionManager: AFURLSessionManager, name: String, parentFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) { self.sessionManager = sessionManager self.name = name self.delegate = delegate - self.archiver = DescriptorManagerArchiver(name: name) + self.archiver = DescriptorManagerArchiver(name: name, parentFolderURL: parentFolderURL) super.init() diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 11916327..6aff06d5 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -35,7 +35,7 @@ class DescriptorManagerArchiver // MARK: - private let archiver: KeyedArchiver + private let archiver: KeyedArchiver? private(set) var descriptors = Set() var suspended = false { @@ -47,9 +47,9 @@ class DescriptorManagerArchiver // MARK: - Initialization - init(name: String) + init(name: String, parentFolderURL: URL) { - self.archiver = type(of: self).setupArchiver(name: name) + self.archiver = type(of: self).setupArchiver(name: name, parentFolderURL: parentFolderURL) self.descriptors = self.loadDescriptors() self.suspended = self.loadSuspendedState() @@ -57,39 +57,43 @@ class DescriptorManagerArchiver // MARK: Setup - Archiving - private static func setupArchiver(name: String) -> KeyedArchiver + private static func setupArchiver(name: String, parentFolderURL: URL) -> KeyedArchiver? { - let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] - var documentsURL = URL(string: documentsPath)! - - documentsURL = documentsURL.appendingPathComponent(name) + let typeFolderURL = parentFolderURL.appendingPathComponent(name) - if FileManager.default.fileExists(atPath: documentsURL.path) == false + if FileManager.default.fileExists(atPath: typeFolderURL.path) == false { - try! FileManager.default.createDirectory(atPath: documentsURL.path, withIntermediateDirectories: true, attributes: nil) + do + { + try FileManager.default.createDirectory(at: typeFolderURL, withIntermediateDirectories: true, attributes: nil) + } + catch + { + return nil + } } - return KeyedArchiver(basePath: documentsURL.path) + return KeyedArchiver(basePath: typeFolderURL.path) } private func loadDescriptors() -> Set { - return self.archiver.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() + return self.archiver?.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() } private func saveDescriptors() { - self.archiver.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) + self.archiver?.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) } private func loadSuspendedState() -> Bool { - return self.archiver.loadObject(for: type(of: self).SuspendedArchiveKey) as? Bool ?? false + return self.archiver?.loadObject(for: type(of: self).SuspendedArchiveKey) as? Bool ?? false } private func saveSuspendedState() { - self.archiver.save(object: self.suspended, key: type(of: self).SuspendedArchiveKey) + self.archiver?.save(object: self.suspended, key: type(of: self).SuspendedArchiveKey) } // MARK: Public API diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 2dc2e55e..eb173053 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -47,7 +47,7 @@ import VimeoNetworking // MARK: - Initialization - public init(name: String, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init(name: String, parentFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager @@ -60,7 +60,7 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, name: name, parentFolderURL: parentFolderURL, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } diff --git a/VimeoUpload/VimeoUploader.swift b/VimeoUpload/VimeoUploader.swift index 659d99bc..af34f80f 100644 --- a/VimeoUpload/VimeoUploader.swift +++ b/VimeoUpload/VimeoUploader.swift @@ -61,7 +61,7 @@ open class VimeoUploader let documentsFolderURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) self.deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager, parentFolderURL: documentsFolderURL) - self.descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) + self.descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, parentFolderURL: documentsFolderURL, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } catch { From 9a97a8e17e1c02ed31fd545236b7e1faa52e5e50 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 22 May 2018 10:08:00 -0400 Subject: [PATCH 080/149] Add documentation --- .../ReachableDescriptorManager.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index eb173053..82ec0d19 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -47,6 +47,23 @@ import VimeoNetworking // MARK: - Initialization + /// Initializes a reachable descriptor manager object. + /// + /// - Parameters: + /// - name: The name of the descriptor manager. + /// - parentFolderURL: The parent folder's URL of the folder in which + /// the upload description will be stored. That folder has the same + /// name as the first argument. + /// - backgroundSessionIdentifier: An ID of the background upload + /// session. + /// - sharedContainerIdentifier: An ID of a shared sandbox. By default + /// this value is `nil`, but if `VimeoUpload` is used in an app + /// extension, this value must be set. + /// - descriptorManagerDelegate: A delegate object of this descriptor + /// manager. + /// - accessTokenProvider: A closure that provides an authenticated + /// token. Any upload needs this token in order to work properly. + /// - apiVersion: The API version to use. public init(name: String, parentFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager From ccdd51d1f4bb467d945b449472efdf337a3c4ec9 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 23 May 2018 11:11:34 -0400 Subject: [PATCH 081/149] Make `UploadDescriptor` class subclass-able --- .../New Upload (Private)/UploadDescriptor.swift | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift index a6fd2056..9ef3a9a4 100644 --- a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift +++ b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift @@ -28,7 +28,7 @@ import Foundation import VimeoNetworking import AFNetworking -public class UploadDescriptor: ProgressDescriptor, VideoDescriptor +open class UploadDescriptor: ProgressDescriptor, VideoDescriptor { private static let FileNameCoderKey = "fileName" private static let FileExtensionCoderKey = "fileExtension" @@ -74,7 +74,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor // MARK: Overrides - override public func prepare(sessionManager: AFURLSessionManager) throws + override open func prepare(sessionManager: AFURLSessionManager) throws { // TODO: Do we need to set self.state == .Ready here? [AH] 2/22/2016 @@ -102,7 +102,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor } } - override public func resume(sessionManager: AFURLSessionManager) + override open func resume(sessionManager: AFURLSessionManager) { super.resume(sessionManager: sessionManager) @@ -114,14 +114,14 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor } } - override public func cancel(sessionManager: AFURLSessionManager) + override open func cancel(sessionManager: AFURLSessionManager) { super.cancel(sessionManager: sessionManager) FileManager.default.deleteFile(at: self.url) } - override public func didLoadFromCache(sessionManager: AFURLSessionManager) throws + override open func didLoadFromCache(sessionManager: AFURLSessionManager) throws { guard let identifier = self.currentTaskIdentifier, let task = sessionManager.uploadTask(for: identifier), @@ -142,7 +142,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor self.progress = progress } - override public func taskDidComplete(sessionManager: AFURLSessionManager, task: URLSessionTask, error: NSError?) + override open func taskDidComplete(sessionManager: AFURLSessionManager, task: URLSessionTask, error: NSError?) { self.currentTaskIdentifier = nil @@ -196,7 +196,7 @@ public class UploadDescriptor: ProgressDescriptor, VideoDescriptor super.init(coder: aDecoder) } - override public func encode(with aCoder: NSCoder) + override open func encode(with aCoder: NSCoder) { let fileName = self.url.deletingPathExtension().lastPathComponent let ext = self.url.pathExtension From 6f93a9db8a5d5f2f2fb270c8a4ebdc8f10289783 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 23 May 2018 17:18:28 -0400 Subject: [PATCH 082/149] Inject Documents folder's URL into the operations --- .../Upload/Extensions/NSURL+Upload.swift | 17 +++++++++++++---- .../Operations/Async/ExportOperation.swift | 8 ++++---- ...xportSessionExportCreateVideoOperation.swift | 7 +++++-- .../Async/ExportSessionExportOperation.swift | 8 ++++++-- .../Operations/Async/RetryUploadOperation.swift | 8 ++++++-- 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/VimeoUpload/Upload/Extensions/NSURL+Upload.swift b/VimeoUpload/Upload/Extensions/NSURL+Upload.swift index 877fad03..208d4bc3 100644 --- a/VimeoUpload/Upload/Extensions/NSURL+Upload.swift +++ b/VimeoUpload/Upload/Extensions/NSURL+Upload.swift @@ -34,9 +34,9 @@ import Foundation public extension URL { - static func uploadURL(withFileName filename: String, fileType: String) throws -> URL + static func uploadURL(documentsFolderURL: URL? = nil, withFileName filename: String, fileType: String) throws -> URL { - let url = URL.uploadDirectory() + let url = URL.uploadDirectory(documentsFolderURL: documentsFolderURL) if FileManager.default.fileExists(atPath: url.absoluteString) == false { @@ -50,9 +50,18 @@ public extension URL return URL(fileURLWithPath: path) } - static func uploadDirectory() -> URL + static func uploadDirectory(documentsFolderURL: URL? = nil) -> URL { - let documentsURL = URL(string: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])! + let documentsURL: URL + + if let documentsFolderURL = documentsFolderURL + { + documentsURL = documentsFolderURL + } + else + { + documentsURL = URL(string: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])! + } return documentsURL.appendingPathComponent("uploader").appendingPathComponent("videos") } diff --git a/VimeoUpload/Upload/Operations/Async/ExportOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportOperation.swift index ecf771ca..b2623dba 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportOperation.swift @@ -50,14 +50,14 @@ public class ExportOperation: ConcurrentOperation // MARK: - Initialization - convenience init(asset: AVAsset) + convenience init(asset: AVAsset, documentsFolderURL: URL) { let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough)! - self.init(exportSession: exportSession) + self.init(exportSession: exportSession, documentsFolderURL: documentsFolderURL) } - init(exportSession: AVAssetExportSession) + init(exportSession: AVAssetExportSession, documentsFolderURL: URL) { // exportSession.timeRange must be valid so that the exportSession's estimatedOutputFileLength is non zero // We use estimatedOutputFileLength below to check that there is ample disk space to perform the export [AH] 10/15/2015 @@ -76,7 +76,7 @@ public class ExportOperation: ConcurrentOperation do { let filename = ProcessInfo.processInfo.globallyUniqueString - exportSession.outputURL = try URL.uploadURL(withFileName: filename, fileType: type(of: self).FileType) + exportSession.outputURL = try URL.uploadURL(documentsFolderURL: documentsFolderURL, withFileName: filename, fileType: type(of: self).FileType) } catch let error as NSError { diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift index e3afde9f..ce77af77 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift @@ -43,6 +43,7 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation // MARK: private let phAsset: PHAsset + private let documentsFolderURL: URL open var url: URL? open var video: VIMVideo? @@ -59,7 +60,7 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation // MARK: - Initialization - public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil) + public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil, documentsFolderURL: URL) { self.phAsset = phAsset @@ -69,6 +70,8 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 + self.documentsFolderURL = documentsFolderURL + super.init() } @@ -86,7 +89,7 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation return } - let operation = ExportSessionExportOperation(phAsset: self.phAsset) + let operation = ExportSessionExportOperation(phAsset: self.phAsset, documentsFolderURL: self.documentsFolderURL) self.perform(exportSessionExportOperation: operation) } diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift index ec6ab5b0..5f680fa6 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift @@ -52,13 +52,17 @@ open class ExportSessionExportOperation: ConcurrentOperation } open var result: URL? - public init(phAsset: PHAsset) + private let documentsFolderURL: URL + + public init(phAsset: PHAsset, documentsFolderURL: URL) { self.phAsset = phAsset self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 + self.documentsFolderURL = documentsFolderURL + super.init() } @@ -118,7 +122,7 @@ open class ExportSessionExportOperation: ConcurrentOperation else { let exportSession = operation.result! - let exportOperation = ExportOperation(exportSession: exportSession) + let exportOperation = ExportOperation(exportSession: exportSession, documentsFolderURL: strongSelf.documentsFolderURL) strongSelf.performExport(exportOperation: exportOperation) } }) diff --git a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift index 2b73587c..7e4227f7 100644 --- a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift @@ -55,9 +55,11 @@ public class RetryUploadOperation: ConcurrentOperation } } + private let documentsFolderURL: URL + // MARK: - Initialization - public init(phAsset: PHAsset, sessionManager: VimeoSessionManager) + public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, documentsFolderURL: URL) { self.phAsset = phAsset @@ -65,6 +67,8 @@ public class RetryUploadOperation: ConcurrentOperation self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = 1 + self.documentsFolderURL = documentsFolderURL + super.init() } @@ -82,7 +86,7 @@ public class RetryUploadOperation: ConcurrentOperation return } - let operation = ExportSessionExportOperation(phAsset: self.phAsset) + let operation = ExportSessionExportOperation(phAsset: self.phAsset, documentsFolderURL: self.documentsFolderURL) self.perform(exportSessionExportOperation: operation) } From 3586ad58ea201f928ed548dac859ff91a52130d0 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 23 May 2018 17:45:30 -0400 Subject: [PATCH 083/149] Make Documents folder's URL optional --- VimeoUpload/Upload/Operations/Async/ExportOperation.swift | 4 ++-- .../Async/ExportSessionExportCreateVideoOperation.swift | 4 ++-- .../Operations/Async/ExportSessionExportOperation.swift | 4 ++-- .../Upload/Operations/Async/RetryUploadOperation.swift | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/VimeoUpload/Upload/Operations/Async/ExportOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportOperation.swift index b2623dba..de7d28ef 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportOperation.swift @@ -50,14 +50,14 @@ public class ExportOperation: ConcurrentOperation // MARK: - Initialization - convenience init(asset: AVAsset, documentsFolderURL: URL) + convenience init(asset: AVAsset, documentsFolderURL: URL? = nil) { let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough)! self.init(exportSession: exportSession, documentsFolderURL: documentsFolderURL) } - init(exportSession: AVAssetExportSession, documentsFolderURL: URL) + init(exportSession: AVAssetExportSession, documentsFolderURL: URL? = nil) { // exportSession.timeRange must be valid so that the exportSession's estimatedOutputFileLength is non zero // We use estimatedOutputFileLength below to check that there is ample disk space to perform the export [AH] 10/15/2015 diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift index ce77af77..d0f9ebc3 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift @@ -43,7 +43,7 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation // MARK: private let phAsset: PHAsset - private let documentsFolderURL: URL + private let documentsFolderURL: URL? open var url: URL? open var video: VIMVideo? @@ -60,7 +60,7 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation // MARK: - Initialization - public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil, documentsFolderURL: URL) + public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil, documentsFolderURL: URL? = nil) { self.phAsset = phAsset diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift index 5f680fa6..b404bfe9 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift @@ -52,9 +52,9 @@ open class ExportSessionExportOperation: ConcurrentOperation } open var result: URL? - private let documentsFolderURL: URL + private let documentsFolderURL: URL? - public init(phAsset: PHAsset, documentsFolderURL: URL) + public init(phAsset: PHAsset, documentsFolderURL: URL? = nil) { self.phAsset = phAsset diff --git a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift index 7e4227f7..8a92818c 100644 --- a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift @@ -55,11 +55,11 @@ public class RetryUploadOperation: ConcurrentOperation } } - private let documentsFolderURL: URL + private let documentsFolderURL: URL? // MARK: - Initialization - public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, documentsFolderURL: URL) + public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, documentsFolderURL: URL? = nil) { self.phAsset = phAsset From 6229431702d8c6add998518d530fd9d4fcafaa79 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 23 May 2018 18:42:52 -0400 Subject: [PATCH 084/149] Revamp `uploadURL` method --- VimeoUpload/Upload/Extensions/NSURL+Upload.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Upload/Extensions/NSURL+Upload.swift b/VimeoUpload/Upload/Extensions/NSURL+Upload.swift index 208d4bc3..a948998c 100644 --- a/VimeoUpload/Upload/Extensions/NSURL+Upload.swift +++ b/VimeoUpload/Upload/Extensions/NSURL+Upload.swift @@ -38,16 +38,16 @@ public extension URL { let url = URL.uploadDirectory(documentsFolderURL: documentsFolderURL) - if FileManager.default.fileExists(atPath: url.absoluteString) == false + if FileManager.default.fileExists(atPath: url.path) == false { - try FileManager.default.createDirectory(atPath: url.absoluteString, withIntermediateDirectories: true, attributes: nil) + try FileManager.default.createDirectory(atPath: url.path, withIntermediateDirectories: true, attributes: nil) } let unmanagedTag = UTTypeCopyPreferredTagWithClass(fileType as CFString, kUTTagClassFilenameExtension)! let ext = unmanagedTag.takeRetainedValue() as String - let path = url.appendingPathComponent(filename).appendingPathExtension(ext).absoluteString + let path = url.appendingPathComponent(filename).appendingPathExtension(ext) - return URL(fileURLWithPath: path) + return path } static func uploadDirectory(documentsFolderURL: URL? = nil) -> URL From 413ea080d5e2f20574b2e398a92e521650cc404b Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 24 May 2018 09:59:52 -0400 Subject: [PATCH 085/149] Update pods --- .../project.pbxproj | 63 +- .../VimeoUpload-iOS.xcodeproj/project.pbxproj | 63 +- .../VimeoUpload.xcodeproj/project.pbxproj | 21 +- Gemfile | 2 +- Gemfile.lock | 136 ++-- Podfile.lock | 14 +- Pods/Manifest.lock | 14 +- Pods/Pods.xcodeproj/project.pbxproj | 682 ++++++++++-------- .../AFNetworking/AFNetworking.xcconfig | 7 +- ...ds-VimeoUpload-iOS-OldUpload-frameworks.sh | 80 +- ...ods-VimeoUpload-iOS-OldUpload-resources.sh | 43 +- ...s-VimeoUpload-iOS-OldUpload.debug.xcconfig | 9 +- ...VimeoUpload-iOS-OldUpload.release.xcconfig | 9 +- ...meoUpload-iOS-OldUploadTests-frameworks.sh | 72 +- ...imeoUpload-iOS-OldUploadTests-resources.sh | 43 +- ...eoUpload-iOS-OldUploadTests.debug.xcconfig | 9 +- ...Upload-iOS-OldUploadTests.release.xcconfig | 9 +- .../Pods-VimeoUpload-iOS-frameworks.sh | 80 +- .../Pods-VimeoUpload-iOS-resources.sh | 43 +- .../Pods-VimeoUpload-iOS.debug.xcconfig | 9 +- .../Pods-VimeoUpload-iOS.release.xcconfig | 9 +- .../Pods-VimeoUpload-iOSTests-frameworks.sh | 72 +- .../Pods-VimeoUpload-iOSTests-resources.sh | 43 +- .../Pods-VimeoUpload-iOSTests.debug.xcconfig | 9 +- ...Pods-VimeoUpload-iOSTests.release.xcconfig | 9 +- .../Pods-VimeoUpload-resources.sh | 43 +- .../Pods-VimeoUpload.debug.xcconfig | 9 +- .../Pods-VimeoUpload.release.xcconfig | 9 +- .../VimeoNetworking/VimeoNetworking.xcconfig | 9 +- .../Sources/AuthenticationController.swift | 8 +- .../Sources/Request+Authentication.swift | 11 +- 31 files changed, 967 insertions(+), 672 deletions(-) diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj index 28d0b408..59156019 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj/project.pbxproj @@ -232,7 +232,6 @@ AFFA40081C9CE8E000C7B6F3 /* Frameworks */, AFFA40091C9CE8E000C7B6F3 /* Resources */, BE8817D04A5626F94A584168 /* [CP] Embed Pods Frameworks */, - 4AA625097181A3EE21E48884 /* [CP] Copy Pods Resources */, 5009CCEF1E0060D800887FC1 /* Embed Frameworks */, ); buildRules = ( @@ -252,8 +251,6 @@ AFFA401B1C9CE8E000C7B6F3 /* Sources */, AFFA401C1C9CE8E000C7B6F3 /* Frameworks */, AFFA401D1C9CE8E000C7B6F3 /* Resources */, - 576AC1945F6ECF1790D2BE79 /* [CP] Embed Pods Frameworks */, - 89C1E0AD2EBD4C702D63C690 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -337,58 +334,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOS-OldUpload-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 4AA625097181A3EE21E48884 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 576AC1945F6ECF1790D2BE79 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 89C1E0AD2EBD4C702D63C690 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; BE8817D04A5626F94A584168 /* [CP] Embed Pods Frameworks */ = { @@ -397,9 +352,14 @@ files = ( ); inputPaths = ( + "${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", + "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/VimeoNetworking.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -412,13 +372,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOS-OldUploadTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj b/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj index c6525724..3a278be6 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj/project.pbxproj @@ -243,7 +243,6 @@ AFFA3F111C9CE22500C7B6F3 /* Frameworks */, AFFA3F121C9CE22500C7B6F3 /* Resources */, F99B806A68B81482408B6D2F /* [CP] Embed Pods Frameworks */, - EB2809E825F1D91F8B3E8D00 /* [CP] Copy Pods Resources */, 5009CCEB1E00604200887FC1 /* Embed Frameworks */, ); buildRules = ( @@ -263,8 +262,6 @@ AFFA3F241C9CE22500C7B6F3 /* Sources */, AFFA3F251C9CE22500C7B6F3 /* Frameworks */, AFFA3F261C9CE22500C7B6F3 /* Resources */, - 9AE9924AC1194539D3970F62 /* [CP] Embed Pods Frameworks */, - F6CB30BFCBEB63E375D9C6F9 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -347,13 +344,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOSTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; 7B5C5CEC1A3E28ED8906F076 /* [CP] Check Pods Manifest.lock */ = { @@ -362,58 +362,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-iOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 9AE9924AC1194539D3970F62 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EB2809E825F1D91F8B3E8D00 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F6CB30BFCBEB63E375D9C6F9 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; F99B806A68B81482408B6D2F /* [CP] Embed Pods Frameworks */ = { @@ -422,9 +380,14 @@ files = ( ); inputPaths = ( + "${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", + "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/VimeoNetworking.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 48b0ae07..c6a40064 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -456,7 +456,6 @@ AF40D4DD1CCE9CB600753ABA /* Frameworks */, AF40D4DE1CCE9CB600753ABA /* Headers */, AF40D4DF1CCE9CB600753ABA /* Resources */, - AF226B77AD8E786AE78DC298 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -548,28 +547,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VimeoUpload-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - AF226B77AD8E786AE78DC298 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/Gemfile b/Gemfile index a9ce7092..7c65ccd6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' gem 'fastlane', '2.42.0' -gem 'cocoapods', '1.2.0' +gem 'cocoapods', '1.5.2' gem 'xcode-install', '2.1.0' gem 'xcpretty-json-formatter', '0.1.0' gem 'danger-xcode_summary', '0.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 429cbcd8..1beb60a1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,92 +1,95 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (2.3.5) - activesupport (4.2.9) + CFPropertyList (2.3.6) + activesupport (4.2.10) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.5.1) - public_suffix (~> 2.0, >= 2.0.2) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + atomos (0.1.2) babosa (1.0.2) claide (1.0.2) claide-plugins (0.9.2) cork nap open4 (~> 1.3) - cocoapods (1.2.0) + cocoapods (1.5.2) activesupport (>= 4.0.2, < 5) - claide (>= 1.0.1, < 2.0) - cocoapods-core (= 1.2.0) - cocoapods-deintegrate (>= 1.0.1, < 2.0) - cocoapods-downloader (>= 1.1.3, < 2.0) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.5.2) + cocoapods-deintegrate (>= 1.0.2, < 2.0) + cocoapods-downloader (>= 1.2.0, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.1.2, < 2.0) + cocoapods-trunk (>= 1.3.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) - colored (~> 1.2) + colored2 (~> 3.1) escape (~> 0.0.4) fourflusher (~> 2.0.1) gh_inspector (~> 1.0) - molinillo (~> 0.5.5) + molinillo (~> 0.6.5) nap (~> 1.0) - ruby-macho (~> 0.2.5) - xcodeproj (>= 1.4.1, < 2.0) - cocoapods-core (1.2.0) - activesupport (>= 4.0.2, < 5) + ruby-macho (~> 1.1) + xcodeproj (>= 1.5.7, < 2.0) + cocoapods-core (1.5.2) + activesupport (>= 4.0.2, < 6) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-deintegrate (1.0.1) - cocoapods-downloader (1.1.3) + cocoapods-deintegrate (1.0.2) + cocoapods-downloader (1.2.0) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) cocoapods-stats (1.0.0) - cocoapods-trunk (1.2.0) + cocoapods-trunk (1.3.0) nap (>= 0.8, < 2.0) - netrc (= 0.7.8) + netrc (~> 0.11) cocoapods-try (1.1.0) colored (1.2) colored2 (3.1.2) colorize (0.8.1) - commander-fastlane (4.4.5) + commander-fastlane (4.4.6) highline (~> 1.7.2) - cork (0.2.0) - colored (~> 1.2) - danger (4.0.4) + concurrent-ruby (1.0.5) + cork (0.3.0) + colored2 (~> 3.1) + danger (5.6.1) claide (~> 1.0) claide-plugins (>= 0.9.2) - colored (~> 1.2) + colored2 (~> 3.1) cork (~> 0.1) faraday (~> 0.9) faraday-http-cache (~> 1.0) git (~> 1) kramdown (~> 1.5) - octokit (~> 4.2) + no_proxy_fix + octokit (~> 4.7) terminal-table (~> 1) danger-plugin-api (1.0.0) danger (> 2.0) danger-xcode_summary (0.1.0) danger-plugin-api (~> 1.0) - declarative (0.0.9) + declarative (0.0.10) declarative-option (0.1.0) - domain_name (0.5.20170404) + domain_name (0.5.20180417) unf (>= 0.0.5, < 1.0.0) - dotenv (2.2.1) + dotenv (2.4.0) escape (0.0.4) - excon (0.57.1) - faraday (0.12.1) + excon (0.62.0) + faraday (0.15.1) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) faraday (>= 0.7.4) http-cookie (~> 1.0.0) faraday-http-cache (1.3.1) faraday (~> 0.8) - faraday_middleware (0.11.0.1) + faraday_middleware (0.12.2) faraday (>= 0.7.4, < 1.0) - fastimage (2.1.0) + fastimage (2.1.3) fastlane (2.42.0) CFPropertyList (>= 2.3, < 3.0.0) addressable (>= 2.3, < 3.0.0) @@ -125,8 +128,8 @@ GEM terminal-table fourflusher (2.0.1) fuzzy_match (2.0.4) - gh_inspector (1.0.3) - git (1.3.0) + gh_inspector (1.1.3) + git (1.4.0) google-api-client (0.12.0) addressable (~> 2.5, >= 2.5.1) googleauth (~> 0.5) @@ -134,22 +137,23 @@ GEM mime-types (~> 3.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) - googleauth (0.5.1) - faraday (~> 0.9) - jwt (~> 1.4) + googleauth (0.6.2) + faraday (~> 0.12) + jwt (>= 1.4, < 3.0) logging (~> 2.0) memoist (~> 0.12) multi_json (~> 1.11) os (~> 0.9) signet (~> 0.7) - highline (1.7.8) + highline (1.7.10) http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) - i18n (0.8.6) + i18n (0.9.5) + concurrent-ruby (~> 1.0) json (2.1.0) - jwt (1.5.6) - kramdown (1.13.2) + jwt (2.1.0) + kramdown (1.16.2) little-plugger (1.1.4) logging (2.2.2) little-plugger (~> 1.1) @@ -159,39 +163,40 @@ GEM mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_magick (4.5.1) - mini_portile2 (2.1.0) - minitest (5.10.2) - molinillo (0.5.7) - multi_json (1.12.1) + mini_portile2 (2.3.0) + minitest (5.11.3) + molinillo (0.6.5) + multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.0.0) - nanaimo (0.2.3) + nanaimo (0.2.5) nap (1.1.0) - netrc (0.7.8) - nokogiri (1.7.0.1) - mini_portile2 (~> 2.1.0) - octokit (4.6.2) + netrc (0.11.0) + no_proxy_fix (0.1.2) + nokogiri (1.8.2) + mini_portile2 (~> 2.3.0) + octokit (4.9.0) sawyer (~> 0.8.0, >= 0.5.3) open4 (1.3.4) os (0.9.6) - plist (3.3.0) + plist (3.4.0) public_suffix (2.0.5) representable (3.0.4) declarative (< 0.1.0) declarative-option (< 0.2.0) uber (< 0.2.0) - retriable (3.0.2) + retriable (3.1.1) rouge (2.0.7) - ruby-macho (0.2.6) + ruby-macho (1.1.0) rubyzip (1.2.1) sawyer (0.8.1) addressable (>= 2.3.5, < 2.6) faraday (~> 0.8, < 1.0) security (0.1.3) - signet (0.7.3) + signet (0.8.1) addressable (~> 2.3) faraday (~> 0.9) - jwt (~> 1.5) + jwt (>= 1.5, < 3.0) multi_json (~> 1.10) slack-notifier (1.5.1) terminal-notifier (1.8.0) @@ -199,34 +204,35 @@ GEM unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) tty-screen (0.5.0) - tzinfo (1.2.3) + tzinfo (1.2.5) thread_safe (~> 0.1) uber (0.1.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.4) - unicode-display_width (1.3.0) + unf_ext (0.0.7.5) + unicode-display_width (1.3.2) word_wrap (1.0.0) xcode-install (2.1.0) claide (>= 0.9.1, < 1.1.0) fastlane (>= 2.1.1, < 3.0.0) - xcodeproj (1.5.0) - CFPropertyList (~> 2.3.3) + xcodeproj (1.5.9) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.2) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.2.3) + nanaimo (~> 0.2.5) xcpretty (0.2.8) rouge (~> 2.0.7) xcpretty-json-formatter (0.1.0) xcpretty (~> 0.2, >= 0.0.7) - xcpretty-travis-formatter (0.0.4) + xcpretty-travis-formatter (1.0.0) xcpretty (~> 0.2, >= 0.0.7) PLATFORMS ruby DEPENDENCIES - cocoapods (= 1.2.0) + cocoapods (= 1.5.2) danger-xcode_summary (= 0.1.0) fastlane (= 2.42.0) fastlane-plugin-pretty_junit @@ -234,4 +240,4 @@ DEPENDENCIES xcpretty-json-formatter (= 0.1.0) BUNDLED WITH - 1.15.1 + 1.16.1 diff --git a/Podfile.lock b/Podfile.lock index 5b7db424..a3138311 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -18,17 +18,21 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-5876-Share-Extension`) + - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-5876-Share-Extension`)" + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - AFNetworking EXTERNAL SOURCES: VimeoNetworking: :branch: feature/VIM-5876-Share-Extension - :git: git@github.com:vimeo/VimeoNetworking.git + :git: "git@github.com:vimeo/VimeoNetworking.git" CHECKOUT OPTIONS: VimeoNetworking: - :commit: e46c908862baca78bef3496acff5cdd6c21ea679 - :git: git@github.com:vimeo/VimeoNetworking.git + :commit: dccd197b269764e1e42b3377d083391d8746bcbb + :git: "git@github.com:vimeo/VimeoNetworking.git" SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 @@ -36,4 +40,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: b99f0640652fedc418368de2440c51afd1125a48 -COCOAPODS: 1.2.0 +COCOAPODS: 1.5.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 5b7db424..a3138311 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -18,17 +18,21 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-5876-Share-Extension`) + - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-5876-Share-Extension`)" + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - AFNetworking EXTERNAL SOURCES: VimeoNetworking: :branch: feature/VIM-5876-Share-Extension - :git: git@github.com:vimeo/VimeoNetworking.git + :git: "git@github.com:vimeo/VimeoNetworking.git" CHECKOUT OPTIONS: VimeoNetworking: - :commit: e46c908862baca78bef3496acff5cdd6c21ea679 - :git: git@github.com:vimeo/VimeoNetworking.git + :commit: dccd197b269764e1e42b3377d083391d8746bcbb + :git: "git@github.com:vimeo/VimeoNetworking.git" SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 @@ -36,4 +40,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: b99f0640652fedc418368de2440c51afd1125a48 -COCOAPODS: 1.2.0 +COCOAPODS: 1.5.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index fc6c4cf8..f722b48e 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -15,16 +15,20 @@ 032716918FA2B8150F25BEA44FC1E35F /* Pods-VimeoUpload-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E5825EEC0DE908A1A3B761CD116EEB4 /* Pods-VimeoUpload-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 080981D0829053FB0D91C3AC721C22E6 /* VIMUploadQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */; }; 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 34C6DA693B07265C4DCBAE97EE2D5594 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1066E708C7BDD5A2F0CB700190824FBE /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D7729272B0191CF0AEEC273F9FF8FFC1 /* MobileCoreServices.framework */; }; 110895699164F5489FEA1B5862189EF1 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2306B631FE1354BD0E5B81E1EB94D032 /* AppConfiguration.swift */; }; 12F8248721BA64F46CB0036E970CA4D2 /* VIMPictureCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = E5B2FE6582270D74BE0CBFC7A389FC8A /* VIMPictureCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B2648F4C8600A30243D27AC672A0A5 /* VIMLiveHeartbeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA4D18A3DC38EBDE55B7E5C609CC71FC /* VIMLiveHeartbeat.swift */; }; + 13DEA0CE6FC83504D998DEBF3B263336 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F7ABBC91F9865BF0C8F0A5C033AC9F63 /* UIActivityIndicatorView+AFNetworking.m */; }; 1454895436E2AEDC9FBE797C83971E31 /* VIMSeason.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F2E19F2D2D74E49166614264DA1D27 /* VIMSeason.m */; }; + 15606351AAE10A740FA83F707A743AC4 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 167ACEC255DCBED6BFDC64FAD93DC1BA /* VIMCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 24231BD46B3810C7B980D8C357456050 /* VIMCategory.h */; settings = {ATTRIBUTES = (Public, ); }; }; 173092A45F57338768EE067ECFDF126F /* ResponseCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */; }; 17AF6E91051C40A1909641FBD81CFCE6 /* VIMPolicyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */; }; 1A19B0C55294E4016F6F29DF11B37286 /* VIMRecommendation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0338339E81D84468FC3FEC3B4E0B751B /* VIMRecommendation.m */; }; 1B098FF61D835DC05E4818A260B6954F /* digicert-sha2.cer in Resources */ = {isa = PBXBuildFile; fileRef = 7AC12ADD13D05812352645C5BAEFD99D /* digicert-sha2.cer */; }; + 1B4B83A97D510F7DD45259F09EFFAE5A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90C6CE6DFFF0E79482EB6BEB9917B9D /* Security.framework */; }; 1C762B3B85A259872E5A315B3C9FEC2F /* VIMVideo+VOD.m in Sources */ = {isa = PBXBuildFile; fileRef = 594B408BD401FB948979F4BDA15CC9EA /* VIMVideo+VOD.m */; }; 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DB8FD8229ED4AD2B0CBBBDDC20F09BAA /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1E555F7B50932D19657F6BACF6482891 /* VIMVideoPlayFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AE31BCA21D12620C2D9B0F9386A7EA /* VIMVideoPlayFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -42,7 +46,7 @@ 2D8D15E021ED742C95A7893F7A3877DC /* VIMVideoUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 50CF7C4EB12469B6AD2059AF45FA8ECB /* VIMVideoUtils.m */; }; 2F3A5EFEDFA43593DC5AA806D91BFA5A /* VIMInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */; }; 2F4D4E3413C1336621AD3EF5461281C6 /* Request+Picture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300CFD20A787C853925F7BAE4CBFAA57 /* Request+Picture.swift */; }; - 30F0BAE1DBB79BBB6CBD957EA8B89E4B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */; }; + 30D3D5470DED1FF2B24DFE656D46F088 /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */; }; 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 67584EC80399FD96630D745DA4D1A98F /* UIButton+AFNetworking.m */; }; 327BE3456189E37F229074A8E0E59D67 /* Request+ProgrammedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE40B3ABF25113AD8DB2293E39C0B740 /* Request+ProgrammedContent.swift */; }; 34ACDFAC012CB5AE7996D0B1157ED336 /* VIMCredit.h in Headers */ = {isa = PBXBuildFile; fileRef = B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -52,11 +56,8 @@ 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */; }; 3B01A1344CDDAD474BAB3A4972534FF4 /* VIMVODItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */; }; 3C178E120BAF6B59E24F466C8FF23D6B /* VIMNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E5288CBF6B2BE080B33EB12E809F2B4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 3E9017BD1F6A95F49D9534FED7AEE8E0 /* VimeoSessionManager+Constructors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */; }; - 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; 42002EAFB3E488172644B9CCEEBBDD5E /* VIMVideoFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C8E3687C68FDA0D536295AA785351E89 /* VIMVideoFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 42AF1BB1ED090CC9E588A463441D09E3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */; }; 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A23F6E3249A977997C8255519997C806 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 44C4F1F6F4236CB76C0C34FFFBEC9E93 /* VimeoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98158361BFB9C60E8591A14756CDA100 /* VimeoClient.swift */; }; 455719CCD0654F72FBFCF510DE328339 /* VIMVideoDASHFile.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D5EE1E0744442AC49E909AD0D768A9 /* VIMVideoDASHFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -66,7 +67,6 @@ 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3791D86A6474626014DF7E87E64D0CC1 /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DE0E38A99298F3EF954325E154AA215 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 49256D3D8A3D5ECF3865BD63A889E783 /* VIMLiveStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A751CF37C60078D4E14FD77EABB59EA /* VIMLiveStreams.swift */; }; - 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4D3532EDF43F7631961FBCE2118906D1 /* VIMPolicyDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = AE97ADD7133B74F569CDBAA703BCFD65 /* VIMPolicyDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4D78E4A293A03E543CB947C6E2B5BFC7 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EC2A207160C6ABAABFFB2C7CEF0193 /* Constants.swift */; }; 4FA2FC796ACCCC463EEE77542BE8D142 /* VIMUser.h in Headers */ = {isa = PBXBuildFile; fileRef = EB3CB90C71820EE74C9F0D2DA4A7B44F /* VIMUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -82,6 +82,7 @@ 5C0565FFE84B204D8F6C99772868BDEB /* VIMVODConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = FC34BB5F2459B8BE2191283BCD59DFFC /* VIMVODConnection.m */; }; 5D4A19EA76D7EA2F9AFD1D2114FE0282 /* AuthenticationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4649337C65FD272A0B75F156507DBF18 /* AuthenticationController.swift */; }; 5E954272295CF70B4C2C2815117255AB /* VIMVideoFairPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E0B01CEC75D6CABBC311CA2D4DCE1D9 /* VIMVideoFairPlayFile.m */; }; + 608FBB1E459C630CAC2D93C823A9B12C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; 6203DE451A85E5A0AA5C13D751699B1B /* VIMAppeal.m in Sources */ = {isa = PBXBuildFile; fileRef = 58588D4FE9CAD101CBA9E66CF55B111F /* VIMAppeal.m */; }; 6286BBCC9E8308998C92DE6A732153C0 /* Spatial.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEA5F1020ACBC1E16F7C377115328C63 /* Spatial.swift */; }; 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9468DEA78D57D9B0E4C7AC7F5E504C7B /* AFNetworkActivityIndicatorManager.m */; }; @@ -93,15 +94,12 @@ 69D4E81727D4C0E26D58BB5A47263C6A /* ErrorCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8A79531959161891C56EDD3B8236F9 /* ErrorCode.swift */; }; 6A0B3B27B44D1B549931CA04D05FDA5F /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198A0FC4821182C1441C3278B81533C1 /* Dictionary+Extension.swift */; }; 6AFAD442B4AAEECF1318FA8525604051 /* VIMAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BC4A625F838AE6E28EAA14F8EABBEEE /* VIMAccount.m */; }; - 6CB3E0E344A7E19BA2ADE572A9E91C7F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 6D7348E2B052AF437E6DD693FA1BB372 /* PinCodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */; }; 6FC69948AF7AED0F67402F8044ABE1BC /* VIMTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 633F03E86937C4E4A5EB10440B86406E /* VIMTag.m */; }; 7184A2EBE622AC5493861089EB852BC9 /* VIMVideoPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 66DF12E58DBB07F4E0A32A90407E7F10 /* VIMVideoPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; 730A439176273D3D0BBEF1C123CB4B87 /* VIMUserBadge.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B7817AC6B424B77B067539E39EDA9AB /* VIMUserBadge.h */; settings = {ATTRIBUTES = (Public, ); }; }; 76FB450A67E351FEF558473DF85A052A /* Request+User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2D82462A8952625139EFE730A1D996 /* Request+User.swift */; }; - 7715E1A66A2F21A0C5F8B913E79FC9F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 78471141D3A567C068C60243ED3554B8 /* VIMInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 44F122B80BACFA0494C2CFB8D9923E4C /* VIMInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 789D749690B308852115FF20CD982A69 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */; }; 79FD18E3550C4D60892402C954D89D58 /* VIMPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D22624966A39C8E5C113CBF14F4C8CE /* VIMPreference.m */; }; 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B507D130FFEBCD98C817BB196466C70 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7AD4CE7ABA24F180CCFBD6C0310DC1AA /* VIMModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = C716B4800FAD0DDAAAFFAB57FFC40242 /* VIMModelObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -110,20 +108,20 @@ 7E9D810438EAF1EC8C73357A66E2F745 /* VIMConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = EC67B7AD7961570B52C42FF75E469EF7 /* VIMConnection.m */; }; 7EB9BEBED79E8411B9797F9B7E41B2C3 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A642117F7C53CF7A21E344EBF7E7936 /* Request.swift */; }; 7F701AD6C1E16AC30D5A089603B3F29A /* VIMGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 6497695CF3E669E163206BB20DBAFE53 /* VIMGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 81D0F571B178C2F82F146F1F5E50C097 /* VIMObjectMapper+Generic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55D5445B186DDBBEC7D7A9B467FC2E6A /* VIMObjectMapper+Generic.swift */; }; 828EB50094BB958BEE3B094F96465E3E /* VIMGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = C867648C482317091BC988216AE7BCEF /* VIMGroup.m */; }; - 82D554EC9FB9A62D935B6555325F5898 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C29192B1F683D403AFFD632D65221D49 /* Security.framework */; }; 84D5E7F02850F93CBFE2114DE63556DE /* VIMLiveQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */; }; 84FCB295072BFCC1B8C766B77B2A4355 /* VIMNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE34181F7DEEA3A80140282BBC6AB0B /* VIMNotification.m */; }; 85DA40B231DA346D3F81F5C05721E8A5 /* Mappable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A27737DBFB0A1312C26B1C96EFC0D9CC /* Mappable.swift */; }; + 878417CA55E672D2123F3E7AA4339EA1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; 8BAC1702671F9373055297301A078026 /* VIMQuantityQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = 242A72850AA33ABD4DCB90C46D7EBBF7 /* VIMQuantityQuota.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D1538471F2C35364D46EE098BC9F426 /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8EB0FBBB983197A428EB2C6B4F6E604F /* VIMPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = 157C7EA514B07C841D376B315F5F1636 /* VIMPicture.m */; }; 907C0418B3BEBF279E024CD35630D91D /* AccountStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A25EFA17D3547663AC40E439C04067B /* AccountStore.swift */; }; 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 926CEBDC701DEEE831E9E1BD7211DCEC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DAE9E29D14DFD809059EC3455D955F8 /* SystemConfiguration.framework */; }; 926D0D88C69D6E64C4F079963246D773 /* VIMLiveChatUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D14F412DA2B5A72B420B77A5DF82B391 /* VIMLiveChatUser.swift */; }; 932CA521D19C5DB870B9EA5163CDF9D0 /* VIMUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = 686E7A5A8052386182347D07482C3C67 /* VIMUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9336820057A592619B89406F1DF4AEC9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = EC667DA5D9EC1B35E659F3B9E0341C85 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; 94CABFC144E1224E093EC7B5057F08BD /* VIMThumbnailUploadTicket.h in Headers */ = {isa = PBXBuildFile; fileRef = CC35A7CF63A081875F9CF7A13AED2B6F /* VIMThumbnailUploadTicket.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -141,10 +139,10 @@ A6C453AA6D3CA78851EB47381AFD4462 /* Request+Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A986CC4EDA505946FE3258B89387779 /* Request+Toggle.swift */; }; A7B7691B6B973F3E7F1F21F416BD3613 /* VIMLiveChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FE473E948247E7F9972B5508A413C38 /* VIMLiveChat.swift */; }; A81D296D35F0C54AD7EFAF9C6162EEEB /* Request+Soundtrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */; }; - A8C297643282E0CF5E7DF9CB6E23A0D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; A90067E931B67F86573B5310EF33BEE4 /* Request+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 592399628685EEA2CBCEAA22472FB309 /* Request+Authentication.swift */; }; A92AFBF2EA1D8470C045152905FE94EC /* ExceptionCatcher+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EE9E0E05929DC3AFDF6276C52E5988C /* ExceptionCatcher+Swift.swift */; }; AA20F58AB9ADF9E981355D9DDD6F43CA /* VIMActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD6B4F1BB9B251C7BEC59722C42AB0B /* VIMActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE16FC5B4326038C8624FACCD693CB01 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDBDFFA351A30960D21939E28DC60212 /* CoreGraphics.framework */; }; AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 03C2FA5B57F57E6E4C867E75DC638115 /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF31E2ADAC20108EB84BDE3DAC89B5AD /* VIMModelObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 9899127E9167B9D6EBA7784D892653A2 /* VIMModelObject.m */; }; B096979D89174D895ACAA9130A84C751 /* Objc_ExceptionCatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CF73647B15392A1776EAC7769039E3C1 /* Objc_ExceptionCatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -157,13 +155,14 @@ B8A0FD0C3B86C1B68BC177F0E4F46FF0 /* String+Parameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A90EF0370E7F413E923D813F419C81 /* String+Parameters.swift */; }; B8C936EBBA62FA2DB48E61C49C63631B /* VIMSizeQuota.swift in Sources */ = {isa = PBXBuildFile; fileRef = D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */; }; B8E04F3BBEBBD14C2D12C53535CEED63 /* VIMVideoPlayFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCEA14CC7DF08D617ED59064F004953 /* VIMVideoPlayFile.m */; }; + B921B743C1F273406F64ABEDB7AF9400 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F136B8B3237A494D56992ABD45DA16 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m */; }; B9E6048FDEF1EDF00DBD5E7603882B0F /* VIMVODConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = F6C8A0A919CEE05D1634AFD91D8693BC /* VIMVODConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB2BB064BA029A5772F1B80A2504B6D4 /* VIMChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA8C97144A1B46C16C2425AD02F2647 /* VIMChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB2D516BB64D23CB562B41D9C0DCFF91 /* VIMVideoProgressiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 4791D611DF81AF66DC55313D98C6202C /* VIMVideoProgressiveFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; BCBA69CD7C8C0C72ED283C9E23F1E9E8 /* VIMCredit.m in Sources */ = {isa = PBXBuildFile; fileRef = 91179DF7663D831C96D269BFB58AD522 /* VIMCredit.m */; }; BD430763476A5C43180E216E8DF6814C /* VIMPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48ADFB75E39D89D3FC25BA8311A8A3F8 /* VIMPrivacy.m */; }; + BD68AF52C096310FF247AF573E6D3E7A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; C08010E9B33FEB8A829FBFB76BA1A56A /* VIMAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = C913DD9402D7FCE7BBA97568950974A6 /* VIMAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C50D0C30AF8712AFFA42B7F9C4AC2C7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; C740EA611A1A0708069379C21CC91D22 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E356F5BC3EF410C1A8E290BF70EE42EC /* KeychainStore.swift */; }; C7D618E6E16BAB6EE81D7A943430A155 /* VIMUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 404EBED1541B755FB84CEB0B6BF5B214 /* VIMUploadTicket.m */; }; C9FBFA4214F4CE291C59D52DFA886C02 /* VimeoNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D53BEEBF70CF78A7381D5E381FE19629 /* VimeoNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -171,7 +170,6 @@ CBD0A5C342505975B14B0722C0A40644 /* VIMVideoProgressiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C1BE847651368C4C25045E57EB0E3F /* VIMVideoProgressiveFile.m */; }; CC9E35985FC0082D929D45BA28334A1C /* VIMVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 67E8730E582CED91AFE4FA07B317CF43 /* VIMVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE4DA92A43826C17668392D0C859A80A /* AFSecurityPolicy.m */; }; - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD861AB176F175CB3D1E0F6AF2A8444 /* Pods-VimeoUpload-iOSTests-dummy.m */; }; CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 620D09827DEDF296949C919BB5E207C4 /* AFNetworking-dummy.m */; }; D109CF550CC4B4207ABD5A8BDA5D7FB2 /* VIMSpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 199439094EAB2A988BAED89C1771A848 /* VIMSpace.swift */; }; D1CC6C140311BDF560402C7B261EC749 /* VIMVideoPlayRepresentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 58047C8CC5F49283333E246CA9F56BFA /* VIMVideoPlayRepresentation.m */; }; @@ -183,6 +181,7 @@ D86979E7D5F083AE83F26A54375E0BE6 /* VIMTrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = 434D92DDD616ED26F2A45C6EAB3DF3C2 /* VIMTrigger.h */; settings = {ATTRIBUTES = (Public, ); }; }; D8876D8D889C6B0E96CF2AFD3CDB8B97 /* VimeoSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B89681226395449BB402C81A1ED264E /* VimeoSessionManager.swift */; }; DC395092187FBC815E499B755553E751 /* Pods-VimeoUpload-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 406EF671DD740C6C0D28A82B1460D7EA /* Pods-VimeoUpload-iOS-dummy.m */; }; + DC9AE7B95B286B56C6445079B403C3D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; DCE8E24B5551BD3ED1FD7ABD56C10386 /* VIMVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF8D5A5B94427B5A26BF7A110935D1D /* VIMVideo.m */; }; DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EC36289436BC8F92161297A7A6BB279 /* AFNetworkReachabilityManager.m */; }; DE18C4BDBECD0E69D0696F8BD2DCD577 /* VIMChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */; }; @@ -196,11 +195,13 @@ E59B30AE3C849AECA3C525452E2AE055 /* VIMLiveTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1A9E4CA052B6791BE98CABC26BDAE96 /* VIMLiveTime.swift */; }; E67F7F8543FC715AD3B30BC6CB366B6E /* VIMThumbnailUploadTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */; }; E6BC2F1EBCB35E455ECB7D63F1591E93 /* VIMQuantityQuota.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DB8B03BA0C91F983BEBB7D468AA4F10 /* VIMQuantityQuota.m */; }; + E6DC085EF47756D760080D0E855E965A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; E791D2683395A22962082E7163104379 /* NSError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED3D79C25378B9CD7F9F1F4D28F37C78 /* NSError+Extensions.swift */; }; E9C53427664F14DBB8FCFAB186BCFB59 /* VIMVideoPlayRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CA19508165DFEEB376273E8D4214F59 /* VIMVideoPlayRepresentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; E9CCC4E47921BE30AAE21DE57E20BEFA /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C974CC35310983ABAED5BA8CF32332A6 /* Subscription.swift */; }; E9FDD6AECB1F1502240718DD68585725 /* PlayProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E82E7A6452665F31AB0160C36C0040 /* PlayProgress.swift */; }; EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 31D638862512159911B72BCEA7447DC2 /* AFHTTPSessionManager.m */; }; + ECE3AC09F6BE7F51C36F9AC7D5FFCF56 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */; }; F1B355E841C99D9DBA940D0E172DAE7F /* Objc_ExceptionCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */; }; F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 7983F38BB3C81F07425BFAF1E6289C43 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; F2625E2811F90F09002CACB5816B66D5 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */; }; @@ -210,7 +211,6 @@ F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B2B4EA4DB47084F317FFA4C51ADC9C /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; F918C94B773F6FAE6B379A7A216C14DF /* VIMComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B2D0192E9B889AE401D325E73A05B /* VIMComment.m */; }; F938EE05B1FA2FCD55CAE920B0275003 /* VIMNotificationsConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A744737CCC3FB2DDD29A8A01B7569A /* VIMNotificationsConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F94CAA71DF535013FE840C72ED995ACA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */; }; F99681CD0018DD5318E1C75064153302 /* VIMMappable.h in Headers */ = {isa = PBXBuildFile; fileRef = D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */; settings = {ATTRIBUTES = (Public, ); }; }; FB1D774E4A4E73BEC95B50B24530ADEC /* VIMCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = A962DA72E1B4C69B2EBB0CF5A88E990E /* VIMCategory.m */; }; FC4467E7982DA5205C40F4CE3876FD62 /* VIMReviewPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57B784EA87250DC92F76F6BF0638D4D2 /* VIMReviewPage.swift */; }; @@ -255,6 +255,13 @@ remoteGlobalIDString = 119F92C3FCFD322E8CA53B254AE9B6EA; remoteInfo = VimeoNetworking; }; + C1B07E8A6BB52E5A23F0C9ABD7F591F1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 007473F5B3F53CD3EEA4CABB3BD4C070; + remoteInfo = "Pods-VimeoUpload-iOS-OldUpload"; + }; DBE8C14A8BD5EC1ADA1AD87726953825 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -269,6 +276,13 @@ remoteGlobalIDString = CF671F7E57B92905F1CC91D036D6B4A7; remoteInfo = AFNetworking; }; + F4716F7EEF30FEC980B19631440BDCEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9ABE00A810B6AFE214900E3484571A39; + remoteInfo = "Pods-VimeoUpload-iOS"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -382,7 +396,6 @@ 714AC1F0B428E041A21A3D9426A0F56D /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; 714C5B0978A3C1F5DFD5196353A4674C /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; 71DED1DC4C3953219DB409A92F0E546F /* VIMAppeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMAppeal.h; path = VimeoNetworking/Sources/Models/VIMAppeal.h; sourceTree = ""; }; - 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; 7426D8145A3155978F0515BEEFCB8447 /* Request+Comment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Comment.swift"; path = "VimeoNetworking/Sources/Request+Comment.swift"; sourceTree = ""; }; 768B121F5BBF2F6F17A30D3AF51F39BC /* Pods-VimeoUpload-iOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOSTests.modulemap"; sourceTree = ""; }; 770CD4C87AE1AA8397D0F6E251DCC540 /* VIMTrigger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMTrigger.m; path = VimeoNetworking/Sources/Models/VIMTrigger.m; sourceTree = ""; }; @@ -403,6 +416,7 @@ 8C9165823267758FD6A92FD5BE0B6610 /* Pods-VimeoUpload-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-VimeoUpload-iOS-resources.sh"; sourceTree = ""; }; 8D9225F1748860C325BC0B5470023589 /* Request+Configs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Configs.swift"; path = "VimeoNetworking/Sources/Request+Configs.swift"; sourceTree = ""; }; 8DA9B270A4EBCC6043F579AA44249C2A /* VIMUploadQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUploadQuota.swift; path = VimeoNetworking/Sources/Models/VIMUploadQuota.swift; sourceTree = ""; }; + 8DAE9E29D14DFD809059EC3455D955F8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; 8E6BFE7016A60D816B0E3C15C0E2F3BF /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; 8E6D96934932FA9638F6BD2E31B8D86E /* Pods-VimeoUpload-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-VimeoUpload-acknowledgements.plist"; sourceTree = ""; }; 8EA774D3660D1E35584A49BC04468978 /* VIMThumbnailUploadTicket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMThumbnailUploadTicket.m; path = VimeoNetworking/Sources/Models/VIMThumbnailUploadTicket.m; sourceTree = ""; }; @@ -436,7 +450,6 @@ A9988828014FB5018F75CBEC9127C5EE /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.debug.xcconfig"; sourceTree = ""; }; AA188B201DCC201C7D1451547279808D /* VIMVideoUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoUtils.h; path = VimeoNetworking/Sources/Models/VIMVideoUtils.h; sourceTree = ""; }; - AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; AB1A7C0E9CF186DC326357962BEC7AF5 /* VIMPictureCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPictureCollection.m; path = VimeoNetworking/Sources/Models/VIMPictureCollection.m; sourceTree = ""; }; AC0E35EE90FE7076880E7A717BD0E534 /* ResponseCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseCache.swift; path = VimeoNetworking/Sources/ResponseCache.swift; sourceTree = ""; }; AC1504799A29B9D2BC4470E3E39BCA33 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; @@ -453,17 +466,14 @@ B500B2A8EF05B34704F9D34CF2CF8E95 /* VIMVODItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMVODItem.m; path = VimeoNetworking/Sources/Models/VIMVODItem.m; sourceTree = ""; }; B504FF86E8CC20D89C5EE300F2F127DC /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; B55EE59B77D464EB14B10235EDA73472 /* VIMCredit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMCredit.h; path = VimeoNetworking/Sources/Models/VIMCredit.h; sourceTree = ""; }; - B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; B72FCA3488DE7361A5D81A8BD5423909 /* VIMLiveQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMLiveQuota.swift; path = VimeoNetworking/Sources/Models/VIMLiveQuota.swift; sourceTree = ""; }; B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload.release.xcconfig"; sourceTree = ""; }; BA6089003716E8736B3C3E374008AB4D /* Pods-VimeoUpload-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-VimeoUpload-dummy.m"; sourceTree = ""; }; BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS.release.xcconfig"; sourceTree = ""; }; BCB75948A89DA6FAFB6053EFB7B39628 /* VIMPicture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMPicture.h; path = VimeoNetworking/Sources/Models/VIMPicture.h; sourceTree = ""; }; BCCE3CCA275CFD5838CD6B0FFCC72CD3 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; - BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; BEF622C81A2F20DE82B18B4C1FB4977C /* Request+Soundtrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Request+Soundtrack.swift"; path = "VimeoNetworking/Sources/Request+Soundtrack.swift"; sourceTree = ""; }; C22130DB8AB8C29FBC7F7AF78E3A4E9E /* VIMChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMChannel.m; path = VimeoNetworking/Sources/Models/VIMChannel.m; sourceTree = ""; }; - C29192B1F683D403AFFD632D65221D49 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; C2D06C677AB5FAC517FFE8B4D60E8A1F /* VIMNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMNotification.h; path = VimeoNetworking/Sources/Models/VIMNotification.h; sourceTree = ""; }; C5E4251390579CA8A4647B705BD6DD41 /* VIMVideoFairPlayFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMVideoFairPlayFile.h; path = VimeoNetworking/Sources/Models/VIMVideoFairPlayFile.h; sourceTree = ""; }; C60CB7517BFF164178542CD7CB08BFC6 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = VimeoNetworking/Sources/Response.swift; sourceTree = ""; }; @@ -488,13 +498,16 @@ D53BEEBF70CF78A7381D5E381FE19629 /* VimeoNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VimeoNetworking-umbrella.h"; sourceTree = ""; }; D6B3D95F344C2376613D1869601E9D9E /* PinCodeInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeInfo.swift; path = VimeoNetworking/Sources/Models/PinCodeInfo.swift; sourceTree = ""; }; D7478AE1D1B107593F1494EC8E78E8B8 /* VIMUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMUpload.swift; path = VimeoNetworking/Sources/Models/VIMUpload.swift; sourceTree = ""; }; + D7729272B0191CF0AEEC273F9FF8FFC1 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; D7779B75E9717049456FFA53A8183156 /* VIMMappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VIMMappable.h; path = VimeoNetworking/Sources/Models/VIMMappable.h; sourceTree = ""; }; D7A828D7986D21FD6CD1AAFC2C2AD868 /* Pods-VimeoUpload-iOS-OldUpload.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-VimeoUpload-iOS-OldUpload.modulemap"; sourceTree = ""; }; D86710A21BF574C3148A0B1D88247593 /* VIMSizeQuota.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VIMSizeQuota.swift; path = VimeoNetworking/Sources/Models/VIMSizeQuota.swift; sourceTree = ""; }; D87B538A6D1877FD818D0B519C413DF2 /* VIMInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMInteraction.m; path = VimeoNetworking/Sources/Models/VIMInteraction.m; sourceTree = ""; }; + D90C6CE6DFFF0E79482EB6BEB9917B9D /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; D93E9F58B85FC67462DACC87CE53C84D /* Objc_ExceptionCatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Objc_ExceptionCatcher.m; path = VimeoNetworking/Sources/Objc_ExceptionCatcher.m; sourceTree = ""; }; D94F8265F69638DCA7C1CC50CA29CD5B /* VimeoSessionManager+Constructors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "VimeoSessionManager+Constructors.swift"; path = "VimeoNetworking/Sources/VimeoSessionManager+Constructors.swift"; sourceTree = ""; }; DB8FD8229ED4AD2B0CBBBDDC20F09BAA /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; + DDBDFFA351A30960D21939E28DC60212 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig"; sourceTree = ""; }; DFBA9CB028E92A4BD313247C31E60A61 /* Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-VimeoUpload-iOS-OldUpload-acknowledgements.markdown"; sourceTree = ""; }; E348B259AE23A208ABA2A71AED19ECE5 /* VIMPolicyDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VIMPolicyDocument.m; path = VimeoNetworking/Sources/Models/VIMPolicyDocument.m; sourceTree = ""; }; @@ -509,6 +522,7 @@ E5E04F50AFCEEA3BAFE89741A3D7D956 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h"; sourceTree = ""; }; E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-VimeoUpload-iOSTests.debug.xcconfig"; sourceTree = ""; }; E61505445B5CBA6615F5DAC3F00B4AC7 /* Pods-VimeoUpload-iOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-VimeoUpload-iOSTests-umbrella.h"; sourceTree = ""; }; + E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; E8614CB362CB4E3C9E03FCDFF2B3727C /* NSURLSessionConfiguration+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSessionConfiguration+Extensions.swift"; path = "VimeoNetworking/Sources/NSURLSessionConfiguration+Extensions.swift"; sourceTree = ""; }; E8EE2BF5E54CD69A9A8E68E9AA8D06F4 /* VimeoNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VimeoNetworking.h; path = VimeoNetworking/Sources/VimeoNetworking.h; sourceTree = ""; }; EB03BF3312FAD8B30A9EE17D0AA7BD36 /* NetworkingNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkingNotification.swift; path = VimeoNetworking/Sources/NetworkingNotification.swift; sourceTree = ""; }; @@ -538,60 +552,60 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7715E1A66A2F21A0C5F8B913E79FC9F8 /* Foundation.framework in Frameworks */, + BD68AF52C096310FF247AF573E6D3E7A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4E1872D4CC7325E3EF164880191FB61B /* Frameworks */ = { + 57F44911563C03EE01D7E49B4C1F0D0A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F94CAA71DF535013FE840C72ED995ACA /* Foundation.framework in Frameworks */, + AE16FC5B4326038C8624FACCD693CB01 /* CoreGraphics.framework in Frameworks */, + 878417CA55E672D2123F3E7AA4339EA1 /* Foundation.framework in Frameworks */, + 1066E708C7BDD5A2F0CB700190824FBE /* MobileCoreServices.framework in Frameworks */, + 1B4B83A97D510F7DD45259F09EFFAE5A /* Security.framework in Frameworks */, + 926CEBDC701DEEE831E9E1BD7211DCEC /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 57F44911563C03EE01D7E49B4C1F0D0A /* Frameworks */ = { + 720737C2C16B74DBFACA7718D80C1D1B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 789D749690B308852115FF20CD982A69 /* CoreGraphics.framework in Frameworks */, - A8C297643282E0CF5E7DF9CB6E23A0D4 /* Foundation.framework in Frameworks */, - 30F0BAE1DBB79BBB6CBD957EA8B89E4B /* MobileCoreServices.framework in Frameworks */, - 82D554EC9FB9A62D935B6555325F5898 /* Security.framework in Frameworks */, - 42AF1BB1ED090CC9E588A463441D09E3 /* SystemConfiguration.framework in Frameworks */, + 608FBB1E459C630CAC2D93C823A9B12C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 720737C2C16B74DBFACA7718D80C1D1B /* Frameworks */ = { + 7F3C819BDA5C83510A5807BEBB3DFC61 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9336820057A592619B89406F1DF4AEC9 /* Foundation.framework in Frameworks */, + ECE3AC09F6BE7F51C36F9AC7D5FFCF56 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7F3C819BDA5C83510A5807BEBB3DFC61 /* Frameworks */ = { + CAF8D4EE064B6B1E4B79174DA6AA5F6C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3E5288CBF6B2BE080B33EB12E809F2B4 /* Foundation.framework in Frameworks */, + 2945C5B22511F26C276B9C23F35A10DC /* AFNetworking.framework in Frameworks */, + DC9AE7B95B286B56C6445079B403C3D3 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - CAF8D4EE064B6B1E4B79174DA6AA5F6C /* Frameworks */ = { + F42F29F6FC6D8CE0F21767BB561E6749 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2945C5B22511F26C276B9C23F35A10DC /* AFNetworking.framework in Frameworks */, - C50D0C30AF8712AFFA42B7F9C4AC2C7B /* Foundation.framework in Frameworks */, + 13DEA0CE6FC83504D998DEBF3B263336 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D1C2FB3CCE8647049179BAAD96B9928B /* Frameworks */ = { + FD7C1E955F433AD681D32DBB2F5826A3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6CB3E0E344A7E19BA2ADE572A9E91C7F /* Foundation.framework in Frameworks */, + E6DC085EF47756D760080D0E855E965A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -856,18 +870,6 @@ name = NSURLSession; sourceTree = ""; }; - 58ADEC1A744624280C424466F85276D6 /* iOS */ = { - isa = PBXGroup; - children = ( - BEAA2896C0F3DE743E13BA30642E91F1 /* CoreGraphics.framework */, - AAB7FF3305C3F3E726189CE6DC03B4A6 /* Foundation.framework */, - 72BF022BF820248A7DC00916D1CC4205 /* MobileCoreServices.framework */, - C29192B1F683D403AFFD632D65221D49 /* Security.framework */, - B665811DA7B0645668081A93D378BB87 /* SystemConfiguration.framework */, - ); - name = iOS; - sourceTree = ""; - }; 5F47914DBA4B4E735FB0B966280E79F6 /* Pods-VimeoUpload-iOSTests */ = { isa = PBXGroup; children = ( @@ -981,6 +983,18 @@ path = "../Target Support Files/VimeoNetworking"; sourceTree = ""; }; + C2D2092A0B5B67D0F34937D00026E6EC /* iOS */ = { + isa = PBXGroup; + children = ( + DDBDFFA351A30960D21939E28DC60212 /* CoreGraphics.framework */, + E72265D742A839587BC23CD8BD6AF14D /* Foundation.framework */, + D7729272B0191CF0AEEC273F9FF8FFC1 /* MobileCoreServices.framework */, + D90C6CE6DFFF0E79482EB6BEB9917B9D /* Security.framework */, + 8DAE9E29D14DFD809059EC3455D955F8 /* SystemConfiguration.framework */, + ); + name = iOS; + sourceTree = ""; + }; CEAE45069CFCC48961DD462C4CF3717A /* Reachability */ = { isa = PBXGroup; children = ( @@ -1009,7 +1023,7 @@ isa = PBXGroup; children = ( 5461D992F0D803F0F05DF72B2849301D /* AFNetworking.framework */, - 58ADEC1A744624280C424466F85276D6 /* iOS */, + C2D2092A0B5B67D0F34937D00026E6EC /* iOS */, ); name = Frameworks; sourceTree = ""; @@ -1035,27 +1049,27 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 155D10C569A39D79D0978C5417AAD601 /* Headers */ = { + 09D8A90993BFCD73EDA661FCA2493358 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4A5A50BC35B046280FF471A025C8F103 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */, + 8D1538471F2C35364D46EE098BC9F426 /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2372F640A80258E3B32EE4F49E3D78D0 /* Headers */ = { + 25FE0ED3E4046FB05741DBE1B82EAA5F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 7F7668339CCE57BC809523B5613E0BCF /* Pods-VimeoUpload-iOSTests-umbrella.h in Headers */, + 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 25FE0ED3E4046FB05741DBE1B82EAA5F /* Headers */ = { + 4AB5C6AE88C290E74BE94A528AF98DAE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 47A83B3FCA8F2D023C47AD1E90388C3C /* Pods-VimeoUpload-iOS-OldUpload-umbrella.h in Headers */, + 15606351AAE10A740FA83F707A743AC4 /* Pods-VimeoUpload-iOS-OldUploadTests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1196,6 +1210,24 @@ productReference = F0E3C679036E864BB4FCA1E4E08863D9 /* VimeoNetworking.framework */; productType = "com.apple.product-type.framework"; }; + 7BC6B6B05349082946AE006E84760048 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5F8268041F345F4C58E5A93AB671738D /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */; + buildPhases = ( + 54BD266D3930C2D9B3A93E01BA9485AA /* Sources */, + F42F29F6FC6D8CE0F21767BB561E6749 /* Frameworks */, + 4AB5C6AE88C290E74BE94A528AF98DAE /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 870019A37CF2B05DB96AD2B9FB7E8112 /* PBXTargetDependency */, + ); + name = "Pods-VimeoUpload-iOS-OldUploadTests"; + productName = "Pods-VimeoUpload-iOS-OldUploadTests"; + productReference = 84027987FF22C70AB94CB6DB9FB0CBD5 /* Pods_VimeoUpload_iOS_OldUploadTests.framework */; + productType = "com.apple.product-type.framework"; + }; 9ABE00A810B6AFE214900E3484571A39 /* Pods-VimeoUpload-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */; @@ -1215,23 +1247,6 @@ productReference = 1C6422F81EA10F0A3062FC248BE9659A /* Pods_VimeoUpload_iOS.framework */; productType = "com.apple.product-type.framework"; }; - A358F2681BE306E8CB440C88A291B738 /* Pods-VimeoUpload-iOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0D4109D91B43D42CD4DEC15877BB90A8 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */; - buildPhases = ( - 48A6D60BFBEA60A2A5034A42587756EB /* Sources */, - 4E1872D4CC7325E3EF164880191FB61B /* Frameworks */, - 2372F640A80258E3B32EE4F49E3D78D0 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-VimeoUpload-iOSTests"; - productName = "Pods-VimeoUpload-iOSTests"; - productReference = 2CF57E9BE891732B80AD558CB436D205 /* Pods_VimeoUpload_iOSTests.framework */; - productType = "com.apple.product-type.framework"; - }; A8183FB71498E9B5AB9E8A5E06B4C4DA /* Pods-VimeoUpload */ = { isa = PBXNativeTarget; buildConfigurationList = 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */; @@ -1268,21 +1283,22 @@ productReference = EDF2918E5CB02CFC1ADE04F783E882E5 /* AFNetworking.framework */; productType = "com.apple.product-type.framework"; }; - D5108D4DE13C49C52958F9F8BD1BE167 /* Pods-VimeoUpload-iOS-OldUploadTests */ = { + E506237629A79E0A130B676329F7D233 /* Pods-VimeoUpload-iOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 2545BFAECF1D540C5259B454339817B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */; + buildConfigurationList = D74A5491AE8D35BC889BF72FE84777ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */; buildPhases = ( - 6A9AF494AD585120C0686C00825742C0 /* Sources */, - D1C2FB3CCE8647049179BAAD96B9928B /* Frameworks */, - 155D10C569A39D79D0978C5417AAD601 /* Headers */, + CAEE5E688CF436D65471D644D1739023 /* Sources */, + FD7C1E955F433AD681D32DBB2F5826A3 /* Frameworks */, + 09D8A90993BFCD73EDA661FCA2493358 /* Headers */, ); buildRules = ( ); dependencies = ( + 2C203BDA52334322791C6A61DB7ADDBC /* PBXTargetDependency */, ); - name = "Pods-VimeoUpload-iOS-OldUploadTests"; - productName = "Pods-VimeoUpload-iOS-OldUploadTests"; - productReference = 84027987FF22C70AB94CB6DB9FB0CBD5 /* Pods_VimeoUpload_iOS_OldUploadTests.framework */; + name = "Pods-VimeoUpload-iOSTests"; + productName = "Pods-VimeoUpload-iOSTests"; + productReference = 2CF57E9BE891732B80AD558CB436D205 /* Pods_VimeoUpload_iOSTests.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -1310,8 +1326,8 @@ A8183FB71498E9B5AB9E8A5E06B4C4DA /* Pods-VimeoUpload */, 9ABE00A810B6AFE214900E3484571A39 /* Pods-VimeoUpload-iOS */, 007473F5B3F53CD3EEA4CABB3BD4C070 /* Pods-VimeoUpload-iOS-OldUpload */, - D5108D4DE13C49C52958F9F8BD1BE167 /* Pods-VimeoUpload-iOS-OldUploadTests */, - A358F2681BE306E8CB440C88A291B738 /* Pods-VimeoUpload-iOSTests */, + 7BC6B6B05349082946AE006E84760048 /* Pods-VimeoUpload-iOS-OldUploadTests */, + E506237629A79E0A130B676329F7D233 /* Pods-VimeoUpload-iOSTests */, 119F92C3FCFD322E8CA53B254AE9B6EA /* VimeoNetworking */, ); }; @@ -1441,11 +1457,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 48A6D60BFBEA60A2A5034A42587756EB /* Sources */ = { + 54BD266D3930C2D9B3A93E01BA9485AA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CF1A8B5A81D3363C5152C2070605E3FA /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, + B921B743C1F273406F64ABEDB7AF9400 /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1472,27 +1488,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6A9AF494AD585120C0686C00825742C0 /* Sources */ = { + 8896B3EA11AC27D3B4CE241AA6BE1F33 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 41056CE5FE3FF5AEB88B9F37047F717A /* Pods-VimeoUpload-iOS-OldUploadTests-dummy.m in Sources */, + 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8896B3EA11AC27D3B4CE241AA6BE1F33 /* Sources */ = { + 9BFD3C96C2F65BD321A79B59A5552580 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 687E4C8F5F2ECDB2B595746B57C61B94 /* Pods-VimeoUpload-iOS-OldUpload-dummy.m in Sources */, + 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9BFD3C96C2F65BD321A79B59A5552580 /* Sources */ = { + CAEE5E688CF436D65471D644D1739023 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3AF116B17421EFBBFF9847259CFFC2B3 /* Pods-VimeoUpload-dummy.m in Sources */, + 30D3D5470DED1FF2B24DFE656D46F088 /* Pods-VimeoUpload-iOSTests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1519,6 +1535,12 @@ target = 119F92C3FCFD322E8CA53B254AE9B6EA /* VimeoNetworking */; targetProxy = 6B756E77C033DC75BFC0583EB2CA55F9 /* PBXContainerItemProxy */; }; + 2C203BDA52334322791C6A61DB7ADDBC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-VimeoUpload-iOS"; + target = 9ABE00A810B6AFE214900E3484571A39 /* Pods-VimeoUpload-iOS */; + targetProxy = F4716F7EEF30FEC980B19631440BDCEC /* PBXContainerItemProxy */; + }; 3ED8136B1E3DCCB23819DA2C399B53E2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = VimeoNetworking; @@ -1531,6 +1553,12 @@ target = CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */; targetProxy = 660A7C617140ECDFDE55BE458267EB47 /* PBXContainerItemProxy */; }; + 870019A37CF2B05DB96AD2B9FB7E8112 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-VimeoUpload-iOS-OldUpload"; + target = 007473F5B3F53CD3EEA4CABB3BD4C070 /* Pods-VimeoUpload-iOS-OldUpload */; + targetProxy = C1B07E8A6BB52E5A23F0C9ABD7F591F1 /* PBXContainerItemProxy */; + }; C7DBCFC7883074C8AA163F2499A5F5DD /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = VimeoNetworking; @@ -1552,7 +1580,103 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */ = { + 0723B219761616DD95B40679EA370CA6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 1EE19F5DD95931924296F637BF18BD8F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 3BF016649078803BD1067092459084D3 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */; buildSettings = { @@ -1571,9 +1695,11 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_MODULE_NAME = AFNetworking; PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -1582,10 +1708,11 @@ }; name = Release; }; - 4847B57B4A65C23778D7CB43055459C7 /* Debug */ = { + 498F7CBBD1A3DCF3E59DA8A3AFA9B8F8 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = DDC16D853DAC48485B03A7FEB7485BAC /* Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1605,7 +1732,7 @@ OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1614,10 +1741,11 @@ }; name = Debug; }; - 7F525E5C9E7655710D00B417733FF93A /* Release */ = { + 4B84AB678E6C15463777AEB23C489E6B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; + baseConfigurationReference = 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1627,31 +1755,32 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 887401EF06F31C5449153BE7B7801D96 /* Debug */ = { + 63A5E597442918360C38B5F50B567060 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; + baseConfigurationReference = B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1661,28 +1790,32 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - PRODUCT_NAME = VimeoNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 96953B0A688C8F1B9D5A885629BAD093 /* Release */ = { + 67386F0566A8CF1A982501F9DA8B3411 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */; + baseConfigurationReference = EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1692,31 +1825,32 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 97E7263EC7910334B64B17C51EC21E8F /* Release */ = { + 8D410930EE24DE65DC781EC22F3349A0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B9E707DCE76297154377405C59ABC4F0 /* Pods-VimeoUpload.release.xcconfig */; + baseConfigurationReference = AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1736,83 +1870,22 @@ OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; - }; - 991D2ACF36318340024E3F7ACF7FB825 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; name = Debug; }; - A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */ = { + 91A9903111659D9D0EFD74E596EAFA25 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EEFA41EE996C8611C4A19F86061608E7 /* Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig */; + baseConfigurationReference = 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1822,31 +1895,31 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUpload; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - AC4A9B891556FD0225D15F5278786405 /* Release */ = { + 99C0C8FA786AADA05408FBE428F31AF2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; + baseConfigurationReference = 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1856,17 +1929,19 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; - PRODUCT_NAME = VimeoNetworking; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1874,10 +1949,11 @@ }; name = Release; }; - B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */ = { + B99F908BFC2327190809D37087345A9B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 529DFAF91FFD13244AB22C540723EF06 /* Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig */; + baseConfigurationReference = 0C55E963668441AF0A84D56BE0763691 /* Pods-VimeoUpload-iOS-OldUpload.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1887,19 +1963,20 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS_OldUploadTests; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1907,9 +1984,9 @@ }; name = Release; }; - B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */ = { + BB6AF2E09454440A6B94D5DA5DEC397C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AA0EE93C62DBFD353E86F429715D0E8A /* Pods-VimeoUpload.debug.xcconfig */; + baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1920,28 +1997,26 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_MODULE_NAME = VimeoNetworking; + PRODUCT_NAME = VimeoNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - B74D3C7ABDBC926B683234C5B86E043F /* Debug */ = { + C07345BD0EF916BF089FE1EF8DD6901D /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 6D9E2B78FA477FD2DC06D244EFF1172F /* AFNetworking.xcconfig */; buildSettings = { @@ -1960,9 +2035,11 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/AFNetworking/AFNetworking.modulemap"; + PRODUCT_MODULE_NAME = AFNetworking; PRODUCT_NAME = AFNetworking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -1970,10 +2047,44 @@ }; name = Debug; }; - CD0AF168E1330906C7302C8513242FE4 /* Debug */ = { + C8375DF10ACCB6F910C290F2C7F0481C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 133CD2F3E29DDF713318E84B2153F4C3 /* Pods-VimeoUpload-iOS.debug.xcconfig */; + baseConfigurationReference = A136B115C9B8C37D0A5C9201FAB171BF /* VimeoNetworking.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/VimeoNetworking/VimeoNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/VimeoNetworking/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/VimeoNetworking/VimeoNetworking.modulemap"; + PRODUCT_MODULE_NAME = VimeoNetworking; + PRODUCT_NAME = VimeoNetworking; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D8841E4F7B05260238C7A45CBEE96CF7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BB9CD7C1F4049E75077274C6DCC81113 /* Pods-VimeoUpload-iOS.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1993,18 +2104,18 @@ OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOS; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - DA03565BE765DB55C6448FB363A44481 /* Release */ = { + F4568DEE257655D290C2B9CEAB37C934 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -2036,6 +2147,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -2056,148 +2168,82 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; }; name = Release; }; - E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E5F940FACE162064BA249F79D785233E /* Pods-VimeoUpload-iOSTests.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOSTests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F042D3877BC9E4C7C19D93921E6650DE /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3A30721CD46AC03D34457EE5B65B89B5 /* Pods-VimeoUpload-iOSTests.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_VimeoUpload_iOSTests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0D4109D91B43D42CD4DEC15877BB90A8 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */ = { + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - E0C9F5B2B4F9B7F0C36064A81309EBB0 /* Debug */, - F042D3877BC9E4C7C19D93921E6650DE /* Release */, + 1EE19F5DD95931924296F637BF18BD8F /* Debug */, + F4568DEE257655D290C2B9CEAB37C934 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2545BFAECF1D540C5259B454339817B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */ = { + 31E01BC98C827BD8A78F94173CDCC418 /* Build configuration list for PBXNativeTarget "AFNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4847B57B4A65C23778D7CB43055459C7 /* Debug */, - B4CCDB91F9EE79F88ADF1B7E40A41375 /* Release */, + C07345BD0EF916BF089FE1EF8DD6901D /* Debug */, + 3BF016649078803BD1067092459084D3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 991D2ACF36318340024E3F7ACF7FB825 /* Debug */, - DA03565BE765DB55C6448FB363A44481 /* Release */, + 4B84AB678E6C15463777AEB23C489E6B /* Debug */, + D8841E4F7B05260238C7A45CBEE96CF7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 31E01BC98C827BD8A78F94173CDCC418 /* Build configuration list for PBXNativeTarget "AFNetworking" */ = { + 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - B74D3C7ABDBC926B683234C5B86E043F /* Debug */, - 1EF89E489B60BF0809E7C0D0299C4D32 /* Release */, + 8D410930EE24DE65DC781EC22F3349A0 /* Debug */, + 63A5E597442918360C38B5F50B567060 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 353A98449FF9A34A53AEF70073FE6EBE /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS" */ = { + 5F8268041F345F4C58E5A93AB671738D /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUploadTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - CD0AF168E1330906C7302C8513242FE4 /* Debug */, - 96953B0A688C8F1B9D5A885629BAD093 /* Release */, + 498F7CBBD1A3DCF3E59DA8A3AFA9B8F8 /* Debug */, + 99C0C8FA786AADA05408FBE428F31AF2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 505A71250E38937722DF0019156081B4 /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload" */ = { + AD05C11A3D8E19B37EB76DD0591807ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUpload" */ = { isa = XCConfigurationList; buildConfigurations = ( - B5126F1C6D4CA9489321C0EDF0AB7086 /* Debug */, - 97E7263EC7910334B64B17C51EC21E8F /* Release */, + 67386F0566A8CF1A982501F9DA8B3411 /* Debug */, + B99F908BFC2327190809D37087345A9B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AD05C11A3D8E19B37EB76DD0591807ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOS-OldUpload" */ = { + BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - A4D310EEE8CCD62840E12D0A8C5C39DB /* Debug */, - 7F525E5C9E7655710D00B417733FF93A /* Release */, + BB6AF2E09454440A6B94D5DA5DEC397C /* Debug */, + C8375DF10ACCB6F910C290F2C7F0481C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BE2F436AE57C8FBA5EE060E460C52145 /* Build configuration list for PBXNativeTarget "VimeoNetworking" */ = { + D74A5491AE8D35BC889BF72FE84777ED /* Build configuration list for PBXNativeTarget "Pods-VimeoUpload-iOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 887401EF06F31C5449153BE7B7801D96 /* Debug */, - AC4A9B891556FD0225D15F5278786405 /* Release */, + 0723B219761616DD95B40679EA370CA6 /* Debug */, + 91A9903111659D9D0EFD74E596EAFA25 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig b/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig index 03d5266e..5a114d83 100644 --- a/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig +++ b/Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig @@ -1,9 +1,8 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/AFNetworking +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/AFNetworking PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh index afd10b33..88c7fb73 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,16 +138,17 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.debug.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUpload/Pods-VimeoUpload-iOS-OldUpload.release.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh index 0f29f13c..08e3eaac 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,6 +138,7 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.debug.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS-OldUploadTests/Pods-VimeoUpload-iOS-OldUploadTests.release.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh index afd10b33..88c7fb73 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,16 +138,17 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/VimeoNetworking/VimeoNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" + install_framework "${BUILT_PRODUCTS_DIR}/VimeoNetworking/VimeoNetworking.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.debug.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig index 011252ee..8581223e 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOS/Pods-VimeoUpload-iOS.release.xcconfig @@ -1,10 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh index 0f29f13c..08e3eaac 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -72,11 +117,19 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,6 +138,7 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.debug.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig index 364177a7..ab9b68c9 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload-iOSTests/Pods-VimeoUpload-iOSTests.release.xcconfig @@ -1,7 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh index 4602c68a..345301f2 100755 --- a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh +++ b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -21,6 +33,9 @@ case "${TARGETED_DEVICE_FAMILY}" in 3) TARGET_DEVICE_ARGS="--target-device tv" ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -41,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -71,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -85,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -95,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig index 467f54d7..51a06c7f 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.debug.xcconfig @@ -1,9 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig index 467f54d7..51a06c7f 100644 --- a/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig +++ b/Pods/Target Support Files/Pods-VimeoUpload/Pods-VimeoUpload.release.xcconfig @@ -1,9 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking/VimeoNetworking.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking/VimeoNetworking.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "VimeoNetworking" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/../.. PODS_ROOT = ${SRCROOT}/../../Pods diff --git a/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig b/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig index 4d397969..203a738f 100644 --- a/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig +++ b/Pods/Target Support Files/VimeoNetworking/VimeoNetworking.xcconfig @@ -1,10 +1,9 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/VimeoNetworking -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/VimeoNetworking +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/VimeoNetworking PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift index 6df23c58..2aa2c443 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift @@ -292,9 +292,9 @@ final public class AuthenticationController - parameter password: the new user's password - parameter completion: handler for authentication success or failure */ - public func join(withName name: String, email: String, password: String, completion: @escaping AuthenticationCompletion) + public func join(withName name: String, email: String, password: String, marketingOptIn: String, completion: @escaping AuthenticationCompletion) { - let request = AuthenticationRequest.joinRequest(withName: name, email: email, password: password, scopes: self.configuration.scopes) + let request = AuthenticationRequest.joinRequest(withName: name, email: email, password: password, marketingOptIn: marketingOptIn, scopes: self.configuration.scopes) self.authenticate(with: request, completion: completion) } @@ -320,9 +320,9 @@ final public class AuthenticationController - parameter facebookToken: token from facebook SDK - parameter completion: handler for authentication success or failure */ - public func facebookJoin(withToken facebookToken: String, completion: @escaping AuthenticationCompletion) + public func facebookJoin(withToken facebookToken: String, marketingOptIn: String, completion: @escaping AuthenticationCompletion) { - let request = AuthenticationRequest.joinFacebookRequest(withToken: facebookToken, scopes: self.configuration.scopes) + let request = AuthenticationRequest.joinFacebookRequest(withToken: facebookToken, marketingOptIn: marketingOptIn, scopes: self.configuration.scopes) self.authenticate(with: request, completion: completion) } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift index 5c4a19ce..ba28a149 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift @@ -40,6 +40,7 @@ private let TokenKey = "token" private let PinCodeKey = "user_code" private let DeviceCodeKey = "device_code" private let AccessTokenKey = "access_token" +private let MarketingOptIn = "marketing_opt_in" private let GrantTypeClientCredentials = "client_credentials" private let GrantTypeAuthorizationCode = "authorization_code" @@ -134,12 +135,13 @@ extension Request where ModelType: VIMAccount - returns: a new `Request` */ - static func joinRequest(withName name: String, email: String, password: String, scopes: [Scope]) -> Request + static func joinRequest(withName name: String, email: String, password: String, marketingOptIn: String, scopes: [Scope]) -> Request { let parameters = [ScopeKey: Scope.combine(scopes), DisplayNameKey: name, EmailKey: email, - PasswordKey: password] + PasswordKey: password, + MarketingOptIn: marketingOptIn] return Request(method: .POST, path: AuthenticationPathUsers, parameters: parameters) } @@ -169,10 +171,11 @@ extension Request where ModelType: VIMAccount - returns: a new `Request` */ - static func joinFacebookRequest(withToken facebookToken: String, scopes: [Scope]) -> Request + static func joinFacebookRequest(withToken facebookToken: String, marketingOptIn: String, scopes: [Scope]) -> Request { let parameters = [ScopeKey: Scope.combine(scopes), - TokenKey: facebookToken] + TokenKey: facebookToken, + MarketingOptIn: marketingOptIn] return Request(method: .POST, path: AuthenticationPathUsers, parameters: parameters) } From 65ab592f757ae8a7254e485b5b0aa111a289f612 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 24 May 2018 10:35:11 -0400 Subject: [PATCH 086/149] Properly query the Documents folder URL --- VimeoUpload/Upload/Extensions/NSURL+Upload.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/VimeoUpload/Upload/Extensions/NSURL+Upload.swift b/VimeoUpload/Upload/Extensions/NSURL+Upload.swift index a948998c..e577bc5a 100644 --- a/VimeoUpload/Upload/Extensions/NSURL+Upload.swift +++ b/VimeoUpload/Upload/Extensions/NSURL+Upload.swift @@ -60,7 +60,14 @@ public extension URL } else { - documentsURL = URL(string: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])! + do + { + documentsURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) + } + catch + { + fatalError("Failure: Documents folder does not exist.") + } } return documentsURL.appendingPathComponent("uploader").appendingPathComponent("videos") From 73c013a1900cbd1f880c3e61650d859c9208bac5 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 24 May 2018 11:56:03 -0400 Subject: [PATCH 087/149] Change arguments' names to `documentsFolderURL` --- .../Descriptor System/DescriptorManager.swift | 4 ++-- .../DescriptorManagerArchiver.swift | 8 ++++---- .../ReachableDescriptorManager.swift | 10 +++++----- .../Upload/Controllers/VideoDeletionManager.swift | 14 +++++++------- .../VideoDescriptorFailureTracker.swift | 14 +++++++------- VimeoUpload/VimeoUploader.swift | 4 ++-- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 9e12bf3c..050dc0e0 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,12 +70,12 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init(sessionManager: AFURLSessionManager, name: String, parentFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) + init(sessionManager: AFURLSessionManager, name: String, documentsFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) { self.sessionManager = sessionManager self.name = name self.delegate = delegate - self.archiver = DescriptorManagerArchiver(name: name, parentFolderURL: parentFolderURL) + self.archiver = DescriptorManagerArchiver(name: name, documentsFolderURL: documentsFolderURL) super.init() diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 6aff06d5..cee1425a 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -47,9 +47,9 @@ class DescriptorManagerArchiver // MARK: - Initialization - init(name: String, parentFolderURL: URL) + init(name: String, documentsFolderURL: URL) { - self.archiver = type(of: self).setupArchiver(name: name, parentFolderURL: parentFolderURL) + self.archiver = type(of: self).setupArchiver(name: name, documentsFolderURL: documentsFolderURL) self.descriptors = self.loadDescriptors() self.suspended = self.loadSuspendedState() @@ -57,9 +57,9 @@ class DescriptorManagerArchiver // MARK: Setup - Archiving - private static func setupArchiver(name: String, parentFolderURL: URL) -> KeyedArchiver? + private static func setupArchiver(name: String, documentsFolderURL: URL) -> KeyedArchiver? { - let typeFolderURL = parentFolderURL.appendingPathComponent(name) + let typeFolderURL = documentsFolderURL.appendingPathComponent(name) if FileManager.default.fileExists(atPath: typeFolderURL.path) == false { diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 82ec0d19..806adbdf 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -51,9 +51,9 @@ import VimeoNetworking /// /// - Parameters: /// - name: The name of the descriptor manager. - /// - parentFolderURL: The parent folder's URL of the folder in which - /// the upload description will be stored. That folder has the same - /// name as the first argument. + /// - documentsFolderURL: The Documents folder's URL of the folder in + /// which the upload description will be stored. That folder has the + /// same name as the first argument. /// - backgroundSessionIdentifier: An ID of the background upload /// session. /// - sharedContainerIdentifier: An ID of a shared sandbox. By default @@ -64,7 +64,7 @@ import VimeoNetworking /// - accessTokenProvider: A closure that provides an authenticated /// token. Any upload needs this token in order to work properly. /// - apiVersion: The API version to use. - public init(name: String, parentFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init(name: String, documentsFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager @@ -77,7 +77,7 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, parentFolderURL: parentFolderURL, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, name: name, documentsFolderURL: documentsFolderURL, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index d09fdf29..806b23e2 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -60,23 +60,23 @@ public class VideoDeletionManager: NSObject /// The folder is created with the following scheme: /// /// ``` - /// parentFolder/deletions + /// Documents/deletions /// ``` /// /// - Parameters: /// - sessionManager: A session manager object capable of deleting /// uploads. - /// - parentFolderURL: The parent folder's URL of the folder in which - /// deletion description will be stored. + /// - documentsFolderURL: The Documents folder's URL in which the folder + /// is located. /// - retryCount: The number of retries. The default value is `3`. - public init(sessionManager: VimeoSessionManager, parentFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount) + public init(sessionManager: VimeoSessionManager, documentsFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount) { self.sessionManager = sessionManager self.retryCount = retryCount self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount - self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, parentFolderURL: parentFolderURL) + self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, documentsFolderURL: documentsFolderURL) super.init() @@ -89,9 +89,9 @@ public class VideoDeletionManager: NSObject // MARK: Setup - private static func setupArchiver(name: String, parentFolderURL: URL) -> KeyedArchiver? + private static func setupArchiver(name: String, documentsFolderURL: URL) -> KeyedArchiver? { - let deletionsFolder = parentFolderURL.appendingPathComponent(name) + let deletionsFolder = documentsFolderURL.appendingPathComponent(name) let deletionsArchiveDirectory = deletionsFolder.appendingPathComponent(VideoDeletionManager.DeletionsArchiveKey) if FileManager.default.fileExists(atPath: deletionsArchiveDirectory.path) == false diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index e760d831..9bf5356c 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -50,16 +50,16 @@ import Foundation /// The folder is created with the following scheme: /// /// ``` - /// parentFolder/name + /// Documents/name /// ``` /// /// - Parameters: /// - name: The name of the uploader. - /// - parentFolderURL: The parent folder's URL of the folder in which - /// failed uploads' description will be stored. - public init(name: String, parentFolderURL: URL) + /// - documentsFolderURL: The Documents folder's URL in which the folder + /// is located. + public init(name: String, documentsFolderURL: URL) { - self.archiver = type(of: self).setupArchiver(name: name, parentFolderURL: parentFolderURL) + self.archiver = type(of: self).setupArchiver(name: name, documentsFolderURL: documentsFolderURL) super.init() @@ -70,9 +70,9 @@ import Foundation // MARK: Setup - private static func setupArchiver(name: String, parentFolderURL: URL) -> KeyedArchiver? + private static func setupArchiver(name: String, documentsFolderURL: URL) -> KeyedArchiver? { - let typeFolderURL = parentFolderURL.appendingPathComponent(name) + let typeFolderURL = documentsFolderURL.appendingPathComponent(name) if FileManager.default.fileExists(atPath: typeFolderURL.path) == false { diff --git a/VimeoUpload/VimeoUploader.swift b/VimeoUpload/VimeoUploader.swift index af34f80f..b52af000 100644 --- a/VimeoUpload/VimeoUploader.swift +++ b/VimeoUpload/VimeoUploader.swift @@ -59,9 +59,9 @@ open class VimeoUploader do { let documentsFolderURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) - self.deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager, parentFolderURL: documentsFolderURL) + self.deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager, documentsFolderURL: documentsFolderURL) - self.descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, parentFolderURL: documentsFolderURL, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) + self.descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, documentsFolderURL: documentsFolderURL, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } catch { From d9e70795d91034d5a4b297e0086bbd41776ee631 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 24 May 2018 15:06:57 -0400 Subject: [PATCH 088/149] Add documentation --- .../ExportSessionExportCreateVideoOperation.swift | 12 ++++++++++++ .../Async/ExportSessionExportOperation.swift | 8 ++++++++ .../Operations/Async/RetryUploadOperation.swift | 9 +++++++++ 3 files changed, 29 insertions(+) diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift index d0f9ebc3..91c0737c 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportCreateVideoOperation.swift @@ -60,6 +60,18 @@ open class ExportSessionExportCreateVideoOperation: ConcurrentOperation // MARK: - Initialization + /// Initializes an instance of `ExportSessionExportCreateVideoOperation`. + /// + /// - Parameters: + /// - phAsset: An instance of `PHAsset` representing a media that the + /// user picks from the Photos app. + /// - sessionManager: An instance of `VimeoSessionManager` that will + /// be used for creating an upload ticket. + /// - videoSettings: An instance of `VideoSettings` representing the + /// title, description, and privacy option that the user has edited. + /// - documentsFolderURL: An URL pointing to a Documents folder; + /// default to `nil`. For third-party use, this argument should not be + /// filled. public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, videoSettings: VideoSettings? = nil, documentsFolderURL: URL? = nil) { self.phAsset = phAsset diff --git a/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift index b404bfe9..586a8341 100644 --- a/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/ExportSessionExportOperation.swift @@ -54,6 +54,14 @@ open class ExportSessionExportOperation: ConcurrentOperation private let documentsFolderURL: URL? + /// Initializes an instance of `ExportSessionExportOperation`. + /// + /// - Parameters: + /// - phAsset: An instance of `PHAsset` representing a media that the + /// user picks from the Photos app. + /// - documentsFolderURL: An URL pointing to a Documents folder; + /// default to `nil`. For third-party use, this argument should not be + /// filled. public init(phAsset: PHAsset, documentsFolderURL: URL? = nil) { self.phAsset = phAsset diff --git a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift index 8a92818c..d255e62e 100644 --- a/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift +++ b/VimeoUpload/Upload/Operations/Async/RetryUploadOperation.swift @@ -59,6 +59,15 @@ public class RetryUploadOperation: ConcurrentOperation // MARK: - Initialization + /// Initializes an instance of `ExportSessionExportOperation`. + /// + /// - Parameters: + /// - phAsset: An instance of `PHAsset` representing a media that the + /// user picks from the Photos app. + /// - sessionManager: An instance of `VimeoSessionManager`. + /// - documentsFolderURL: An URL pointing to a Documents folder; + /// default to `nil`. For third-party use, this argument should not be + /// filled. public init(phAsset: PHAsset, sessionManager: VimeoSessionManager, documentsFolderURL: URL? = nil) { self.phAsset = phAsset From dd7b01bb80376911903352233bc3ab7831f57c1e Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 29 May 2018 18:38:21 -0400 Subject: [PATCH 089/149] Make descriptor system failable --- .../BaseCameraRollViewController.swift | 2 +- .../VimeoUpload-iOS-OldUpload/AppDelegate.swift | 7 +++++-- .../Cells/UploadCell.swift | 4 ++-- .../OldVimeoUploader.swift | 2 +- .../ViewControllers/CameraRollViewController.swift | 2 +- .../VideoSettingsViewController.swift | 2 +- .../VimeoUpload-iOS/AppDelegate.swift | 7 +++++-- .../VimeoUpload-iOS/Cells/VideoCell.swift | 2 +- .../VimeoUpload-iOS/NewVimeoUploader.swift | 2 +- .../ViewControllers/CameraRollViewController.swift | 2 +- .../ViewControllers/MyVideosViewController.swift | 14 +++++++++++--- .../VideoSettingsViewController.swift | 12 ++++++++---- .../Descriptor System/DescriptorManager.swift | 10 ++++++++-- .../DescriptorManagerArchiver.swift | 9 +++++++-- .../ReachableDescriptorManager.swift | 2 +- VimeoUpload/VimeoUploader.swift | 13 +++++++++---- 16 files changed, 63 insertions(+), 29 deletions(-) diff --git a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift index 7573108b..4d99d539 100644 --- a/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift +++ b/Examples/VimeoUpload+Demos/ViewControllers/BaseCameraRollViewController.swift @@ -36,7 +36,7 @@ class BaseCameraRollViewController: UIViewController, UICollectionViewDataSource static let NibName = "BaseCameraRollViewController" private static let CollectionViewSpacing: CGFloat = 2 - var sessionManager: VimeoSessionManager! + var sessionManager: VimeoSessionManager? // MARK: diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift index c08f25c1..904f2950 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/AppDelegate.swift @@ -36,7 +36,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { AFNetworkReachabilityManager.shared().startMonitoring() - OldVimeoUploader.sharedInstance.applicationDidFinishLaunching() // Ensure init is called on launch + OldVimeoUploader.sharedInstance?.applicationDidFinishLaunching() // Ensure init is called on launch let settings = UIUserNotificationSettings(types: .alert, categories: nil) application.registerUserNotificationSettings(settings) @@ -66,7 +66,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { - let descriptorManager = OldVimeoUploader.sharedInstance.descriptorManager + guard let descriptorManager = OldVimeoUploader.sharedInstance?.descriptorManager else + { + return + } if descriptorManager.canHandleEventsForBackgroundURLSession(withIdentifier: identifier) { diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/Cells/UploadCell.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/Cells/UploadCell.swift index 2ed88626..1a844f28 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/Cells/UploadCell.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/Cells/UploadCell.swift @@ -78,7 +78,7 @@ class UploadCell: UITableViewCell { if let assetIdentifier = self.assetIdentifier { - self.descriptor = OldVimeoUploader.sharedInstance.descriptor(for: assetIdentifier) + self.descriptor = OldVimeoUploader.sharedInstance?.descriptor(for: assetIdentifier) } } } @@ -114,7 +114,7 @@ class UploadCell: UITableViewCell { if let descriptor = self.descriptor { - OldVimeoUploader.sharedInstance.cancelUpload(descriptor: descriptor) + OldVimeoUploader.sharedInstance?.cancelUpload(descriptor: descriptor) } } diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift index f9cf5b7c..73d54e1b 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/OldVimeoUploader.swift @@ -41,7 +41,7 @@ class OldVimeoUploader: VimeoUploader // MARK: - Initialization - init(backgroundSessionIdentifier: String, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) + init?(backgroundSessionIdentifier: String, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) { super.init(backgroundSessionIdentifier: backgroundSessionIdentifier, accessTokenProvider: accessTokenProvider, apiVersion: OldVimeoUploader.APIVersionString) } diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift index c74ac073..d63cdb64 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/CameraRollViewController.swift @@ -34,7 +34,7 @@ class CameraRollViewController: BaseCameraRollViewController override func viewDidLoad() { - self.sessionManager = OldVimeoUploader.sharedInstance.foregroundSessionManager + self.sessionManager = OldVimeoUploader.sharedInstance?.foregroundSessionManager super.viewDidLoad() diff --git a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift index 28e4e7f8..ae9b9186 100644 --- a/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload/ViewControllers/VideoSettingsViewController.swift @@ -159,7 +159,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate let descriptor = OldUploadDescriptor(url: url, videoSettings: self.videoSettings) descriptor.identifier = assetIdentifier - OldVimeoUploader.sharedInstance.uploadVideo(descriptor: descriptor) + OldVimeoUploader.sharedInstance?.uploadVideo(descriptor: descriptor) } // MARK: Actions diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift index e67f5ac1..b559a5a5 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/AppDelegate.swift @@ -37,7 +37,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate NSKeyedUnarchiver.setLegacyClassNameMigrations() AFNetworkReachabilityManager.shared().startMonitoring() - NewVimeoUploader.sharedInstance.applicationDidFinishLaunching() // Ensure init is called on launch + NewVimeoUploader.sharedInstance?.applicationDidFinishLaunching() // Ensure init is called on launch let settings = UIUserNotificationSettings(types: .alert, categories: nil) application.registerUserNotificationSettings(settings) @@ -55,7 +55,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { - let descriptorManager = NewVimeoUploader.sharedInstance.descriptorManager + guard let descriptorManager = NewVimeoUploader.sharedInstance?.descriptorManager else + { + return + } if descriptorManager.canHandleEventsForBackgroundURLSession(withIdentifier: identifier) { diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Cells/VideoCell.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Cells/VideoCell.swift index 33176c7c..e0460eb0 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Cells/VideoCell.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Cells/VideoCell.swift @@ -91,7 +91,7 @@ class VideoCell: UITableViewCell { self.setupImageView(video: video) self.setupStatusLabel(video: video) - self.descriptor = NewVimeoUploader.sharedInstance.descriptorForVideo(videoUri: uri) + self.descriptor = NewVimeoUploader.sharedInstance?.descriptorForVideo(videoUri: uri) } } } diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift index b13a51eb..8254f1b2 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/NewVimeoUploader.swift @@ -40,7 +40,7 @@ class NewVimeoUploader: VimeoUploader // MARK: - Initialization - init(backgroundSessionIdentifier: String, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) + init?(backgroundSessionIdentifier: String, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider) { super.init(backgroundSessionIdentifier: backgroundSessionIdentifier, accessTokenProvider: accessTokenProvider, apiVersion: NewVimeoUploader.APIVersionString) } diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift index f70c1956..f488efb4 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/CameraRollViewController.swift @@ -32,7 +32,7 @@ class CameraRollViewController: BaseCameraRollViewController { override func viewDidLoad() { - self.sessionManager = NewVimeoUploader.sharedInstance.foregroundSessionManager + self.sessionManager = NewVimeoUploader.sharedInstance?.foregroundSessionManager super.viewDidLoad() } diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift index e387a790..7d899e10 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/MyVideosViewController.swift @@ -81,7 +81,12 @@ class MyVideosViewController: UIViewController, UITableViewDataSource, UITableVi private func setupVideoRefreshManager() { - self.videoRefreshManager = VideoRefreshManager(sessionManager: NewVimeoUploader.sharedInstance.foregroundSessionManager, delegate: self) + guard let sessionManager = NewVimeoUploader.sharedInstance?.foregroundSessionManager else + { + return + } + + self.videoRefreshManager = VideoRefreshManager(sessionManager: sessionManager, delegate: self) } // MARK: Notifications @@ -145,7 +150,7 @@ class MyVideosViewController: UIViewController, UITableViewDataSource, UITableVi func cellDidDeleteVideoWithUri(cell: VideoCell, videoUri: String) { - NewVimeoUploader.sharedInstance.cancelUpload(videoUri: videoUri) + NewVimeoUploader.sharedInstance?.cancelUpload(videoUri: videoUri) if let indexPath = self.indexPath(for: videoUri) { @@ -190,7 +195,10 @@ class MyVideosViewController: UIViewController, UITableViewDataSource, UITableVi { self.refreshControl?.beginRefreshing() - let sessionManager = NewVimeoUploader.sharedInstance.foregroundSessionManager + guard let sessionManager = NewVimeoUploader.sharedInstance?.foregroundSessionManager else + { + return + } do { diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift index a130988e..19ffb372 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/ViewControllers/VideoSettingsViewController.swift @@ -130,7 +130,11 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate private func setupAndStartOperation() { - let sessionManager = NewVimeoUploader.sharedInstance.foregroundSessionManager + guard let sessionManager = NewVimeoUploader.sharedInstance?.foregroundSessionManager else + { + return + } + let videoSettings = self.videoSettings let phAsset = self.asset.phAsset @@ -203,7 +207,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate let descriptor = UploadDescriptor(url: url, video: video) descriptor.identifier = assetIdentifier - NewVimeoUploader.sharedInstance.uploadVideo(descriptor: descriptor) + NewVimeoUploader.sharedInstance?.uploadVideo(descriptor: descriptor) } // MARK: Actions @@ -216,7 +220,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate if let videoUri = self.video?.uri { - NewVimeoUploader.sharedInstance.cancelUpload(videoUri: videoUri) + NewVimeoUploader.sharedInstance?.cancelUpload(videoUri: videoUri) } } @@ -318,7 +322,7 @@ class VideoSettingsViewController: UIViewController, UITextFieldDelegate do { - self.task = try NewVimeoUploader.sharedInstance.foregroundSessionManager.videoSettingsDataTask(videoUri: videoURI, videoSettings: videoSettings, completionHandler: { [weak self] (video, error) -> Void in + self.task = try NewVimeoUploader.sharedInstance?.foregroundSessionManager.videoSettingsDataTask(videoUri: videoURI, videoSettings: videoSettings, completionHandler: { [weak self] (video, error) -> Void in self?.task = nil diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 050dc0e0..a4ee42b1 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,12 +70,18 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init(sessionManager: AFURLSessionManager, name: String, documentsFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) + init?(sessionManager: AFURLSessionManager, name: String, documentsFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) { self.sessionManager = sessionManager self.name = name self.delegate = delegate - self.archiver = DescriptorManagerArchiver(name: name, documentsFolderURL: documentsFolderURL) + + guard let archiver = DescriptorManagerArchiver(name: name, documentsFolderURL: documentsFolderURL) else + { + return nil + } + + self.archiver = archiver super.init() diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index cee1425a..effb0577 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -47,9 +47,14 @@ class DescriptorManagerArchiver // MARK: - Initialization - init(name: String, documentsFolderURL: URL) + init?(name: String, documentsFolderURL: URL) { - self.archiver = type(of: self).setupArchiver(name: name, documentsFolderURL: documentsFolderURL) + guard let archiver = type(of: self).setupArchiver(name: name, documentsFolderURL: documentsFolderURL) else + { + return nil + } + + self.archiver = archiver self.descriptors = self.loadDescriptors() self.suspended = self.loadSuspendedState() diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 806adbdf..039189e0 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -64,7 +64,7 @@ import VimeoNetworking /// - accessTokenProvider: A closure that provides an authenticated /// token. Any upload needs this token in order to work properly. /// - apiVersion: The API version to use. - public init(name: String, documentsFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init?(name: String, documentsFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager diff --git a/VimeoUpload/VimeoUploader.swift b/VimeoUpload/VimeoUploader.swift index b52af000..4eace4eb 100644 --- a/VimeoUpload/VimeoUploader.swift +++ b/VimeoUpload/VimeoUploader.swift @@ -45,14 +45,14 @@ open class VimeoUploader // MARK: - Initialization - public convenience init(backgroundSessionIdentifier: String, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessToken: String, apiVersion: String) + public convenience init?(backgroundSessionIdentifier: String, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessToken: String, apiVersion: String) { self.init(backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: { () -> String? in return accessToken }, apiVersion: apiVersion) } - public init(backgroundSessionIdentifier: String, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init?(backgroundSessionIdentifier: String, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { self.foregroundSessionManager = VimeoSessionManager.defaultSessionManager(baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) @@ -61,11 +61,16 @@ open class VimeoUploader let documentsFolderURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) self.deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager, documentsFolderURL: documentsFolderURL) - self.descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, documentsFolderURL: documentsFolderURL, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) + guard let descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, documentsFolderURL: documentsFolderURL, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) else + { + return nil + } + + self.descriptorManager = descriptorManager } catch { - fatalError("Failure: Documents folder not found") + return nil } } From 4001e7aaa0db0f84f227cdb887b32095fb2f4114 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 29 May 2018 18:45:21 -0400 Subject: [PATCH 090/149] Make key archiver non-optional --- .../Descriptor System/DescriptorManagerArchiver.swift | 8 ++++---- .../Descriptor System/ReachableDescriptorManager.swift | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index effb0577..67564e98 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -35,7 +35,7 @@ class DescriptorManagerArchiver // MARK: - private let archiver: KeyedArchiver? + private let archiver: KeyedArchiver private(set) var descriptors = Set() var suspended = false { @@ -83,17 +83,17 @@ class DescriptorManagerArchiver private func loadDescriptors() -> Set { - return self.archiver?.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() + return self.archiver.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() } private func saveDescriptors() { - self.archiver?.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) + self.archiver.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) } private func loadSuspendedState() -> Bool { - return self.archiver?.loadObject(for: type(of: self).SuspendedArchiveKey) as? Bool ?? false + return self.archiver.loadObject(for: type(of: self).SuspendedArchiveKey) as? Bool ?? false } private func saveSuspendedState() diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 039189e0..b2e6d7f3 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -64,6 +64,7 @@ import VimeoNetworking /// - accessTokenProvider: A closure that provides an authenticated /// token. Any upload needs this token in order to work properly. /// - apiVersion: The API version to use. + /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. public init?(name: String, documentsFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) { let backgroundSessionManager: VimeoSessionManager From dd389d674d0e12c06ea42bc6fbc26563a7e58f57 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 30 May 2018 09:48:43 -0400 Subject: [PATCH 091/149] Remove optional --- VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 67564e98..3c802b79 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -98,7 +98,7 @@ class DescriptorManagerArchiver private func saveSuspendedState() { - self.archiver?.save(object: self.suspended, key: type(of: self).SuspendedArchiveKey) + self.archiver.save(object: self.suspended, key: type(of: self).SuspendedArchiveKey) } // MARK: Public API From b61f97f49ea695fe075a44aa36e4d3e996ad5017 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 30 May 2018 15:55:27 -0400 Subject: [PATCH 092/149] Move the guard to top of the function --- VimeoUpload/Descriptor System/DescriptorManager.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index a4ee42b1..49c1100e 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -72,15 +72,15 @@ open class DescriptorManager: NSObject init?(sessionManager: AFURLSessionManager, name: String, documentsFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) { - self.sessionManager = sessionManager - self.name = name - self.delegate = delegate - guard let archiver = DescriptorManagerArchiver(name: name, documentsFolderURL: documentsFolderURL) else { return nil } + self.sessionManager = sessionManager + self.name = name + self.delegate = delegate + self.archiver = archiver super.init() From ca21a69edf731df9bbdcec4b6ad81768830c7ea3 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 31 May 2018 15:12:45 -0400 Subject: [PATCH 093/149] Make failure tracker and deletion manager failable --- .../Controllers/VideoDeletionManager.swift | 16 +++++++++++----- .../VideoDescriptorFailureTracker.swift | 15 ++++++++++----- VimeoUpload/VimeoUploader.swift | 5 +++-- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index f236eef6..4eadb8a5 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -42,7 +42,7 @@ public class VideoDeletionManager: NSObject private var deletions: [VideoUri: Int] = [:] private let operationQueue: OperationQueue - private let archiver: KeyedArchiver? + private let archiver: KeyedArchiver private let shouldLoadArchive: Bool // MARK: - Initialization @@ -70,15 +70,21 @@ public class VideoDeletionManager: NSObject /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - retryCount: The number of retries. The default value is `3`. - public init(sessionManager: VimeoSessionManager, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount) + public init?(sessionManager: VimeoSessionManager, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount) { + guard let archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else + { + return nil + } + + self.archiver = archiver + self.sessionManager = sessionManager self.retryCount = retryCount self.shouldLoadArchive = shouldLoadArchive self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount - self.archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) super.init() @@ -120,7 +126,7 @@ public class VideoDeletionManager: NSObject return [:] } - if let deletions = self.archiver?.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] + if let deletions = self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] { return deletions } @@ -138,7 +144,7 @@ public class VideoDeletionManager: NSObject private func save() { - self.archiver?.save(object: self.deletions, key: type(of: self).DeletionsArchiveKey) + self.archiver.save(object: self.deletions, key: type(of: self).DeletionsArchiveKey) } // MARK: Public API diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 2182c3c2..0d38ca61 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -32,7 +32,7 @@ import Foundation // MARK: - private let archiver: KeyedArchiver? + private let archiver: KeyedArchiver private var failedDescriptors: [String: Descriptor] = [:] private let shouldLoadArchive: Bool @@ -58,9 +58,14 @@ import Foundation /// - name: The name of the uploader. /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. - public init(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL) + public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL) { - self.archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) + guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else + { + return nil + } + + self.archiver = archiver self.shouldLoadArchive = shouldLoadArchive @@ -99,12 +104,12 @@ import Foundation return [:] } - return self.archiver?.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] + return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] } private func save() { - self.archiver?.save(object: self.failedDescriptors, key: type(of: self).ArchiveKey) + self.archiver.save(object: self.failedDescriptors, key: type(of: self).ArchiveKey) } // MARK: Public API diff --git a/VimeoUpload/VimeoUploader.swift b/VimeoUpload/VimeoUploader.swift index 4eace4eb..dc6a0c8f 100644 --- a/VimeoUpload/VimeoUploader.swift +++ b/VimeoUpload/VimeoUploader.swift @@ -59,14 +59,15 @@ open class VimeoUploader do { let documentsFolderURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) - self.deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager, documentsFolderURL: documentsFolderURL) - guard let descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, documentsFolderURL: documentsFolderURL, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) else + guard let descriptorManager = ReachableDescriptorManager(name: type(of: self).Name, documentsFolderURL: documentsFolderURL, backgroundSessionIdentifier: backgroundSessionIdentifier, descriptorManagerDelegate: descriptorManagerDelegate, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion), + let deletionManager = VideoDeletionManager(sessionManager: self.foregroundSessionManager, documentsFolderURL: documentsFolderURL) else { return nil } self.descriptorManager = descriptorManager + self.deletionManager = deletionManager } catch { From 4ca79efcf8d9a8e71b78f80d0f31ddaf9550dd52 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 31 May 2018 15:30:46 -0400 Subject: [PATCH 094/149] Update documentation --- .../ReachableDescriptorManager.swift | 17 ++++++++++++++++- .../Controllers/VideoDeletionManager.swift | 14 +++++++++++++- .../VideoDescriptorFailureTracker.swift | 12 ++++++++++-- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index e2447297..c0f22d8a 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -51,6 +51,13 @@ import VimeoNetworking /// /// - Parameters: /// - name: The name of the descriptor manager. + /// - archivePrefix: The prefix of the archive file. You pass in the + /// prefix if you want to keep track of multiple archive files. By + /// default, it has the value of `nil`. + /// - shouldLoadArchive: A Boolean value that determines if the + /// descriptor manager should load descriptors from the archive file + /// upon instantiating. By default, this argument has the value of + /// `true`. /// - documentsFolderURL: The Documents folder's URL of the folder in /// which the upload description will be stored. That folder has the /// same name as the first argument. @@ -65,7 +72,15 @@ import VimeoNetworking /// token. Any upload needs this token in order to work properly. /// - apiVersion: The API version to use. /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. - public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, apiVersion: String) + public init?(name: String, + archivePrefix: String? = nil, + shouldLoadArchive: Bool = true, + documentsFolderURL: URL, + backgroundSessionIdentifier: String, + sharedContainerIdentifier: String? = nil, + descriptorManagerDelegate: DescriptorManagerDelegate? = nil, + accessTokenProvider: @escaping VimeoRequestSerializer.AccessTokenProvider, + apiVersion: String) { let backgroundSessionManager: VimeoSessionManager diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 4eadb8a5..8c981f4f 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -67,10 +67,22 @@ public class VideoDeletionManager: NSObject /// - Parameters: /// - sessionManager: A session manager object capable of deleting /// uploads. + /// - archivePrefix: The prefix of the archive file. You pass in the + /// prefix if you want to keep track of multiple archive files. By + /// default, it has the value of `nil`. + /// - shouldLoadArchive: A Boolean value that determines if the + /// descriptor manager should load descriptors from the archive file + /// upon instantiating. By default, this argument has the value of + /// `true`. /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - retryCount: The number of retries. The default value is `3`. - public init?(sessionManager: VimeoSessionManager, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount) + /// - Returns: `nil` if the keyed archiver cannot load deletions' archive. + public init?(sessionManager: VimeoSessionManager, + archivePrefix: String? = nil, + shouldLoadArchive: Bool = true, + documentsFolderURL: URL, + retryCount: Int = VideoDeletionManager.DefaultRetryCount) { guard let archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 0d38ca61..dfa859e9 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -46,7 +46,7 @@ import Foundation /// Initializes a descriptor failure tracker object. Upon creation, the /// object will attempt to create a folder to save the description of /// failed uploads if needed. If the folder already exists, it will - /// attempt to load that information into memory. + /// attempt to load that information into memory if desired. /// /// The folder is created with the following scheme: /// @@ -56,8 +56,16 @@ import Foundation /// /// - Parameters: /// - name: The name of the uploader. + /// - archivePrefix: The prefix of the archive file. You pass in the + /// prefix if you want to keep track of multiple archive files. By + /// default, it has the value of `nil`. + /// - shouldLoadArchive: A Boolean value that determines if the + /// descriptor manager should load descriptors from the archive file + /// upon instantiating. By default, this argument has the value of + /// `true`. /// - documentsFolderURL: The Documents folder's URL in which the folder - /// is located. + /// is located. + /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else From 108284d86ba514b1ed97fc79d536aa62f160d064 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 10:59:59 -0400 Subject: [PATCH 095/149] Add migration interface file --- .../VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 4 ++++ VimeoUpload/Extensions/UploadDescriptorMigrating.swift | 8 ++++++++ 2 files changed, 12 insertions(+) create mode 100644 VimeoUpload/Extensions/UploadDescriptorMigrating.swift diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index c6a40064..31625c7c 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 3EA4C84D209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; + 8E233B0D20C196C6002B6248 /* UploadDescriptorMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E233B0C20C196C6002B6248 /* UploadDescriptorMigrating.swift */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF40D4EC1CCE9CB600753ABA /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */; }; AF40D4F11CCE9CB600753ABA /* VimeoUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D4F01CCE9CB600753ABA /* VimeoUploadTests.swift */; }; @@ -87,6 +88,7 @@ 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; + 8E233B0C20C196C6002B6248 /* UploadDescriptorMigrating.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadDescriptorMigrating.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoUpload.h; sourceTree = ""; }; AF40D4E61CCE9CB600753ABA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -264,6 +266,7 @@ AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, + 8E233B0C20C196C6002B6248 /* UploadDescriptorMigrating.swift */, ); name = Extensions; path = ../../../VimeoUpload/Extensions; @@ -616,6 +619,7 @@ AF40D5781CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift in Sources */, AF40D5721CCE9DEB00753ABA /* BlockTypes.swift in Sources */, 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */, + 8E233B0D20C196C6002B6248 /* UploadDescriptorMigrating.swift in Sources */, AF40D56A1CCE9DEB00753ABA /* OldUploadRequest.swift in Sources */, AF40D57B1CCE9DEB00753ABA /* ExportOperation.swift in Sources */, AF40D55B1CCE9DEB00753ABA /* NSError+Extensions.swift in Sources */, diff --git a/VimeoUpload/Extensions/UploadDescriptorMigrating.swift b/VimeoUpload/Extensions/UploadDescriptorMigrating.swift new file mode 100644 index 00000000..1aa81475 --- /dev/null +++ b/VimeoUpload/Extensions/UploadDescriptorMigrating.swift @@ -0,0 +1,8 @@ +// +// UploadDescriptorMigrating.swift +// VimeoUpload +// +// Created by Nguyen, Van on 6/1/18. +// Copyright © 2018 Vimeo. All rights reserved. +// + From 849ce3d38f77f5ba36ad28b10587eb41c508bcac Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 11:12:28 -0400 Subject: [PATCH 096/149] Declare `UploadDescriptorMigrating` interface --- VimeoUpload/Extensions/UploadDescriptorMigrating.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/VimeoUpload/Extensions/UploadDescriptorMigrating.swift b/VimeoUpload/Extensions/UploadDescriptorMigrating.swift index 1aa81475..be379c40 100644 --- a/VimeoUpload/Extensions/UploadDescriptorMigrating.swift +++ b/VimeoUpload/Extensions/UploadDescriptorMigrating.swift @@ -6,3 +6,13 @@ // Copyright © 2018 Vimeo. All rights reserved. // +protocol UploadDescriptorMigrating +{ + init(appSandboxDocumentsFolderURL: URL) + + var archiveFileExists: Bool { get } + + func loadArchiveFile() -> Set + + func deleteArchiveFile() +} From e9590c697f8a214d2522fc0d9011f43c4a25ba36 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 11:14:58 -0400 Subject: [PATCH 097/149] Change the interface's name --- .../VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 8 ++++---- ...g.swift => AppSandboxUploadDescriptorsMigrating.swift} | 6 ++---- 2 files changed, 6 insertions(+), 8 deletions(-) rename VimeoUpload/Extensions/{UploadDescriptorMigrating.swift => AppSandboxUploadDescriptorsMigrating.swift} (66%) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index 31625c7c..cc17b4aa 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -16,7 +16,7 @@ 3EA4C84D209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; - 8E233B0D20C196C6002B6248 /* UploadDescriptorMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E233B0C20C196C6002B6248 /* UploadDescriptorMigrating.swift */; }; + 8E233B0D20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E233B0C20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF40D4EC1CCE9CB600753ABA /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */; }; AF40D4F11CCE9CB600753ABA /* VimeoUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D4F01CCE9CB600753ABA /* VimeoUploadTests.swift */; }; @@ -88,7 +88,7 @@ 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; - 8E233B0C20C196C6002B6248 /* UploadDescriptorMigrating.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadDescriptorMigrating.swift; sourceTree = ""; }; + 8E233B0C20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSandboxUploadDescriptorsMigrating.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoUpload.h; sourceTree = ""; }; AF40D4E61CCE9CB600753ABA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -266,7 +266,7 @@ AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, - 8E233B0C20C196C6002B6248 /* UploadDescriptorMigrating.swift */, + 8E233B0C20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift */, ); name = Extensions; path = ../../../VimeoUpload/Extensions; @@ -619,7 +619,7 @@ AF40D5781CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift in Sources */, AF40D5721CCE9DEB00753ABA /* BlockTypes.swift in Sources */, 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */, - 8E233B0D20C196C6002B6248 /* UploadDescriptorMigrating.swift in Sources */, + 8E233B0D20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift in Sources */, AF40D56A1CCE9DEB00753ABA /* OldUploadRequest.swift in Sources */, AF40D57B1CCE9DEB00753ABA /* ExportOperation.swift in Sources */, AF40D55B1CCE9DEB00753ABA /* NSError+Extensions.swift in Sources */, diff --git a/VimeoUpload/Extensions/UploadDescriptorMigrating.swift b/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift similarity index 66% rename from VimeoUpload/Extensions/UploadDescriptorMigrating.swift rename to VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift index be379c40..17947433 100644 --- a/VimeoUpload/Extensions/UploadDescriptorMigrating.swift +++ b/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift @@ -1,15 +1,13 @@ // -// UploadDescriptorMigrating.swift +// AppSandboxUploadDescriptorsMigrating.swift // VimeoUpload // // Created by Nguyen, Van on 6/1/18. // Copyright © 2018 Vimeo. All rights reserved. // -protocol UploadDescriptorMigrating +protocol AppSandboxUploadDescriptorsMigrating { - init(appSandboxDocumentsFolderURL: URL) - var archiveFileExists: Bool { get } func loadArchiveFile() -> Set From adf3d02b1f6e8d114b76eb55a501ce9fe310e207 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 11:16:39 -0400 Subject: [PATCH 098/149] Make the interface public --- .../Extensions/AppSandboxUploadDescriptorsMigrating.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift b/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift index 17947433..b2d040b3 100644 --- a/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift +++ b/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift @@ -6,7 +6,7 @@ // Copyright © 2018 Vimeo. All rights reserved. // -protocol AppSandboxUploadDescriptorsMigrating +public protocol AppSandboxUploadDescriptorsMigrating { var archiveFileExists: Bool { get } From e74c8ae9fcee626b6893c0db8897319172ac0ede Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 15:14:18 -0400 Subject: [PATCH 099/149] Make the migrator interface more generic --- .../AppSandboxUploadDescriptorsMigrating.swift | 16 ---------------- VimeoUpload/Extensions/ArchiveMigrating.swift | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift create mode 100644 VimeoUpload/Extensions/ArchiveMigrating.swift diff --git a/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift b/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift deleted file mode 100644 index b2d040b3..00000000 --- a/VimeoUpload/Extensions/AppSandboxUploadDescriptorsMigrating.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// AppSandboxUploadDescriptorsMigrating.swift -// VimeoUpload -// -// Created by Nguyen, Van on 6/1/18. -// Copyright © 2018 Vimeo. All rights reserved. -// - -public protocol AppSandboxUploadDescriptorsMigrating -{ - var archiveFileExists: Bool { get } - - func loadArchiveFile() -> Set - - func deleteArchiveFile() -} diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift new file mode 100644 index 00000000..788317bc --- /dev/null +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -0,0 +1,16 @@ +// +// ArchiveMigrating.swift +// VimeoUpload +// +// Created by Nguyen, Van on 6/1/18. +// Copyright © 2018 Vimeo. All rights reserved. +// + +public protocol ArchiveMigrating +{ + func archiveFileExists(relativeFilePath: String) -> Bool + + func loadArchiveFile(relativeFilePath: String) -> Any? + + func deleteArchiveFile(relativeFilePath: String) +} From 2c9f227a7e643f22d26a69d8603ff92fd7005296 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 15:57:40 -0400 Subject: [PATCH 100/149] Use migrator to load descriptors at old location --- .../DescriptorManagerArchiver.swift | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index d5d29491..b6f90a57 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -49,7 +49,7 @@ class DescriptorManagerArchiver // MARK: - Initialization - init?(name: String, archivePrefix: String?, shouldLoadArchive: Bool = true, documentsFolderURL: URL) + init?(name: String, archivePrefix: String?, shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -60,7 +60,7 @@ class DescriptorManagerArchiver self.shouldLoadArchive = shouldLoadArchive - self.descriptors = self.loadDescriptors() + self.descriptors = self.loadDescriptors(withMigrator: migrator, uploaderName: name) self.suspended = self.loadSuspendedState() } @@ -85,14 +85,35 @@ class DescriptorManagerArchiver return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func loadDescriptors() -> Set + private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, uploaderName: String) -> Set { guard self.shouldLoadArchive == true else { return Set() } - return self.archiver.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() + let descriptorsAtNewLocation = self.archiver.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() + + guard let migrator = migrator else + { + return descriptorsAtNewLocation + } + + let relativeFilePath = uploaderName + "/" + DescriptorManagerArchiver.DescriptorsArchiveKey + ".archive" + + guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else + { + return descriptorsAtNewLocation + } + + guard let descriptorsAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) as? Set else + { + return descriptorsAtNewLocation + } + + migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) + + return descriptorsAtOldLocation } private func saveDescriptors() From 5ac225bbe2fc931f0dde662224e1e71b8b559e12 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 16:50:14 -0400 Subject: [PATCH 101/149] Inject migrator into descriptor manager --- VimeoUpload/Descriptor System/DescriptorManager.swift | 4 ++-- .../Descriptor System/ReachableDescriptorManager.swift | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 03afaa2d..d037c25f 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,9 +70,9 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init?(sessionManager: AFURLSessionManager, name: String, archivePrefix: String?, shouldLoadArchive: Bool, documentsFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) + init?(sessionManager: AFURLSessionManager, name: String, archivePrefix: String?, shouldLoadArchive: Bool, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil, delegate: DescriptorManagerDelegate? = nil) { - guard let archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL) else + guard let archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, migrator: migrator) else { return nil } diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index c0f22d8a..a9a4b07e 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -76,6 +76,7 @@ import VimeoNetworking archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, + migrator: ArchiveMigrating? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, @@ -93,7 +94,7 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, migrator: migrator, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } From 5eae936f2ea55c96be82cdaa7dc743d15ef80a0c Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 17:09:40 -0400 Subject: [PATCH 102/149] Refactor generic code into a function --- .../DescriptorManagerArchiver.swift | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index b6f90a57..88da3aa1 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -92,28 +92,12 @@ class DescriptorManagerArchiver return Set() } - let descriptorsAtNewLocation = self.archiver.loadObject(for: type(of: self).DescriptorsArchiveKey) as? Set ?? Set() - - guard let migrator = migrator else - { - return descriptorsAtNewLocation - } - - let relativeFilePath = uploaderName + "/" + DescriptorManagerArchiver.DescriptorsArchiveKey + ".archive" - - guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else - { - return descriptorsAtNewLocation - } - - guard let descriptorsAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) as? Set else + guard let descriptors = self.value(withUploaderName: uploaderName, migrator: migrator, forKey: DescriptorManagerArchiver.DescriptorsArchiveKey) as? Set else { - return descriptorsAtNewLocation + return Set() } - migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) - - return descriptorsAtOldLocation + return descriptors } private func saveDescriptors() @@ -136,6 +120,32 @@ class DescriptorManagerArchiver self.archiver.save(object: self.suspended, key: type(of: self).SuspendedArchiveKey) } + private func value(withUploaderName uploaderName: String, migrator: ArchiveMigrating?, forKey key: String) -> Any? + { + let dataAtNewLocation = self.archiver.loadObject(for: key) + + guard let migrator = migrator else + { + return dataAtNewLocation + } + + let relativeFilePath = uploaderName + "/" + key + ".archive" + + guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else + { + return dataAtNewLocation + } + + guard let dataAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) else + { + return dataAtNewLocation + } + + migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) + + return dataAtOldLocation + } + // MARK: Public API func save() From 564b3d1fe768210dfee15b8e62d225faa0b118d6 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 1 Jun 2018 17:17:07 -0400 Subject: [PATCH 103/149] Migrate suspended state --- .../Descriptor System/DescriptorManagerArchiver.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 88da3aa1..363122e8 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -61,7 +61,7 @@ class DescriptorManagerArchiver self.shouldLoadArchive = shouldLoadArchive self.descriptors = self.loadDescriptors(withMigrator: migrator, uploaderName: name) - self.suspended = self.loadSuspendedState() + self.suspended = self.loadSuspendedState(withMigrator: migrator, uploaderName: name) } // MARK: Setup - Archiving @@ -105,14 +105,19 @@ class DescriptorManagerArchiver self.archiver.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) } - private func loadSuspendedState() -> Bool + private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, uploaderName: String) -> Bool { guard self.shouldLoadArchive == true else { return false } - return self.archiver.loadObject(for: type(of: self).SuspendedArchiveKey) as? Bool ?? false + guard let suspendedState = self.value(withUploaderName: uploaderName, migrator: migrator, forKey: DescriptorManagerArchiver.SuspendedArchiveKey) as? Bool else + { + return false + } + + return suspendedState } private func saveSuspendedState() From fbcb1bd0dcad8bfa7854d6db581298158e009e8d Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 11:19:28 -0400 Subject: [PATCH 104/149] Make deletions data optional --- .../Controllers/VideoDeletionManager.swift | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 8c981f4f..42a8af6f 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -40,7 +40,7 @@ public class VideoDeletionManager: NSObject // MARK: - private var deletions: [VideoUri: Int] = [:] + private var deletions: [VideoUri: Int]? private let operationQueue: OperationQueue private let archiver: KeyedArchiver private let shouldLoadArchive: Bool @@ -131,11 +131,11 @@ public class VideoDeletionManager: NSObject // MARK: Archiving - private func loadDeletions() -> [VideoUri: Int] + private func loadDeletions() -> [VideoUri: Int]? { guard self.shouldLoadArchive == true else { - return [:] + return nil } if let deletions = self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] @@ -143,12 +143,17 @@ public class VideoDeletionManager: NSObject return deletions } - return [:] + return nil } private func startDeletions() { - for (key, value) in self.deletions + guard let deletions = self.deletions else + { + return + } + + for (key, value) in deletions { self.deleteVideo(withURI: key, retryCount: value) } @@ -156,7 +161,12 @@ public class VideoDeletionManager: NSObject private func save() { - self.archiver.save(object: self.deletions, key: type(of: self).DeletionsArchiveKey) + guard let deletions = self.deletions else + { + return + } + + self.archiver.save(object: deletions, key: type(of: self).DeletionsArchiveKey) } // MARK: Public API @@ -170,7 +180,7 @@ public class VideoDeletionManager: NSObject private func deleteVideo(withURI uri: String, retryCount: Int) { - self.deletions[uri] = retryCount + self.deletions?[uri] = retryCount self.save() let operation = DeleteVideoOperation(sessionManager: self.sessionManager, videoUri: uri) @@ -192,26 +202,26 @@ public class VideoDeletionManager: NSObject { if let response = error.userInfo[AFNetworkingOperationFailingURLResponseErrorKey] as? HTTPURLResponse, response.statusCode == 404 { - strongSelf.deletions.removeValue(forKey: uri) // The video has already been deleted + strongSelf.deletions?.removeValue(forKey: uri) // The video has already been deleted strongSelf.save() return } - if let retryCount = strongSelf.deletions[uri], retryCount > 0 + if let retryCount = strongSelf.deletions?[uri], retryCount > 0 { let newRetryCount = retryCount - 1 strongSelf.deleteVideo(withURI: uri, retryCount: newRetryCount) // Decrement the retryCount and try again } else { - strongSelf.deletions.removeValue(forKey: uri) // We retried the required number of times, nothing more to do + strongSelf.deletions?.removeValue(forKey: uri) // We retried the required number of times, nothing more to do strongSelf.save() } } else { - strongSelf.deletions.removeValue(forKey: uri) + strongSelf.deletions?.removeValue(forKey: uri) strongSelf.save() } }) From 7c0db11447ef097336d3f3fa06237b046c68ba8f Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 14:01:39 -0400 Subject: [PATCH 105/149] Make descriptor dictionary optional --- .../VideoDescriptorFailureTracker.swift | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index dfa859e9..ab09c5bf 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -33,7 +33,7 @@ import Foundation // MARK: private let archiver: KeyedArchiver - private var failedDescriptors: [String: Descriptor] = [:] + private var failedDescriptors: [String: Descriptor]? private let shouldLoadArchive: Bool // MARK: - Initialization @@ -105,11 +105,11 @@ import Foundation return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func load() -> [String: Descriptor] + private func load() -> [String: Descriptor]? { guard self.shouldLoadArchive == true else { - return [:] + return nil } return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] @@ -117,20 +117,25 @@ import Foundation private func save() { - self.archiver.save(object: self.failedDescriptors, key: type(of: self).ArchiveKey) + guard let failedDescriptors = self.failedDescriptors else + { + return + } + + self.archiver.save(object: failedDescriptors, key: type(of: self).ArchiveKey) } // MARK: Public API public func removeAllFailures() { - self.failedDescriptors.removeAll() + self.failedDescriptors?.removeAll() self.save() } public func removeFailedDescriptor(for key: String) -> Descriptor? { - guard let descriptor = self.failedDescriptors.removeValue(forKey: key) else + guard let descriptor = self.failedDescriptors?.removeValue(forKey: key) else { return nil } @@ -142,7 +147,7 @@ import Foundation public func failedDescriptor(for key: String) -> Descriptor? { - return self.failedDescriptors[key] + return self.failedDescriptors?[key] } // MARK: Notifications @@ -166,7 +171,7 @@ import Foundation let key = descriptor.identifier, descriptor.error != nil { DispatchQueue.main.async { () -> Void in - self.failedDescriptors[key] = descriptor + self.failedDescriptors?[key] = descriptor self.save() } } From 496f2658b4c3fa7628917313b1abadb3fe649614 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 15:35:52 -0400 Subject: [PATCH 106/149] Add archive migrator protocol to the framework --- .../VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index cc17b4aa..b02291d6 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -16,7 +16,7 @@ 3EA4C84D209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */; }; 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; - 8E233B0D20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E233B0C20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift */; }; + 8E8F1F7D20CF05C40048E8BB /* ArchiveMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF40D4EC1CCE9CB600753ABA /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */; }; AF40D4F11CCE9CB600753ABA /* VimeoUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D4F01CCE9CB600753ABA /* VimeoUploadTests.swift */; }; @@ -88,7 +88,7 @@ 3EA4C84C209017FB009F3D9B /* VimeoRequestSerializer+SharedUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VimeoRequestSerializer+SharedUpload.swift"; sourceTree = ""; }; 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; - 8E233B0C20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSandboxUploadDescriptorsMigrating.swift; sourceTree = ""; }; + 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchiveMigrating.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoUpload.h; sourceTree = ""; }; AF40D4E61CCE9CB600753ABA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -263,10 +263,10 @@ AF40D5051CCE9DEB00753ABA /* Extensions */ = { isa = PBXGroup; children = ( + 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */, AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, - 8E233B0C20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift */, ); name = Extensions; path = ../../../VimeoUpload/Extensions; @@ -602,6 +602,7 @@ 3C53EC261D219C8500B7AA6D /* VimeoRequestSerializer+Thumbnail.swift in Sources */, AF40D56D1CCE9DEB00753ABA /* AFURLSessionManager+Upload.swift in Sources */, AF40D5551CCE9DEB00753ABA /* DescriptorManagerArchiver.swift in Sources */, + 8E8F1F7D20CF05C40048E8BB /* ArchiveMigrating.swift in Sources */, AF40D58E1CCE9DEB00753ABA /* VimeoUploader.swift in Sources */, AF40D56C1CCE9DEB00753ABA /* VideoDescriptorFailureTracker.swift in Sources */, AF40D56F1CCE9DEB00753ABA /* AVURLAsset+Extensions.swift in Sources */, @@ -619,7 +620,6 @@ AF40D5781CCE9DEB00753ABA /* VimeoSessionManager+OldUpload.swift in Sources */, AF40D5721CCE9DEB00753ABA /* BlockTypes.swift in Sources */, 3C53EC281D219C8500B7AA6D /* VimeoSessionManager+ThumbnailUpload.swift in Sources */, - 8E233B0D20C196C6002B6248 /* AppSandboxUploadDescriptorsMigrating.swift in Sources */, AF40D56A1CCE9DEB00753ABA /* OldUploadRequest.swift in Sources */, AF40D57B1CCE9DEB00753ABA /* ExportOperation.swift in Sources */, AF40D55B1CCE9DEB00753ABA /* NSError+Extensions.swift in Sources */, From eba3b9171a982523b8b773efd94b58f401bcd75e Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 16:30:21 -0400 Subject: [PATCH 107/149] Inject migrator object into failure tracker and deletion manager --- VimeoUpload/Upload/Controllers/VideoDeletionManager.swift | 7 ++++--- .../Descriptor System/VideoDescriptorFailureTracker.swift | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 42a8af6f..fe9d850a 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -82,7 +82,8 @@ public class VideoDeletionManager: NSObject archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, - retryCount: Int = VideoDeletionManager.DefaultRetryCount) + retryCount: Int = VideoDeletionManager.DefaultRetryCount, + migrator: ArchiveMigrating? = nil) { guard let archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -103,7 +104,7 @@ public class VideoDeletionManager: NSObject self.addObservers() self.reachabilityDidChange(nil) // Set suspended state - self.deletions = self.loadDeletions() + self.deletions = self.loadDeletions(withMigrator: migrator) self.startDeletions() } @@ -131,7 +132,7 @@ public class VideoDeletionManager: NSObject // MARK: Archiving - private func loadDeletions() -> [VideoUri: Int]? + private func loadDeletions(withMigrator migrator: ArchiveMigrating?) -> [VideoUri: Int]? { guard self.shouldLoadArchive == true else { diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index ab09c5bf..7832106f 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -66,7 +66,7 @@ import Foundation /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. - public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL) + public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -79,7 +79,7 @@ import Foundation super.init() - self.failedDescriptors = self.load() + self.failedDescriptors = self.load(withMigrator: migrator) self.addObservers() } @@ -105,7 +105,7 @@ import Foundation return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func load() -> [String: Descriptor]? + private func load(withMigrator migrator: ArchiveMigrating?) -> [String: Descriptor]? { guard self.shouldLoadArchive == true else { From 2b755dedcfe8a818575182c8f8649c089c28e261 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 16:33:09 -0400 Subject: [PATCH 108/149] Streamline optional code a bit --- VimeoUpload/Upload/Controllers/VideoDeletionManager.swift | 7 +------ .../Descriptor System/VideoDescriptorFailureTracker.swift | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index fe9d850a..7ab439a7 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -139,12 +139,7 @@ public class VideoDeletionManager: NSObject return nil } - if let deletions = self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] - { - return deletions - } - - return nil + return self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] } private func startDeletions() diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 7832106f..6401b2c2 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -112,7 +112,7 @@ import Foundation return nil } - return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] + return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] } private func save() From 5a9eb28e3691a5f32b0b42da582a0381129c7b27 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 16:44:07 -0400 Subject: [PATCH 109/149] Return empty dictionary Why do we need to return an empty dictionary instead of `nil`? It's because we still want to be able to save failures so that the main app can keep track of failed upload from the share extension. We can only add new items if we have an empty dictionary. --- .../Controllers/VideoDeletionManager.swift | 28 ++++++------------- .../VideoDescriptorFailureTracker.swift | 23 ++++++--------- 2 files changed, 18 insertions(+), 33 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 7ab439a7..963dbe7a 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -40,7 +40,7 @@ public class VideoDeletionManager: NSObject // MARK: - private var deletions: [VideoUri: Int]? + private var deletions: [VideoUri: Int] = [:] private let operationQueue: OperationQueue private let archiver: KeyedArchiver private let shouldLoadArchive: Bool @@ -132,23 +132,18 @@ public class VideoDeletionManager: NSObject // MARK: Archiving - private func loadDeletions(withMigrator migrator: ArchiveMigrating?) -> [VideoUri: Int]? + private func loadDeletions(withMigrator migrator: ArchiveMigrating?) -> [VideoUri: Int] { guard self.shouldLoadArchive == true else { - return nil + return [:] } - return self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] + return self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] ?? [:] } private func startDeletions() { - guard let deletions = self.deletions else - { - return - } - for (key, value) in deletions { self.deleteVideo(withURI: key, retryCount: value) @@ -157,11 +152,6 @@ public class VideoDeletionManager: NSObject private func save() { - guard let deletions = self.deletions else - { - return - } - self.archiver.save(object: deletions, key: type(of: self).DeletionsArchiveKey) } @@ -176,7 +166,7 @@ public class VideoDeletionManager: NSObject private func deleteVideo(withURI uri: String, retryCount: Int) { - self.deletions?[uri] = retryCount + self.deletions[uri] = retryCount self.save() let operation = DeleteVideoOperation(sessionManager: self.sessionManager, videoUri: uri) @@ -198,26 +188,26 @@ public class VideoDeletionManager: NSObject { if let response = error.userInfo[AFNetworkingOperationFailingURLResponseErrorKey] as? HTTPURLResponse, response.statusCode == 404 { - strongSelf.deletions?.removeValue(forKey: uri) // The video has already been deleted + strongSelf.deletions.removeValue(forKey: uri) // The video has already been deleted strongSelf.save() return } - if let retryCount = strongSelf.deletions?[uri], retryCount > 0 + if let retryCount = strongSelf.deletions[uri], retryCount > 0 { let newRetryCount = retryCount - 1 strongSelf.deleteVideo(withURI: uri, retryCount: newRetryCount) // Decrement the retryCount and try again } else { - strongSelf.deletions?.removeValue(forKey: uri) // We retried the required number of times, nothing more to do + strongSelf.deletions.removeValue(forKey: uri) // We retried the required number of times, nothing more to do strongSelf.save() } } else { - strongSelf.deletions?.removeValue(forKey: uri) + strongSelf.deletions.removeValue(forKey: uri) strongSelf.save() } }) diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 6401b2c2..d091495d 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -33,7 +33,7 @@ import Foundation // MARK: private let archiver: KeyedArchiver - private var failedDescriptors: [String: Descriptor]? + private var failedDescriptors: [String: Descriptor] = [:] private let shouldLoadArchive: Bool // MARK: - Initialization @@ -105,37 +105,32 @@ import Foundation return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func load(withMigrator migrator: ArchiveMigrating?) -> [String: Descriptor]? + private func load(withMigrator migrator: ArchiveMigrating?) -> [String: Descriptor] { guard self.shouldLoadArchive == true else { - return nil + return [:] } - return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] + return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] } private func save() { - guard let failedDescriptors = self.failedDescriptors else - { - return - } - - self.archiver.save(object: failedDescriptors, key: type(of: self).ArchiveKey) + self.archiver.save(object: self.failedDescriptors, key: type(of: self).ArchiveKey) } // MARK: Public API public func removeAllFailures() { - self.failedDescriptors?.removeAll() + self.failedDescriptors.removeAll() self.save() } public func removeFailedDescriptor(for key: String) -> Descriptor? { - guard let descriptor = self.failedDescriptors?.removeValue(forKey: key) else + guard let descriptor = self.failedDescriptors.removeValue(forKey: key) else { return nil } @@ -147,7 +142,7 @@ import Foundation public func failedDescriptor(for key: String) -> Descriptor? { - return self.failedDescriptors?[key] + return self.failedDescriptors[key] } // MARK: Notifications @@ -171,7 +166,7 @@ import Foundation let key = descriptor.identifier, descriptor.error != nil { DispatchQueue.main.async { () -> Void in - self.failedDescriptors?[key] = descriptor + self.failedDescriptors[key] = descriptor self.save() } } From aaefe11030f49f75cdd27de8397d95d85ad703de Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 17:37:36 -0400 Subject: [PATCH 110/149] Refactor data-loading code into a single function --- .../DescriptorManagerArchiver.swift | 62 +++++++++++-------- VimeoUpload/Extensions/ArchiveMigrating.swift | 29 +++++++++ .../Controllers/VideoDeletionManager.swift | 11 +++- .../VideoDescriptorFailureTracker.swift | 15 ++++- 4 files changed, 86 insertions(+), 31 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 363122e8..91146c59 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -92,7 +92,11 @@ class DescriptorManagerArchiver return Set() } - guard let descriptors = self.value(withUploaderName: uploaderName, migrator: migrator, forKey: DescriptorManagerArchiver.DescriptorsArchiveKey) as? Set else + guard let descriptors = ArchiveDataLoader.loadData(withUploaderName: uploaderName, + archiver: self.archiver, + key: DescriptorManagerArchiver.DescriptorsArchiveKey, + migrator: migrator) as? Set + else { return Set() } @@ -112,7 +116,11 @@ class DescriptorManagerArchiver return false } - guard let suspendedState = self.value(withUploaderName: uploaderName, migrator: migrator, forKey: DescriptorManagerArchiver.SuspendedArchiveKey) as? Bool else + guard let suspendedState = ArchiveDataLoader.loadData(withUploaderName: uploaderName, + archiver: self.archiver, + key: DescriptorManagerArchiver.SuspendedArchiveKey, + migrator: migrator) as? Bool + else { return false } @@ -125,31 +133,31 @@ class DescriptorManagerArchiver self.archiver.save(object: self.suspended, key: type(of: self).SuspendedArchiveKey) } - private func value(withUploaderName uploaderName: String, migrator: ArchiveMigrating?, forKey key: String) -> Any? - { - let dataAtNewLocation = self.archiver.loadObject(for: key) - - guard let migrator = migrator else - { - return dataAtNewLocation - } - - let relativeFilePath = uploaderName + "/" + key + ".archive" - - guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else - { - return dataAtNewLocation - } - - guard let dataAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) else - { - return dataAtNewLocation - } - - migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) - - return dataAtOldLocation - } +// private func value(withUploaderName uploaderName: String, migrator: ArchiveMigrating?, forKey key: String) -> Any? +// { +// let dataAtNewLocation = self.archiver.loadObject(for: key) +// +// guard let migrator = migrator else +// { +// return dataAtNewLocation +// } +// +// let relativeFilePath = uploaderName + "/" + key + ".archive" +// +// guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else +// { +// return dataAtNewLocation +// } +// +// guard let dataAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) else +// { +// return dataAtNewLocation +// } +// +// migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) +// +// return dataAtOldLocation +// } // MARK: Public API diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index 788317bc..d6953f82 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -14,3 +14,32 @@ public protocol ArchiveMigrating func deleteArchiveFile(relativeFilePath: String) } + +struct ArchiveDataLoader +{ + static func loadData(withUploaderName uploaderName: String, archiver: KeyedArchiver, key: String, migrator: ArchiveMigrating?) -> Any? + { + let dataAtNewLocation = archiver.loadObject(for: key) + + guard let migrator = migrator else + { + return dataAtNewLocation + } + + let relativeFilePath = uploaderName + "/" + key + ".archive" + + guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else + { + return dataAtNewLocation + } + + guard let dataAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) else + { + return dataAtNewLocation + } + + migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) + + return dataAtOldLocation + } +} diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 963dbe7a..34357a26 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -139,7 +139,16 @@ public class VideoDeletionManager: NSObject return [:] } - return self.archiver.loadObject(for: type(of: self).DeletionsArchiveKey) as? [VideoUri: Int] ?? [:] + guard let retries = ArchiveDataLoader.loadData(withUploaderName: VideoDeletionManager.DeletionsArchiveKey, + archiver: self.archiver, + key: VideoDeletionManager.DeletionsArchiveKey, + migrator: migrator) as? [VideoUri: Int] + else + { + return [:] + } + + return retries } private func startDeletions() diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index d091495d..78ae0ed7 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -79,7 +79,7 @@ import Foundation super.init() - self.failedDescriptors = self.load(withMigrator: migrator) + self.failedDescriptors = self.load(withUploaderName: name, migrator: migrator) self.addObservers() } @@ -105,14 +105,23 @@ import Foundation return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func load(withMigrator migrator: ArchiveMigrating?) -> [String: Descriptor] + private func load(withUploaderName uploaderName: String, migrator: ArchiveMigrating?) -> [String: Descriptor] { guard self.shouldLoadArchive == true else { return [:] } - return self.archiver.loadObject(for: type(of: self).ArchiveKey) as? [String: Descriptor] ?? [:] + guard let failedDescriptors = ArchiveDataLoader.loadData(withUploaderName: uploaderName, + archiver: self.archiver, + key: VideoDescriptorFailureTracker.ArchiveKey, + migrator: migrator) as? [String: Descriptor] + else + { + return [:] + } + + return failedDescriptors } private func save() From e2941f3957d17b4bee68c837273cb557a99b5d53 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 17:52:08 -0400 Subject: [PATCH 111/149] Remove comments --- .../DescriptorManagerArchiver.swift | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 91146c59..b8bfd5cf 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -133,32 +133,6 @@ class DescriptorManagerArchiver self.archiver.save(object: self.suspended, key: type(of: self).SuspendedArchiveKey) } -// private func value(withUploaderName uploaderName: String, migrator: ArchiveMigrating?, forKey key: String) -> Any? -// { -// let dataAtNewLocation = self.archiver.loadObject(for: key) -// -// guard let migrator = migrator else -// { -// return dataAtNewLocation -// } -// -// let relativeFilePath = uploaderName + "/" + key + ".archive" -// -// guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else -// { -// return dataAtNewLocation -// } -// -// guard let dataAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) else -// { -// return dataAtNewLocation -// } -// -// migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) -// -// return dataAtOldLocation -// } - // MARK: Public API func save() From 40456903ff9454fd11706c82212bfbb2b0a17d0c Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 17:56:25 -0400 Subject: [PATCH 112/149] Add `DescriptorMerging` protocol --- .../VimeoUpload.xcodeproj/project.pbxproj | 4 +++ .../Extensions/DescriptorMerging.swift | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 VimeoUpload/Extensions/DescriptorMerging.swift diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index b02291d6..f2c78a4a 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; 8E8F1F7D20CF05C40048E8BB /* ArchiveMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */; }; + 8E8F1F7F20CF26CF0048E8BB /* DescriptorMerging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7E20CF26CF0048E8BB /* DescriptorMerging.swift */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF40D4EC1CCE9CB600753ABA /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */; }; AF40D4F11CCE9CB600753ABA /* VimeoUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D4F01CCE9CB600753ABA /* VimeoUploadTests.swift */; }; @@ -89,6 +90,7 @@ 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchiveMigrating.swift; sourceTree = ""; }; + 8E8F1F7E20CF26CF0048E8BB /* DescriptorMerging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DescriptorMerging.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoUpload.h; sourceTree = ""; }; AF40D4E61CCE9CB600753ABA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -267,6 +269,7 @@ AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, + 8E8F1F7E20CF26CF0048E8BB /* DescriptorMerging.swift */, ); name = Extensions; path = ../../../VimeoUpload/Extensions; @@ -610,6 +613,7 @@ AF40D58C1CCE9DEB00753ABA /* DiskSpaceOperation.swift in Sources */, AF40D5711CCE9DEB00753ABA /* NSURL+Upload.swift in Sources */, AF40D5531CCE9DEB00753ABA /* Descriptor.swift in Sources */, + 8E8F1F7F20CF26CF0048E8BB /* DescriptorMerging.swift in Sources */, AF40D5771CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift in Sources */, AF40D55E1CCE9DEB00753ABA /* CameraRollAssetCell.swift in Sources */, 3C53EC241D219C8500B7AA6D /* CAMUploadDescriptor.swift in Sources */, diff --git a/VimeoUpload/Extensions/DescriptorMerging.swift b/VimeoUpload/Extensions/DescriptorMerging.swift new file mode 100644 index 00000000..8859e65c --- /dev/null +++ b/VimeoUpload/Extensions/DescriptorMerging.swift @@ -0,0 +1,30 @@ +// +// DescriptorMerging.swift +// VimeoUpload +// +// Created by Van Nguyen on 06/11/2018. +// Copyright © 2018 Vimeo. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +public protocol DescriptorMerging +{ + +} From eab6d139d6129f5c47be3a63891bc90f49648d3f Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 17:58:09 -0400 Subject: [PATCH 113/149] Rename to `ArchiveMerging` --- .../VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 8 ++++---- .../{DescriptorMerging.swift => ArchiveMerging.swift} | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) rename VimeoUpload/Extensions/{DescriptorMerging.swift => ArchiveMerging.swift} (95%) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index f2c78a4a..ac12ecb1 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -17,7 +17,7 @@ 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; 8E8F1F7D20CF05C40048E8BB /* ArchiveMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */; }; - 8E8F1F7F20CF26CF0048E8BB /* DescriptorMerging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7E20CF26CF0048E8BB /* DescriptorMerging.swift */; }; + 8E8F1F7F20CF26CF0048E8BB /* ArchiveMerging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7E20CF26CF0048E8BB /* ArchiveMerging.swift */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF40D4EC1CCE9CB600753ABA /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */; }; AF40D4F11CCE9CB600753ABA /* VimeoUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D4F01CCE9CB600753ABA /* VimeoUploadTests.swift */; }; @@ -90,7 +90,7 @@ 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchiveMigrating.swift; sourceTree = ""; }; - 8E8F1F7E20CF26CF0048E8BB /* DescriptorMerging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DescriptorMerging.swift; sourceTree = ""; }; + 8E8F1F7E20CF26CF0048E8BB /* ArchiveMerging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArchiveMerging.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoUpload.h; sourceTree = ""; }; AF40D4E61CCE9CB600753ABA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -269,7 +269,7 @@ AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, - 8E8F1F7E20CF26CF0048E8BB /* DescriptorMerging.swift */, + 8E8F1F7E20CF26CF0048E8BB /* ArchiveMerging.swift */, ); name = Extensions; path = ../../../VimeoUpload/Extensions; @@ -613,7 +613,7 @@ AF40D58C1CCE9DEB00753ABA /* DiskSpaceOperation.swift in Sources */, AF40D5711CCE9DEB00753ABA /* NSURL+Upload.swift in Sources */, AF40D5531CCE9DEB00753ABA /* Descriptor.swift in Sources */, - 8E8F1F7F20CF26CF0048E8BB /* DescriptorMerging.swift in Sources */, + 8E8F1F7F20CF26CF0048E8BB /* ArchiveMerging.swift in Sources */, AF40D5771CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift in Sources */, AF40D55E1CCE9DEB00753ABA /* CameraRollAssetCell.swift in Sources */, 3C53EC241D219C8500B7AA6D /* CAMUploadDescriptor.swift in Sources */, diff --git a/VimeoUpload/Extensions/DescriptorMerging.swift b/VimeoUpload/Extensions/ArchiveMerging.swift similarity index 95% rename from VimeoUpload/Extensions/DescriptorMerging.swift rename to VimeoUpload/Extensions/ArchiveMerging.swift index 8859e65c..bd048d86 100644 --- a/VimeoUpload/Extensions/DescriptorMerging.swift +++ b/VimeoUpload/Extensions/ArchiveMerging.swift @@ -1,5 +1,5 @@ // -// DescriptorMerging.swift +// ArchiveMerging.swift // VimeoUpload // // Created by Van Nguyen on 06/11/2018. @@ -24,7 +24,7 @@ // THE SOFTWARE. // -public protocol DescriptorMerging +public protocol ArchiveMerging { } From 7e3c823152bac133b147d3c18e7448c25de3d3a8 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 17:59:08 -0400 Subject: [PATCH 114/149] Add copyright text --- VimeoUpload/Extensions/ArchiveMigrating.swift | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index d6953f82..61e76be5 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -5,6 +5,24 @@ // Created by Nguyen, Van on 6/1/18. // Copyright © 2018 Vimeo. All rights reserved. // +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// public protocol ArchiveMigrating { From ef858407ab5eb3c9086163c5cd7ebfce68ee4121 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Mon, 11 Jun 2018 18:23:38 -0400 Subject: [PATCH 115/149] Declare and inject archive merger protocol --- .../Descriptor System/DescriptorManager.swift | 16 ++++++++++++++-- .../DescriptorManagerArchiver.swift | 6 +++++- .../ReachableDescriptorManager.swift | 10 +++++++++- VimeoUpload/Extensions/ArchiveMerging.swift | 6 ++++++ .../Controllers/VideoDeletionManager.swift | 3 ++- .../VideoDescriptorFailureTracker.swift | 2 +- 6 files changed, 37 insertions(+), 6 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index d037c25f..2dc2e823 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -70,9 +70,21 @@ open class DescriptorManager: NSObject // By passing the delegate into the constructor (as opposed to using a public property) // We ensure that early events like "load" can be reported [AH] 11/25/2015 - init?(sessionManager: AFURLSessionManager, name: String, archivePrefix: String?, shouldLoadArchive: Bool, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil, delegate: DescriptorManagerDelegate? = nil) + init?(sessionManager: AFURLSessionManager, + name: String, + archivePrefix: String?, + shouldLoadArchive: Bool, + documentsFolderURL: URL, + migrator: ArchiveMigrating? = nil, + merger: ArchiveMerging? = nil, + delegate: DescriptorManagerDelegate? = nil) { - guard let archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, migrator: migrator) else + guard let archiver = DescriptorManagerArchiver(name: name, + archivePrefix: archivePrefix, + shouldLoadArchive: shouldLoadArchive, + documentsFolderURL: documentsFolderURL, + migrator: migrator) + else { return nil } diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index b8bfd5cf..62491549 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -49,7 +49,11 @@ class DescriptorManagerArchiver // MARK: - Initialization - init?(name: String, archivePrefix: String?, shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil) + init?(name: String, + archivePrefix: String?, + shouldLoadArchive: Bool = true, + documentsFolderURL: URL, + migrator: ArchiveMigrating? = nil) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index a9a4b07e..73716552 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -77,6 +77,7 @@ import VimeoNetworking shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil, + merger: ArchiveMerging? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, @@ -94,7 +95,14 @@ import VimeoNetworking backgroundSessionManager = VimeoSessionManager.backgroundSessionManager(identifier: backgroundSessionIdentifier, baseUrl: VimeoBaseURL, accessTokenProvider: accessTokenProvider, apiVersion: apiVersion) } - super.init(sessionManager: backgroundSessionManager, name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, migrator: migrator, delegate: descriptorManagerDelegate) + super.init(sessionManager: backgroundSessionManager, + name: name, + archivePrefix: archivePrefix, + shouldLoadArchive: shouldLoadArchive, + documentsFolderURL: documentsFolderURL, + migrator: migrator, + merger: merger, + delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self } diff --git a/VimeoUpload/Extensions/ArchiveMerging.swift b/VimeoUpload/Extensions/ArchiveMerging.swift index bd048d86..93a5b845 100644 --- a/VimeoUpload/Extensions/ArchiveMerging.swift +++ b/VimeoUpload/Extensions/ArchiveMerging.swift @@ -26,5 +26,11 @@ public protocol ArchiveMerging { + init(secondaryArchivePrefix: String?) + func mergeSecondaryDescriptors(into descriptors: Set) -> Set + + func mergeSecondaryDeletions(into deletions: [VideoUri: Int]) -> [VideoUri: Int] + + func mergeSecondaryFailedDescriptors(into failedDescriptors: [String: Descriptor]) -> [String: Descriptor] } diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 34357a26..d4629c2a 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -83,7 +83,8 @@ public class VideoDeletionManager: NSObject shouldLoadArchive: Bool = true, documentsFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount, - migrator: ArchiveMigrating? = nil) + migrator: ArchiveMigrating? = nil, + merger: ArchiveMerging? = nil) { guard let archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 78ae0ed7..a7c4c3b9 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -66,7 +66,7 @@ import Foundation /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. - public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil) + public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil, merger: ArchiveMerging? = nil) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { From bbba9f771d8e98018965c856f12efc47ce8a8284 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 12 Jun 2018 11:24:27 -0400 Subject: [PATCH 116/149] Declare new interface for merging archives --- VimeoUpload/Extensions/ArchiveMerging.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Extensions/ArchiveMerging.swift b/VimeoUpload/Extensions/ArchiveMerging.swift index 93a5b845..03a4a15c 100644 --- a/VimeoUpload/Extensions/ArchiveMerging.swift +++ b/VimeoUpload/Extensions/ArchiveMerging.swift @@ -26,11 +26,11 @@ public protocol ArchiveMerging { - init(secondaryArchivePrefix: String?) + init?(secondaryArchivePrefix: String) - func mergeSecondaryDescriptors(into descriptors: Set) -> Set + func mergeSecondaryDescriptors(atRelativePath relativePath: String, key: String, intoDescriptors descriptors: Set) -> Set - func mergeSecondaryDeletions(into deletions: [VideoUri: Int]) -> [VideoUri: Int] + func mergeSecondaryDeletions(atRelativePath relativePath: String, key: String, intoDeletions deletions: [VideoUri: Int]) -> [VideoUri: Int] - func mergeSecondaryFailedDescriptors(into failedDescriptors: [String: Descriptor]) -> [String: Descriptor] + func mergeSecondaryFailedDescriptors(atRelativePath relativePath: String, key: String, intoFailedDescriptors failedDescriptors: [String: Descriptor]) -> [String: Descriptor] } From 5ddc86fa53d9032d84a729f9549234de13bb00c7 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 12 Jun 2018 12:21:09 -0400 Subject: [PATCH 117/149] Change folder name argument --- .../DescriptorManagerArchiver.swift | 4 +-- VimeoUpload/Extensions/ArchiveMerging.swift | 6 ++-- VimeoUpload/Extensions/ArchiveMigrating.swift | 4 +-- .../Controllers/VideoDeletionManager.swift | 2 +- .../VideoDescriptorFailureTracker.swift | 34 ++++++++++++------- 5 files changed, 30 insertions(+), 20 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 62491549..1708d37b 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -96,7 +96,7 @@ class DescriptorManagerArchiver return Set() } - guard let descriptors = ArchiveDataLoader.loadData(withUploaderName: uploaderName, + guard let descriptors = ArchiveDataLoader.loadData(relativeFolderPath: uploaderName, archiver: self.archiver, key: DescriptorManagerArchiver.DescriptorsArchiveKey, migrator: migrator) as? Set @@ -120,7 +120,7 @@ class DescriptorManagerArchiver return false } - guard let suspendedState = ArchiveDataLoader.loadData(withUploaderName: uploaderName, + guard let suspendedState = ArchiveDataLoader.loadData(relativeFolderPath: uploaderName, archiver: self.archiver, key: DescriptorManagerArchiver.SuspendedArchiveKey, migrator: migrator) as? Bool diff --git a/VimeoUpload/Extensions/ArchiveMerging.swift b/VimeoUpload/Extensions/ArchiveMerging.swift index 03a4a15c..59b13dae 100644 --- a/VimeoUpload/Extensions/ArchiveMerging.swift +++ b/VimeoUpload/Extensions/ArchiveMerging.swift @@ -28,9 +28,9 @@ public protocol ArchiveMerging { init?(secondaryArchivePrefix: String) - func mergeSecondaryDescriptors(atRelativePath relativePath: String, key: String, intoDescriptors descriptors: Set) -> Set + func mergeSecondaryDescriptors(relativeFolderPath: String, key: String, intoDescriptors descriptors: Set) -> Set - func mergeSecondaryDeletions(atRelativePath relativePath: String, key: String, intoDeletions deletions: [VideoUri: Int]) -> [VideoUri: Int] + func mergeSecondaryDeletions(relativeFolderPath: String, key: String, intoDeletions deletions: [VideoUri: Int]) -> [VideoUri: Int] - func mergeSecondaryFailedDescriptors(atRelativePath relativePath: String, key: String, intoFailedDescriptors failedDescriptors: [String: Descriptor]) -> [String: Descriptor] + func mergeSecondaryFailedDescriptors(relativeFolderPath: String, key: String, intoFailedDescriptors failedDescriptors: [String: Descriptor]) -> [String: Descriptor] } diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index 61e76be5..e40e1dc9 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -35,7 +35,7 @@ public protocol ArchiveMigrating struct ArchiveDataLoader { - static func loadData(withUploaderName uploaderName: String, archiver: KeyedArchiver, key: String, migrator: ArchiveMigrating?) -> Any? + static func loadData(relativeFolderPath: String, archiver: KeyedArchiver, key: String, migrator: ArchiveMigrating?) -> Any? { let dataAtNewLocation = archiver.loadObject(for: key) @@ -44,7 +44,7 @@ struct ArchiveDataLoader return dataAtNewLocation } - let relativeFilePath = uploaderName + "/" + key + ".archive" + let relativeFilePath = relativeFolderPath + "/" + key + ".archive" guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else { diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index d4629c2a..db9b57b8 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -140,7 +140,7 @@ public class VideoDeletionManager: NSObject return [:] } - guard let retries = ArchiveDataLoader.loadData(withUploaderName: VideoDeletionManager.DeletionsArchiveKey, + guard let retries = ArchiveDataLoader.loadData(relativeFolderPath: VideoDeletionManager.DeletionsArchiveKey, archiver: self.archiver, key: VideoDeletionManager.DeletionsArchiveKey, migrator: migrator) as? [VideoUri: Int] diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index a7c4c3b9..c813fc3c 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -55,7 +55,7 @@ import Foundation /// ``` /// /// - Parameters: - /// - name: The name of the uploader. + /// - name: The name of the folder that we'll store the archive. /// - archivePrefix: The prefix of the archive file. You pass in the /// prefix if you want to keep track of multiple archive files. By /// default, it has the value of `nil`. @@ -66,9 +66,14 @@ import Foundation /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. - public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil, merger: ArchiveMerging? = nil) + public init?(name: String, + archivePrefix: String? = nil, + shouldLoadArchive: Bool = true, + documentsFolderURL: URL, + migrator: ArchiveMigrating? = nil, + merger: ArchiveMerging? = nil) { - guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else + guard let archiver = type(of: self).setupArchiver(folderName: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { return nil } @@ -79,22 +84,22 @@ import Foundation super.init() - self.failedDescriptors = self.load(withUploaderName: name, migrator: migrator) + self.failedDescriptors = self.load(folderName: name, migrator: migrator, merger: merger) self.addObservers() } // MARK: Setup - private static func setupArchiver(name: String, archivePrefix: String?, documentsFolderURL: URL) -> KeyedArchiver? + private static func setupArchiver(folderName: String, archivePrefix: String?, documentsFolderURL: URL) -> KeyedArchiver? { - let typeFolderURL = documentsFolderURL.appendingPathComponent(name) + let folderURL = documentsFolderURL.appendingPathComponent(folderName) - if FileManager.default.fileExists(atPath: typeFolderURL.path) == false + if FileManager.default.fileExists(atPath: folderURL.path) == false { do { - try FileManager.default.createDirectory(at: typeFolderURL, withIntermediateDirectories: true, attributes: nil) + try FileManager.default.createDirectory(at: folderURL, withIntermediateDirectories: true, attributes: nil) } catch { @@ -102,17 +107,17 @@ import Foundation } } - return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) + return KeyedArchiver(basePath: folderURL.path, archivePrefix: archivePrefix) } - private func load(withUploaderName uploaderName: String, migrator: ArchiveMigrating?) -> [String: Descriptor] + private func load(folderName: String, migrator: ArchiveMigrating?, merger: ArchiveMerging?) -> [String: Descriptor] { guard self.shouldLoadArchive == true else { return [:] } - guard let failedDescriptors = ArchiveDataLoader.loadData(withUploaderName: uploaderName, + guard let failedDescriptors = ArchiveDataLoader.loadData(relativeFolderPath: folderName, archiver: self.archiver, key: VideoDescriptorFailureTracker.ArchiveKey, migrator: migrator) as? [String: Descriptor] @@ -121,7 +126,12 @@ import Foundation return [:] } - return failedDescriptors + guard let merger = merger else + { + return failedDescriptors + } + + return merger.mergeSecondaryFailedDescriptors(relativeFolderPath: folderName, key: VideoDescriptorFailureTracker.ArchiveKey, intoFailedDescriptors: failedDescriptors) } private func save() From 305821f8da96f5ced61beb01be15061ef3e4b897 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 12 Jun 2018 12:28:31 -0400 Subject: [PATCH 118/149] Merge deletions --- .../Upload/Controllers/VideoDeletionManager.swift | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index db9b57b8..61497b1b 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -105,7 +105,7 @@ public class VideoDeletionManager: NSObject self.addObservers() self.reachabilityDidChange(nil) // Set suspended state - self.deletions = self.loadDeletions(withMigrator: migrator) + self.deletions = self.loadDeletions(withMigrator: migrator, merger: merger) self.startDeletions() } @@ -133,14 +133,16 @@ public class VideoDeletionManager: NSObject // MARK: Archiving - private func loadDeletions(withMigrator migrator: ArchiveMigrating?) -> [VideoUri: Int] + private func loadDeletions(withMigrator migrator: ArchiveMigrating?, merger: ArchiveMerging?) -> [VideoUri: Int] { guard self.shouldLoadArchive == true else { return [:] } - guard let retries = ArchiveDataLoader.loadData(relativeFolderPath: VideoDeletionManager.DeletionsArchiveKey, + let relativeFolderPath = VideoDeletionManager.DeletionsArchiveKey + "/" + VideoDeletionManager.DeletionsArchiveKey + + guard let retries = ArchiveDataLoader.loadData(relativeFolderPath: relativeFolderPath, archiver: self.archiver, key: VideoDeletionManager.DeletionsArchiveKey, migrator: migrator) as? [VideoUri: Int] @@ -149,7 +151,12 @@ public class VideoDeletionManager: NSObject return [:] } - return retries + guard let merger = merger else + { + return retries + } + + return merger.mergeSecondaryDeletions(relativeFolderPath: relativeFolderPath, key: VideoDeletionManager.DeletionsArchiveKey, intoDeletions: retries) } private func startDeletions() From 7f018b92cc100164d31280342c451ff04f4cd091 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 12 Jun 2018 14:35:22 -0400 Subject: [PATCH 119/149] Merge descriptors --- .../Descriptor System/DescriptorManager.swift | 5 +++-- .../DescriptorManagerArchiver.swift | 22 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 2dc2e823..d0e01df6 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -83,7 +83,8 @@ open class DescriptorManager: NSObject archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, - migrator: migrator) + migrator: migrator, + merger: merger) else { return nil @@ -313,7 +314,7 @@ open class DescriptorManager: NSObject { return } - + if let backgroundEventsCompletionHandler = strongSelf.backgroundEventsCompletionHandler { // The completionHandler must be called on the main thread diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 1708d37b..e7621bbc 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -53,7 +53,8 @@ class DescriptorManagerArchiver archivePrefix: String?, shouldLoadArchive: Bool = true, documentsFolderURL: URL, - migrator: ArchiveMigrating? = nil) + migrator: ArchiveMigrating?, + merger: ArchiveMerging?) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -64,8 +65,8 @@ class DescriptorManagerArchiver self.shouldLoadArchive = shouldLoadArchive - self.descriptors = self.loadDescriptors(withMigrator: migrator, uploaderName: name) - self.suspended = self.loadSuspendedState(withMigrator: migrator, uploaderName: name) + self.descriptors = self.loadDescriptors(withMigrator: migrator, merger: merger, relativeFolderPath: name) + self.suspended = self.loadSuspendedState(withMigrator: migrator, merger: merger, relativeFolderPath: name) } // MARK: Setup - Archiving @@ -89,14 +90,14 @@ class DescriptorManagerArchiver return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, uploaderName: String) -> Set + private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, merger: ArchiveMerging?, relativeFolderPath: String) -> Set { guard self.shouldLoadArchive == true else { return Set() } - guard let descriptors = ArchiveDataLoader.loadData(relativeFolderPath: uploaderName, + guard let descriptors = ArchiveDataLoader.loadData(relativeFolderPath: relativeFolderPath, archiver: self.archiver, key: DescriptorManagerArchiver.DescriptorsArchiveKey, migrator: migrator) as? Set @@ -105,7 +106,12 @@ class DescriptorManagerArchiver return Set() } - return descriptors + guard let merger = merger else + { + return descriptors + } + + return merger.mergeSecondaryDescriptors(relativeFolderPath: relativeFolderPath, key: DescriptorManagerArchiver.DescriptorsArchiveKey, intoDescriptors: descriptors) } private func saveDescriptors() @@ -113,14 +119,14 @@ class DescriptorManagerArchiver self.archiver.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) } - private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, uploaderName: String) -> Bool + private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, merger: ArchiveMerging?, relativeFolderPath: String) -> Bool { guard self.shouldLoadArchive == true else { return false } - guard let suspendedState = ArchiveDataLoader.loadData(relativeFolderPath: uploaderName, + guard let suspendedState = ArchiveDataLoader.loadData(relativeFolderPath: relativeFolderPath, archiver: self.archiver, key: DescriptorManagerArchiver.SuspendedArchiveKey, migrator: migrator) as? Bool From ef9372a1649d71db9b1718be80e88b372c2d89d1 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 13 Jun 2018 15:56:08 -0400 Subject: [PATCH 120/149] Add function to invalidate session --- .../Descriptor System/DescriptorManager.swift | 32 ++++++++++++++++--- .../DescriptorManagerDelegate.swift | 2 +- .../DescriptorManagerTracker.swift | 7 +++- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index d0e01df6..48d70833 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -149,7 +149,7 @@ open class DescriptorManager: NSObject // So we respond by clearing the descriptors set, returning to a blank slate. [AH] 10/28/2015 self.sessionManager.setSessionDidBecomeInvalidBlock { [weak self] (session, error) -> Void in - + guard let strongSelf = self else { return @@ -161,14 +161,31 @@ open class DescriptorManager: NSObject { return } - - strongSelf.archiver.removeAll() // TODO: Need to respond to this notification [AH] 2/22/2016 (remove from downloads store, delete active uploads etc.) - strongSelf.delegate?.sessionDidBecomeInvalid?(error: error as NSError) + // Why do we need to check if `error` is `nil` even though the compiler + // tells us that this checking will always succeed? Behind the scene, we + // are using the `AFURLSessionManager` class -- which is an Objective-C + // class -- for managing background upload sessions. For the session + // invalid callback, its header file does not mark the `NSError` object + // as nullable; in reality, this object will be `nil` if we explicitly + // invalidate the underlying session. Because of that, it is necessary + // to check for `nil` here, else the runtime will crash if the error + // object is `nil`. [VN] (06/13/2018) + let theError: NSError? + if error != nil + { + theError = error as NSError + } + else + { + theError = nil + } - NotificationCenter.default.post(name: Notification.Name(rawValue: DescriptorManagerNotification.SessionDidBecomeInvalid.rawValue), object: error) + strongSelf.delegate?.sessionDidBecomeInvalid?(error: theError) + + NotificationCenter.default.post(name: Notification.Name(rawValue: DescriptorManagerNotification.SessionDidBecomeInvalid.rawValue), object: theError) }) } @@ -336,6 +353,11 @@ open class DescriptorManager: NSObject // MARK: Public API + public func invalidateSessionManager() + { + self.sessionManager.invalidateSessionCancelingTasks(false) + } + /// Determines if the manager can handle events from a background upload /// session. /// diff --git a/VimeoUpload/Descriptor System/DescriptorManagerDelegate.swift b/VimeoUpload/Descriptor System/DescriptorManagerDelegate.swift index 846afad9..47c70394 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerDelegate.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerDelegate.swift @@ -34,7 +34,7 @@ import Foundation @objc optional func didSaveDescriptors(count: Int) @objc optional func didFailToLoadDescriptor(error: NSError) - @objc optional func sessionDidBecomeInvalid(error: NSError) + @objc optional func sessionDidBecomeInvalid(error: NSError?) @objc optional func willHandleEventsForBackgroundSession() @objc optional func didFinishEventsForBackgroundSession() diff --git a/VimeoUpload/Upload/Descriptor System/DescriptorManagerTracker.swift b/VimeoUpload/Upload/Descriptor System/DescriptorManagerTracker.swift index 0a03a744..e4d61888 100644 --- a/VimeoUpload/Upload/Descriptor System/DescriptorManagerTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/DescriptorManagerTracker.swift @@ -55,8 +55,13 @@ open class DescriptorManagerTracker: DescriptorManagerDelegate self.printMessageAndPostLocalNotification("Load failed: \(error.localizedDescription)") } - @objc open func sessionDidBecomeInvalid(error: NSError) + @objc open func sessionDidBecomeInvalid(error: NSError?) { + guard let error = error else + { + return + } + self.printMessageAndPostLocalNotification("Session invalidated: \(error.localizedDescription)") } From 1bba1a526cf145083eedaed6f0a35fe18f68c973 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 13 Jun 2018 17:58:16 -0400 Subject: [PATCH 121/149] Delete file if there's no upload link --- .../New Upload (Private)/UploadDescriptor.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift index 9ef3a9a4..af541136 100644 --- a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift +++ b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift @@ -82,7 +82,7 @@ open class UploadDescriptor: ProgressDescriptor, VideoDescriptor { guard let uploadLink = self.video?.upload?.uploadLink else { - // TODO: delete file here? Same in download? + FileManager.default.deleteFile(at: self.url) throw NSError(domain: UploadErrorDomain.Upload.rawValue, code: 0, userInfo: [NSLocalizedDescriptionKey: "Attempt to initiate upload but the uploadUri is nil."]) } From 03147143f238d9edf52175196a714565316cefc8 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Jun 2018 22:50:41 -0400 Subject: [PATCH 122/149] Updated access level of VideoSettings and its parameterDictionary so the client can override implementation. --- VimeoUpload/Upload/Model/VideoSettings.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Upload/Model/VideoSettings.swift b/VimeoUpload/Upload/Model/VideoSettings.swift index 2049833b..2f50b1e6 100644 --- a/VimeoUpload/Upload/Model/VideoSettings.swift +++ b/VimeoUpload/Upload/Model/VideoSettings.swift @@ -26,7 +26,7 @@ import Foundation -public class VideoSettings: NSObject, NSCoding +open class VideoSettings: NSObject, NSCoding { public var title: String? { @@ -61,7 +61,7 @@ public class VideoSettings: NSObject, NSCoding // MARK: Public API - public func parameterDictionary() -> [String: Any] + open func parameterDictionary() -> [String: Any] { var parameters: [String: Any] = [:] From bcc36e053ae1dfad35bcefa01d908633b700a3d6 Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 13 Jun 2018 22:52:47 -0400 Subject: [PATCH 123/149] Removed pre-upload key from parameters, as this is not a publicly available key. --- .../New Upload (Private)/VimeoRequestSerializer+Upload.swift | 5 ----- 1 file changed, 5 deletions(-) diff --git a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift index 80b1baa6..136f009d 100644 --- a/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift +++ b/VimeoUpload/Upload/Networking/New Upload (Private)/VimeoRequestSerializer+Upload.swift @@ -31,8 +31,6 @@ extension VimeoRequestSerializer { private struct Constants { - static let PreUploadKey = "_pre_upload" - static let PreUploadDefaultValue = true static let ApproachKey = "approach" static let ApproachDefaultValue = "streaming" static let UploadKey = "upload" @@ -49,9 +47,6 @@ extension VimeoRequestSerializer // Store `uploadParameters` dictionary as the value to "upload" key inside `parameters` dictionary. var parameters = [Constants.UploadKey: uploadParameters as Any] - // Add on pre-upload key-value pair to `parameters` dictionary. - parameters[Constants.PreUploadKey] = Constants.PreUploadDefaultValue - if let videoSettings = videoSettings { for (key, value) in videoSettings.parameterDictionary() From 964a0a1faf4f24298d63b29176d378c25980d7c0 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 14 Jun 2018 15:36:52 -0400 Subject: [PATCH 124/149] Suspend the task when connection error occurs --- .../Descriptor System/DescriptorManager.swift | 16 ++-------------- .../New Upload (Private)/UploadDescriptor.swift | 2 -- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 48d70833..43f68620 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -268,20 +268,8 @@ open class DescriptorManager: NSObject let isConnectionError = ((task.error as? NSError)?.isConnectionError() == true || (error as? NSError)?.isConnectionError() == true) if isConnectionError { - do - { - try descriptor.prepare(sessionManager: strongSelf.sessionManager) - - descriptor.resume(sessionManager: strongSelf.sessionManager) // TODO: for a specific number of retries? [AH] - strongSelf.save() - } - catch - { - strongSelf.archiver.remove(descriptor: descriptor) - - strongSelf.delegate?.descriptorDidFail?(descriptor) - NotificationCenter.default.post(name: Notification.Name(rawValue: DescriptorManagerNotification.DescriptorDidFail.rawValue), object: descriptor) - } + descriptor.suspend(sessionManager: strongSelf.sessionManager) + strongSelf.save() return } diff --git a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift index af541136..ba8db3a0 100644 --- a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift +++ b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift @@ -82,8 +82,6 @@ open class UploadDescriptor: ProgressDescriptor, VideoDescriptor { guard let uploadLink = self.video?.upload?.uploadLink else { - FileManager.default.deleteFile(at: self.url) - throw NSError(domain: UploadErrorDomain.Upload.rawValue, code: 0, userInfo: [NSLocalizedDescriptionKey: "Attempt to initiate upload but the uploadUri is nil."]) } From 1bd5435f2e65fc14cc31c50e5ebcd5ce6c13d3c2 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 14 Jun 2018 22:45:33 -0400 Subject: [PATCH 125/149] Remove merging code --- .../Descriptor System/DescriptorManager.swift | 33 ++++++++++++++--- .../DescriptorManagerArchiver.swift | 24 +++++-------- .../ReachableDescriptorManager.swift | 2 -- VimeoUpload/Extensions/ArchiveMerging.swift | 36 ------------------- .../Controllers/VideoDeletionManager.swift | 14 +++----- .../UploadDescriptor.swift | 4 +++ .../VideoDescriptorFailureTracker.swift | 14 +++----- 7 files changed, 49 insertions(+), 78 deletions(-) delete mode 100644 VimeoUpload/Extensions/ArchiveMerging.swift diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 43f68620..69eec975 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -34,6 +34,7 @@ public enum DescriptorManagerNotification: String case DescriptorDidSucceed = "DescriptorDidSucceedNotification" case DescriptorDidCancel = "DescriptorDidCancelNotification" case SessionDidBecomeInvalid = "SessionDidBecomeInvalidNotification" + case DescriptorFromPrefixedArchiveDidSuspend = "DescriptorFromPrefixedArchiveDidSuspend" } public typealias TestClosure = (Descriptor) -> Bool @@ -47,6 +48,7 @@ open class DescriptorManager: NSObject private var sessionManager: AFURLSessionManager private let name: String + private let archivePrefix: String? private weak var delegate: DescriptorManagerDelegate? // MARK: @@ -76,15 +78,13 @@ open class DescriptorManager: NSObject shouldLoadArchive: Bool, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil, - merger: ArchiveMerging? = nil, delegate: DescriptorManagerDelegate? = nil) { guard let archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, - migrator: migrator, - merger: merger) + migrator: migrator) else { return nil @@ -95,6 +95,7 @@ open class DescriptorManager: NSObject self.delegate = delegate self.archiver = archiver + self.archivePrefix = archivePrefix super.init() @@ -268,8 +269,30 @@ open class DescriptorManager: NSObject let isConnectionError = ((task.error as? NSError)?.isConnectionError() == true || (error as? NSError)?.isConnectionError() == true) if isConnectionError { - descriptor.suspend(sessionManager: strongSelf.sessionManager) - strongSelf.save() + if let _ = strongSelf.archivePrefix + { + descriptor.suspend(sessionManager: strongSelf.sessionManager) + strongSelf.save() + + NotificationCenter.default.post(name: Notification.Name(DescriptorManagerNotification.DescriptorFromPrefixedArchiveDidSuspend.rawValue), object: descriptor) + } + else + { + do + { + try descriptor.prepare(sessionManager: strongSelf.sessionManager) + + descriptor.resume(sessionManager: strongSelf.sessionManager) // TODO: for a specific number of retries? [AH] + strongSelf.save() + } + catch + { + strongSelf.archiver.remove(descriptor: descriptor) + + strongSelf.delegate?.descriptorDidFail?(descriptor) + NotificationCenter.default.post(name: Notification.Name(rawValue: DescriptorManagerNotification.DescriptorDidFail.rawValue), object: descriptor) + } + } return } diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index e7621bbc..09b0c32c 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -53,8 +53,7 @@ class DescriptorManagerArchiver archivePrefix: String?, shouldLoadArchive: Bool = true, documentsFolderURL: URL, - migrator: ArchiveMigrating?, - merger: ArchiveMerging?) + migrator: ArchiveMigrating?) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -65,8 +64,8 @@ class DescriptorManagerArchiver self.shouldLoadArchive = shouldLoadArchive - self.descriptors = self.loadDescriptors(withMigrator: migrator, merger: merger, relativeFolderPath: name) - self.suspended = self.loadSuspendedState(withMigrator: migrator, merger: merger, relativeFolderPath: name) + self.descriptors = self.loadDescriptors(withMigrator: migrator, relativeFolderPath: name) + self.suspended = self.loadSuspendedState(withMigrator: migrator, relativeFolderPath: name) } // MARK: Setup - Archiving @@ -90,7 +89,7 @@ class DescriptorManagerArchiver return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, merger: ArchiveMerging?, relativeFolderPath: String) -> Set + private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, relativeFolderPath: String) -> Set { guard self.shouldLoadArchive == true else { @@ -98,20 +97,15 @@ class DescriptorManagerArchiver } guard let descriptors = ArchiveDataLoader.loadData(relativeFolderPath: relativeFolderPath, - archiver: self.archiver, - key: DescriptorManagerArchiver.DescriptorsArchiveKey, - migrator: migrator) as? Set + archiver: self.archiver, + key: DescriptorManagerArchiver.DescriptorsArchiveKey, + migrator: migrator) as? Set else { return Set() } - guard let merger = merger else - { - return descriptors - } - - return merger.mergeSecondaryDescriptors(relativeFolderPath: relativeFolderPath, key: DescriptorManagerArchiver.DescriptorsArchiveKey, intoDescriptors: descriptors) + return descriptors } private func saveDescriptors() @@ -119,7 +113,7 @@ class DescriptorManagerArchiver self.archiver.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) } - private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, merger: ArchiveMerging?, relativeFolderPath: String) -> Bool + private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, relativeFolderPath: String) -> Bool { guard self.shouldLoadArchive == true else { diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 73716552..8975d5d8 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -77,7 +77,6 @@ import VimeoNetworking shouldLoadArchive: Bool = true, documentsFolderURL: URL, migrator: ArchiveMigrating? = nil, - merger: ArchiveMerging? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, @@ -101,7 +100,6 @@ import VimeoNetworking shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, migrator: migrator, - merger: merger, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self diff --git a/VimeoUpload/Extensions/ArchiveMerging.swift b/VimeoUpload/Extensions/ArchiveMerging.swift deleted file mode 100644 index 59b13dae..00000000 --- a/VimeoUpload/Extensions/ArchiveMerging.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// ArchiveMerging.swift -// VimeoUpload -// -// Created by Van Nguyen on 06/11/2018. -// Copyright © 2018 Vimeo. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -public protocol ArchiveMerging -{ - init?(secondaryArchivePrefix: String) - - func mergeSecondaryDescriptors(relativeFolderPath: String, key: String, intoDescriptors descriptors: Set) -> Set - - func mergeSecondaryDeletions(relativeFolderPath: String, key: String, intoDeletions deletions: [VideoUri: Int]) -> [VideoUri: Int] - - func mergeSecondaryFailedDescriptors(relativeFolderPath: String, key: String, intoFailedDescriptors failedDescriptors: [String: Descriptor]) -> [String: Descriptor] -} diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 61497b1b..bc84a547 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -83,8 +83,7 @@ public class VideoDeletionManager: NSObject shouldLoadArchive: Bool = true, documentsFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount, - migrator: ArchiveMigrating? = nil, - merger: ArchiveMerging? = nil) + migrator: ArchiveMigrating? = nil) { guard let archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -105,7 +104,7 @@ public class VideoDeletionManager: NSObject self.addObservers() self.reachabilityDidChange(nil) // Set suspended state - self.deletions = self.loadDeletions(withMigrator: migrator, merger: merger) + self.deletions = self.loadDeletions(withMigrator: migrator) self.startDeletions() } @@ -133,7 +132,7 @@ public class VideoDeletionManager: NSObject // MARK: Archiving - private func loadDeletions(withMigrator migrator: ArchiveMigrating?, merger: ArchiveMerging?) -> [VideoUri: Int] + private func loadDeletions(withMigrator migrator: ArchiveMigrating?) -> [VideoUri: Int] { guard self.shouldLoadArchive == true else { @@ -151,12 +150,7 @@ public class VideoDeletionManager: NSObject return [:] } - guard let merger = merger else - { - return retries - } - - return merger.mergeSecondaryDeletions(relativeFolderPath: relativeFolderPath, key: VideoDeletionManager.DeletionsArchiveKey, intoDeletions: retries) + return retries } private func startDeletions() diff --git a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift index ba8db3a0..9904ec35 100644 --- a/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift +++ b/VimeoUpload/Upload/Descriptor System/New Upload (Private)/UploadDescriptor.swift @@ -190,6 +190,10 @@ open class UploadDescriptor: ProgressDescriptor, VideoDescriptor { self.video = uploadTicket.video } + else + { + self.video = aDecoder.decodeObject(forKey: type(of: self).VideoCoderKey) as? VIMVideo + } super.init(coder: aDecoder) } diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index c813fc3c..bd4afb1f 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -70,8 +70,7 @@ import Foundation archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, - migrator: ArchiveMigrating? = nil, - merger: ArchiveMerging? = nil) + migrator: ArchiveMigrating? = nil) { guard let archiver = type(of: self).setupArchiver(folderName: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -84,7 +83,7 @@ import Foundation super.init() - self.failedDescriptors = self.load(folderName: name, migrator: migrator, merger: merger) + self.failedDescriptors = self.load(folderName: name, migrator: migrator) self.addObservers() } @@ -110,7 +109,7 @@ import Foundation return KeyedArchiver(basePath: folderURL.path, archivePrefix: archivePrefix) } - private func load(folderName: String, migrator: ArchiveMigrating?, merger: ArchiveMerging?) -> [String: Descriptor] + private func load(folderName: String, migrator: ArchiveMigrating?) -> [String: Descriptor] { guard self.shouldLoadArchive == true else { @@ -126,12 +125,7 @@ import Foundation return [:] } - guard let merger = merger else - { - return failedDescriptors - } - - return merger.mergeSecondaryFailedDescriptors(relativeFolderPath: folderName, key: VideoDescriptorFailureTracker.ArchiveKey, intoFailedDescriptors: failedDescriptors) + return failedDescriptors } private func save() From e18f5fe95596c985685722159d98a2d2af50a694 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 14 Jun 2018 22:49:03 -0400 Subject: [PATCH 126/149] Update project file --- Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index ac12ecb1..b02291d6 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -17,7 +17,6 @@ 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; 8E8F1F7D20CF05C40048E8BB /* ArchiveMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */; }; - 8E8F1F7F20CF26CF0048E8BB /* ArchiveMerging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7E20CF26CF0048E8BB /* ArchiveMerging.swift */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF40D4EC1CCE9CB600753ABA /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */; }; AF40D4F11CCE9CB600753ABA /* VimeoUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D4F01CCE9CB600753ABA /* VimeoUploadTests.swift */; }; @@ -90,7 +89,6 @@ 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchiveMigrating.swift; sourceTree = ""; }; - 8E8F1F7E20CF26CF0048E8BB /* ArchiveMerging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArchiveMerging.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoUpload.h; sourceTree = ""; }; AF40D4E61CCE9CB600753ABA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -269,7 +267,6 @@ AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, AF40D5081CCE9DEB00753ABA /* NSFileManager+Extensions.swift */, - 8E8F1F7E20CF26CF0048E8BB /* ArchiveMerging.swift */, ); name = Extensions; path = ../../../VimeoUpload/Extensions; @@ -613,7 +610,6 @@ AF40D58C1CCE9DEB00753ABA /* DiskSpaceOperation.swift in Sources */, AF40D5711CCE9DEB00753ABA /* NSURL+Upload.swift in Sources */, AF40D5531CCE9DEB00753ABA /* Descriptor.swift in Sources */, - 8E8F1F7F20CF26CF0048E8BB /* ArchiveMerging.swift in Sources */, AF40D5771CCE9DEB00753ABA /* VimeoResponseSerializer+OldUpload.swift in Sources */, AF40D55E1CCE9DEB00753ABA /* CameraRollAssetCell.swift in Sources */, 3C53EC241D219C8500B7AA6D /* CAMUploadDescriptor.swift in Sources */, From 0011875e400b17b0e01edf3ac6f1fb8896c48ce2 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 14 Jun 2018 23:05:49 -0400 Subject: [PATCH 127/149] Add documentation --- .../ReachableDescriptorManager.swift | 2 ++ VimeoUpload/Extensions/ArchiveMigrating.swift | 16 ++++++++++++++++ .../Controllers/VideoDeletionManager.swift | 2 ++ .../VideoDescriptorFailureTracker.swift | 2 ++ 4 files changed, 22 insertions(+) diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 8975d5d8..4b53db40 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -61,6 +61,8 @@ import VimeoNetworking /// - documentsFolderURL: The Documents folder's URL of the folder in /// which the upload description will be stored. That folder has the /// same name as the first argument. + /// - migrator: The object used to migrate upload data from one sandbox + /// to another. Internal use only. By default, this argument is `nil`. /// - backgroundSessionIdentifier: An ID of the background upload /// session. /// - sharedContainerIdentifier: An ID of a shared sandbox. By default diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index e40e1dc9..5b8da426 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -24,12 +24,28 @@ // THE SOFTWARE. // +/// Classes conforming to the `ArchiveMigrating` protocol can move +/// upload data from one sandbox to another. This protocol is for +/// internal use only. public protocol ArchiveMigrating { + /// Provides a means for the client to determine if an archive exists + /// at a file path relative to a Documents folder. + /// + /// - Parameter relativeFilePath: The relative path of the archive file. + /// - Returns: `true` if the archive file exists. func archiveFileExists(relativeFilePath: String) -> Bool + /// Provides a means for the client to load an archive file into + /// memory. + /// + /// - Parameter relativeFilePath: The relative path of the archive file. + /// - Returns: The data from the archive file. func loadArchiveFile(relativeFilePath: String) -> Any? + /// Provides a means for the client to delete an archive file. + /// + /// - Parameter relativeFilePath: The relative path of the archive file. func deleteArchiveFile(relativeFilePath: String) } diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index bc84a547..7c5d5fe3 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -77,6 +77,8 @@ public class VideoDeletionManager: NSObject /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - retryCount: The number of retries. The default value is `3`. + /// - migrator: The object used to migrate upload data from one sandbox + /// to another. Internal use only. By default, this argument is `nil`. /// - Returns: `nil` if the keyed archiver cannot load deletions' archive. public init?(sessionManager: VimeoSessionManager, archivePrefix: String? = nil, diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index bd4afb1f..a045b7ce 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -65,6 +65,8 @@ import Foundation /// `true`. /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. + /// - migrator: The object used to migrate upload data from one sandbox + /// to another. Internal use only. By default, this argument is `nil`. /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. public init?(name: String, archivePrefix: String? = nil, From 9626f3ef7bb22ae8f83750fbfb9dbb2e7e92d19a Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 15 Jun 2018 10:10:24 -0400 Subject: [PATCH 128/149] Add documentation --- VimeoUpload/Descriptor System/DescriptorManager.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 69eec975..ffb7a3da 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -364,6 +364,9 @@ open class DescriptorManager: NSObject // MARK: Public API + /// Invalidate the underlying session manager object. You should + /// call this method whenever you're finished using the descriptor + /// manager, else you'll risk leaking memory. public func invalidateSessionManager() { self.sessionManager.invalidateSessionCancelingTasks(false) From 8ba45975df56b8989c9c8a1e46f04db5cd768740 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 21 Jun 2018 10:16:34 -0400 Subject: [PATCH 129/149] Restore descriptor removal code upon invalidating session --- VimeoUpload/Descriptor System/DescriptorManager.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index ffb7a3da..bd28d8fe 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -163,6 +163,8 @@ open class DescriptorManager: NSObject return } + strongSelf.archiver.removeAll() + // TODO: Need to respond to this notification [AH] 2/22/2016 (remove from downloads store, delete active uploads etc.) // Why do we need to check if `error` is `nil` even though the compiler From a8e52ef39bf694c62eee679fe9544639100d2be3 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 3 Jul 2018 12:23:39 -0400 Subject: [PATCH 130/149] Add comments on why safely unwrapping the error is a bad idea --- VimeoUpload/Descriptor System/DescriptorManager.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index bd28d8fe..72f51563 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -175,7 +175,14 @@ open class DescriptorManager: NSObject // as nullable; in reality, this object will be `nil` if we explicitly // invalidate the underlying session. Because of that, it is necessary // to check for `nil` here, else the runtime will crash if the error - // object is `nil`. [VN] (06/13/2018) + // object is `nil`. + // + // In short, trying to safely unwrap `error` will result in a crash, so + // as weird as it sounds, please do not do that here. [VN] (06/13/2018) + + // TODO: Either update AFNetworking to the latest version, or redesign + // our networking library so that we have a better control over this + // error. [VN] (07/03/2018) let theError: NSError? if error != nil { From b986f4750a6c58d4cab0392d8cceb5efb30a3f73 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 3 Jul 2018 12:55:14 -0400 Subject: [PATCH 131/149] Update comments on why the invalid callback can be called --- .../Descriptor System/DescriptorManager.swift | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 72f51563..caa57d1c 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -145,10 +145,22 @@ open class DescriptorManager: NSObject private func setupSessionBlocks() { - // Because we're using a background session we never have cause to invalidate the session, - // Which means that if this block is called it's likely due to an unrecoverable error, - // So we respond by clearing the descriptors set, returning to a blank slate. [AH] 10/28/2015 - + // To restate Alfie's comment on this session invalid callback, in the + // past we did not want to invalidate a background session because we + // wanted to handle upload events coming back to the app as soon as the + // associated upload task is finished, so any invalidation might likely + // be caused by a weird error that we could not handle. That assumption + // is not true anymore unfortunately with the share extension. When the + // app has to handle upload events coming from the share extension, it + // must create an instance of `VimeoSessionManager` whose background ID + // is the same as the one that made the upload task. Because + // `VimeoSessionManager` retains `URLSession` while acting as its + // delegate, and `URLSession` retains its delegate object until it is + // invalidated, an explicit call to the `invalidate` method is necessary + // to avoid leaking memory. If the underlying session is not invalidated, + // not only the app will leak memory but the share extension won't be + // able to upload due to the main app still binding to that session ID. + // [VN] (07/03/2018) self.sessionManager.setSessionDidBecomeInvalidBlock { [weak self] (session, error) -> Void in guard let strongSelf = self else From a10d909905662d85aef8eb0c84eb1a0428b87671 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 3 Jul 2018 13:24:17 -0400 Subject: [PATCH 132/149] Add comment on what to expect for connection error --- VimeoUpload/Descriptor System/DescriptorManager.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index caa57d1c..8a5b0cf7 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -285,8 +285,13 @@ open class DescriptorManager: NSObject return } - // These types of errors can occur when connection drops and before suspend() is called, - // Or when connection drop is slow -> timeouts etc. [AH] 2/22/2016 + // For background upload tasks, keep in mind that if the device cannot + // connect to the Internet, they will not give up right away. Instead, + // they will be retried by the OS on our behalf. This timeout period is + // determined by `URLSessionConfiguration`'s `timeoutIntervalForResource` + // property. By default, it has a value of 7 days, meaning the OS will + // attempt to retry for a week before returning with a connection error. + // [VN] (07/03/2018) let isConnectionError = ((task.error as? NSError)?.isConnectionError() == true || (error as? NSError)?.isConnectionError() == true) if isConnectionError { From 1dc63397de63f4572f7564e043f2b16cc4fe95d8 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Tue, 3 Jul 2018 13:54:36 -0400 Subject: [PATCH 133/149] Move migrator class to be inside VimeoUpload --- .../Descriptor System/DescriptorManager.swift | 3 +- .../ReachableDescriptorManager.swift | 4 - VimeoUpload/Extensions/ArchiveMigrating.swift | 2 +- VimeoUpload/Extensions/ArchiveMigrator.swift | 73 +++++++++++++++++++ .../Controllers/VideoDeletionManager.swift | 6 +- .../VideoDescriptorFailureTracker.swift | 7 +- 6 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 VimeoUpload/Extensions/ArchiveMigrator.swift diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 8a5b0cf7..b0871eaf 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -77,9 +77,10 @@ open class DescriptorManager: NSObject archivePrefix: String?, shouldLoadArchive: Bool, documentsFolderURL: URL, - migrator: ArchiveMigrating? = nil, delegate: DescriptorManagerDelegate? = nil) { + let migrator = ArchiveMigrator(fileManager: FileManager.default) + guard let archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index 4b53db40..bb10e034 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -61,8 +61,6 @@ import VimeoNetworking /// - documentsFolderURL: The Documents folder's URL of the folder in /// which the upload description will be stored. That folder has the /// same name as the first argument. - /// - migrator: The object used to migrate upload data from one sandbox - /// to another. Internal use only. By default, this argument is `nil`. /// - backgroundSessionIdentifier: An ID of the background upload /// session. /// - sharedContainerIdentifier: An ID of a shared sandbox. By default @@ -78,7 +76,6 @@ import VimeoNetworking archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, - migrator: ArchiveMigrating? = nil, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, descriptorManagerDelegate: DescriptorManagerDelegate? = nil, @@ -101,7 +98,6 @@ import VimeoNetworking archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, - migrator: migrator, delegate: descriptorManagerDelegate) self.connectivityManager.delegate = self diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index 5b8da426..f75e343e 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -27,7 +27,7 @@ /// Classes conforming to the `ArchiveMigrating` protocol can move /// upload data from one sandbox to another. This protocol is for /// internal use only. -public protocol ArchiveMigrating +protocol ArchiveMigrating { /// Provides a means for the client to determine if an archive exists /// at a file path relative to a Documents folder. diff --git a/VimeoUpload/Extensions/ArchiveMigrator.swift b/VimeoUpload/Extensions/ArchiveMigrator.swift new file mode 100644 index 00000000..56fc70a0 --- /dev/null +++ b/VimeoUpload/Extensions/ArchiveMigrator.swift @@ -0,0 +1,73 @@ +// +// ArchiveMigrating.swift +// VimeoUpload +// +// Created by Nguyen, Van on 6/1/18. +// Copyright © 2018 Vimeo. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +class ArchiveMigrator: ArchiveMigrating +{ + private let fileManager: FileManager + private let documentsFolderURL: URL + + init?(fileManager: FileManager) + { + guard let documentsFolderURL = try? fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) else + { + return nil + } + + self.documentsFolderURL = documentsFolderURL + self.fileManager = fileManager + } + + func archiveFileExists(relativeFilePath: String) -> Bool + { + let fileURL = self.fileURL(withRelativeFilePath: relativeFilePath) + + return self.fileManager.fileExists(atPath: fileURL.path) + } + + func loadArchiveFile(relativeFilePath: String) -> Any? + { + let fileURL = self.fileURL(withRelativeFilePath: relativeFilePath) + + return NSKeyedUnarchiver.unarchiveObject(withFile: fileURL.path) + } + + func deleteArchiveFile(relativeFilePath: String) + { + guard self.archiveFileExists(relativeFilePath: relativeFilePath) == true else + { + return + } + + let fileURL = self.fileURL(withRelativeFilePath: relativeFilePath) + + try? self.fileManager.removeItem(at: fileURL) + } + + private func fileURL(withRelativeFilePath relativeFilePath: String) -> URL + { + return self.documentsFolderURL.appendingPathComponent(relativeFilePath) + } +} diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 7c5d5fe3..2ff6f4c9 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -77,15 +77,12 @@ public class VideoDeletionManager: NSObject /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - retryCount: The number of retries. The default value is `3`. - /// - migrator: The object used to migrate upload data from one sandbox - /// to another. Internal use only. By default, this argument is `nil`. /// - Returns: `nil` if the keyed archiver cannot load deletions' archive. public init?(sessionManager: VimeoSessionManager, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, documentsFolderURL: URL, - retryCount: Int = VideoDeletionManager.DefaultRetryCount, - migrator: ArchiveMigrating? = nil) + retryCount: Int = VideoDeletionManager.DefaultRetryCount) { guard let archiver = VideoDeletionManager.setupArchiver(name: VideoDeletionManager.DeletionsArchiveKey, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -106,6 +103,7 @@ public class VideoDeletionManager: NSObject self.addObservers() self.reachabilityDidChange(nil) // Set suspended state + let migrator = ArchiveMigrator(fileManager: FileManager.default) self.deletions = self.loadDeletions(withMigrator: migrator) self.startDeletions() } diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index a045b7ce..647123e0 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -65,14 +65,11 @@ import Foundation /// `true`. /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. - /// - migrator: The object used to migrate upload data from one sandbox - /// to another. Internal use only. By default, this argument is `nil`. /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. public init?(name: String, archivePrefix: String? = nil, shouldLoadArchive: Bool = true, - documentsFolderURL: URL, - migrator: ArchiveMigrating? = nil) + documentsFolderURL: URL) { guard let archiver = type(of: self).setupArchiver(folderName: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -85,6 +82,8 @@ import Foundation super.init() + let migrator = ArchiveMigrator(fileManager: FileManager.default) + self.failedDescriptors = self.load(folderName: name, migrator: migrator) self.addObservers() From bb0ff41f681e29f580f9bee287bb96a5fea4b26c Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 5 Jul 2018 14:43:43 -0400 Subject: [PATCH 134/149] Update project file --- Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj index b02291d6..15672f6e 100644 --- a/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj +++ b/Framework/VimeoUpload/VimeoUpload.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 5C9E3CA51EA66187000D1F6B /* DescriptorKVObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */; }; 8D9A15BCC5ABADC2D001B20C /* Pods_VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */; }; 8E8F1F7D20CF05C40048E8BB /* ArchiveMigrating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */; }; + 8E8F1FC720EE9E2A0048E8BB /* ArchiveMigrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8F1FC620EE9E2A0048E8BB /* ArchiveMigrator.swift */; }; AF40D4E51CCE9CB600753ABA /* VimeoUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */; settings = {ATTRIBUTES = (Public, ); }; }; AF40D4EC1CCE9CB600753ABA /* VimeoUpload.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */; }; AF40D4F11CCE9CB600753ABA /* VimeoUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF40D4F01CCE9CB600753ABA /* VimeoUploadTests.swift */; }; @@ -89,6 +90,7 @@ 4D4E8D665288660F1F668B91 /* Pods_VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5C9E3CA41EA66187000D1F6B /* DescriptorKVObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescriptorKVObserver.swift; sourceTree = ""; }; 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchiveMigrating.swift; sourceTree = ""; }; + 8E8F1FC620EE9E2A0048E8BB /* ArchiveMigrator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchiveMigrator.swift; sourceTree = ""; }; AF40D4E11CCE9CB600753ABA /* VimeoUpload.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoUpload.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF40D4E41CCE9CB600753ABA /* VimeoUpload.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoUpload.h; sourceTree = ""; }; AF40D4E61CCE9CB600753ABA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -263,6 +265,7 @@ AF40D5051CCE9DEB00753ABA /* Extensions */ = { isa = PBXGroup; children = ( + 8E8F1FC620EE9E2A0048E8BB /* ArchiveMigrator.swift */, 8E8F1F7C20CF05C40048E8BB /* ArchiveMigrating.swift */, AF40D5061CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift */, AF40D5071CCE9DEB00753ABA /* NSError+Extensions.swift */, @@ -614,6 +617,7 @@ AF40D55E1CCE9DEB00753ABA /* CameraRollAssetCell.swift in Sources */, 3C53EC241D219C8500B7AA6D /* CAMUploadDescriptor.swift in Sources */, AF40D5581CCE9DEB00753ABA /* ProgressDescriptor.swift in Sources */, + 8E8F1FC720EE9E2A0048E8BB /* ArchiveMigrator.swift in Sources */, AF40D55A1CCE9DEB00753ABA /* AFURLSessionManager+Extensions.swift in Sources */, 3EA2DAD81DFF3E0F006E2C65 /* ExportSessionOperation.swift in Sources */, AF40D5791CCE9DEB00753ABA /* ConcurrentOperation.swift in Sources */, From 8dff4dfe2c792de85ab08eb61a4701d342ad9cf2 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 5 Jul 2018 15:16:33 -0400 Subject: [PATCH 135/149] Use URL objects instead --- .../DescriptorManagerArchiver.swift | 13 ++++---- VimeoUpload/Extensions/ArchiveMigrating.swift | 31 +++++++------------ VimeoUpload/Extensions/ArchiveMigrator.swift | 14 ++++----- .../Controllers/VideoDeletionManager.swift | 5 ++- .../VideoDescriptorFailureTracker.swift | 7 +++-- 5 files changed, 31 insertions(+), 39 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 09b0c32c..179f2f58 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -64,8 +64,9 @@ class DescriptorManagerArchiver self.shouldLoadArchive = shouldLoadArchive - self.descriptors = self.loadDescriptors(withMigrator: migrator, relativeFolderPath: name) - self.suspended = self.loadSuspendedState(withMigrator: migrator, relativeFolderPath: name) + let relativeFolderURL = URL(string: name) + self.descriptors = self.loadDescriptors(withMigrator: migrator, relativeFolderURL: relativeFolderURL) + self.suspended = self.loadSuspendedState(withMigrator: migrator, relativeFolderURL: relativeFolderURL) } // MARK: Setup - Archiving @@ -89,14 +90,14 @@ class DescriptorManagerArchiver return KeyedArchiver(basePath: typeFolderURL.path, archivePrefix: archivePrefix) } - private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, relativeFolderPath: String) -> Set + private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, relativeFolderURL: URL?) -> Set { guard self.shouldLoadArchive == true else { return Set() } - guard let descriptors = ArchiveDataLoader.loadData(relativeFolderPath: relativeFolderPath, + guard let descriptors = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: DescriptorManagerArchiver.DescriptorsArchiveKey, migrator: migrator) as? Set @@ -113,14 +114,14 @@ class DescriptorManagerArchiver self.archiver.save(object: self.descriptors, key: type(of: self).DescriptorsArchiveKey) } - private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, relativeFolderPath: String) -> Bool + private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, relativeFolderURL: URL?) -> Bool { guard self.shouldLoadArchive == true else { return false } - guard let suspendedState = ArchiveDataLoader.loadData(relativeFolderPath: relativeFolderPath, + guard let suspendedState = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: DescriptorManagerArchiver.SuspendedArchiveKey, migrator: migrator) as? Bool diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index f75e343e..53009cdb 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -32,47 +32,38 @@ protocol ArchiveMigrating /// Provides a means for the client to determine if an archive exists /// at a file path relative to a Documents folder. /// - /// - Parameter relativeFilePath: The relative path of the archive file. + /// - Parameter relativeFileURL: The relative URL of the archive file. /// - Returns: `true` if the archive file exists. - func archiveFileExists(relativeFilePath: String) -> Bool + func archiveFileExists(relativeFileURL: URL) -> Bool /// Provides a means for the client to load an archive file into /// memory. /// /// - Parameter relativeFilePath: The relative path of the archive file. /// - Returns: The data from the archive file. - func loadArchiveFile(relativeFilePath: String) -> Any? + func loadArchiveFile(relativeFileURL: URL) -> Any? /// Provides a means for the client to delete an archive file. /// /// - Parameter relativeFilePath: The relative path of the archive file. - func deleteArchiveFile(relativeFilePath: String) + func deleteArchiveFile(relativeFileURL: URL) } struct ArchiveDataLoader { - static func loadData(relativeFolderPath: String, archiver: KeyedArchiver, key: String, migrator: ArchiveMigrating?) -> Any? + static func loadData(relativeFolderURL: URL?, archiver: KeyedArchiver, key: String, migrator: ArchiveMigrating?) -> Any? { let dataAtNewLocation = archiver.loadObject(for: key) - - guard let migrator = migrator else - { - return dataAtNewLocation - } - - let relativeFilePath = relativeFolderPath + "/" + key + ".archive" - - guard migrator.archiveFileExists(relativeFilePath: relativeFilePath) == true else - { - return dataAtNewLocation - } - - guard let dataAtOldLocation = migrator.loadArchiveFile(relativeFilePath: relativeFilePath) else + + guard let migrator = migrator, + let relativeFileURL = URL(string: key + ".archive", relativeTo: relativeFolderURL), + let dataAtOldLocation = migrator.loadArchiveFile(relativeFileURL: relativeFileURL) + else { return dataAtNewLocation } - migrator.deleteArchiveFile(relativeFilePath: relativeFilePath) + migrator.deleteArchiveFile(relativeFileURL: relativeFileURL) return dataAtOldLocation } diff --git a/VimeoUpload/Extensions/ArchiveMigrator.swift b/VimeoUpload/Extensions/ArchiveMigrator.swift index 56fc70a0..64e11e35 100644 --- a/VimeoUpload/Extensions/ArchiveMigrator.swift +++ b/VimeoUpload/Extensions/ArchiveMigrator.swift @@ -40,28 +40,28 @@ class ArchiveMigrator: ArchiveMigrating self.fileManager = fileManager } - func archiveFileExists(relativeFilePath: String) -> Bool + func archiveFileExists(relativeFileURL: URL) -> Bool { - let fileURL = self.fileURL(withRelativeFilePath: relativeFilePath) + let fileURL = self.fileURL(withRelativeFilePath: relativeFileURL.path) return self.fileManager.fileExists(atPath: fileURL.path) } - func loadArchiveFile(relativeFilePath: String) -> Any? + func loadArchiveFile(relativeFileURL: URL) -> Any? { - let fileURL = self.fileURL(withRelativeFilePath: relativeFilePath) + let fileURL = self.fileURL(withRelativeFilePath: relativeFileURL.path) return NSKeyedUnarchiver.unarchiveObject(withFile: fileURL.path) } - func deleteArchiveFile(relativeFilePath: String) + func deleteArchiveFile(relativeFileURL: URL) { - guard self.archiveFileExists(relativeFilePath: relativeFilePath) == true else + guard self.archiveFileExists(relativeFileURL: relativeFileURL) == true else { return } - let fileURL = self.fileURL(withRelativeFilePath: relativeFilePath) + let fileURL = self.fileURL(withRelativeFilePath: relativeFileURL.path) try? self.fileManager.removeItem(at: fileURL) } diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 2ff6f4c9..9bee4fb7 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -139,9 +139,8 @@ public class VideoDeletionManager: NSObject return [:] } - let relativeFolderPath = VideoDeletionManager.DeletionsArchiveKey + "/" + VideoDeletionManager.DeletionsArchiveKey - - guard let retries = ArchiveDataLoader.loadData(relativeFolderPath: relativeFolderPath, + let relativeFolderURL = URL(string: VideoDeletionManager.DeletionsArchiveKey, relativeTo: URL(string: VideoDeletionManager.DeletionsArchiveKey)) + guard let retries = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: VideoDeletionManager.DeletionsArchiveKey, migrator: migrator) as? [VideoUri: Int] diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 647123e0..8abb15d2 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -84,7 +84,8 @@ import Foundation let migrator = ArchiveMigrator(fileManager: FileManager.default) - self.failedDescriptors = self.load(folderName: name, migrator: migrator) + let relativeFolderURL = URL(string: name) + self.failedDescriptors = self.load(relativeFolderURL: relativeFolderURL, migrator: migrator) self.addObservers() } @@ -110,14 +111,14 @@ import Foundation return KeyedArchiver(basePath: folderURL.path, archivePrefix: archivePrefix) } - private func load(folderName: String, migrator: ArchiveMigrating?) -> [String: Descriptor] + private func load(relativeFolderURL: URL?, migrator: ArchiveMigrating?) -> [String: Descriptor] { guard self.shouldLoadArchive == true else { return [:] } - guard let failedDescriptors = ArchiveDataLoader.loadData(relativeFolderPath: folderName, + guard let failedDescriptors = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: VideoDescriptorFailureTracker.ArchiveKey, migrator: migrator) as? [String: Descriptor] From f300cedc46970523297fc173364c763df0fa38fa Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 5 Jul 2018 16:19:42 -0400 Subject: [PATCH 136/149] Append path components --- VimeoUpload/Extensions/ArchiveMigrating.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index 53009cdb..4320d221 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -54,9 +54,9 @@ struct ArchiveDataLoader static func loadData(relativeFolderURL: URL?, archiver: KeyedArchiver, key: String, migrator: ArchiveMigrating?) -> Any? { let dataAtNewLocation = archiver.loadObject(for: key) - + guard let migrator = migrator, - let relativeFileURL = URL(string: key + ".archive", relativeTo: relativeFolderURL), + let relativeFileURL = relativeFolderURL?.appendingPathComponent(key + ".archive"), let dataAtOldLocation = migrator.loadArchiveFile(relativeFileURL: relativeFileURL) else { From 2dbd53cac0cf2d027475a73c205a26b7281895a0 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 5 Jul 2018 16:59:13 -0400 Subject: [PATCH 137/149] Thoroughly check the prefix --- .../Descriptor System/DescriptorManager.swift | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index b0871eaf..63020056 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -34,7 +34,6 @@ public enum DescriptorManagerNotification: String case DescriptorDidSucceed = "DescriptorDidSucceedNotification" case DescriptorDidCancel = "DescriptorDidCancelNotification" case SessionDidBecomeInvalid = "SessionDidBecomeInvalidNotification" - case DescriptorFromPrefixedArchiveDidSuspend = "DescriptorFromPrefixedArchiveDidSuspend" } public typealias TestClosure = (Descriptor) -> Bool @@ -42,7 +41,12 @@ public typealias VoidClosure = () -> Void open class DescriptorManager: NSObject { - private static let QueueName = "descriptor_manager.synchronization_queue" + private struct Constants + { + static let QueueName = "descriptor_manager.synchronization_queue" + static let ShareExtensionArchivePrefix = "share_extension" + static let ShareExtensionDescriptorDidSuspend = "ShareExtensionDescriptorDidSuspend" + } // MARK: @@ -54,7 +58,7 @@ open class DescriptorManager: NSObject // MARK: private let archiver: DescriptorManagerArchiver // This object handles persistence of descriptors and suspended state to disk - private let synchronizationQueue = DispatchQueue(label: DescriptorManager.QueueName, attributes: []) + private let synchronizationQueue = DispatchQueue(label: Constants.QueueName, attributes: []) // MARK: @@ -296,12 +300,12 @@ open class DescriptorManager: NSObject let isConnectionError = ((task.error as? NSError)?.isConnectionError() == true || (error as? NSError)?.isConnectionError() == true) if isConnectionError { - if let _ = strongSelf.archivePrefix + if let prefix = strongSelf.archivePrefix, prefix == Constants.ShareExtensionArchivePrefix { descriptor.suspend(sessionManager: strongSelf.sessionManager) strongSelf.save() - NotificationCenter.default.post(name: Notification.Name(DescriptorManagerNotification.DescriptorFromPrefixedArchiveDidSuspend.rawValue), object: descriptor) + NotificationCenter.default.post(name: Notification.Name(Constants.ShareExtensionDescriptorDidSuspend), object: descriptor) } else { From 7d7833ee4104984c545d127aba1c8154351a07e6 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 6 Jul 2018 11:50:52 -0400 Subject: [PATCH 138/149] Move migrator instantiation to inside of archiver manager --- VimeoUpload/Descriptor System/DescriptorManager.swift | 5 +---- .../Descriptor System/DescriptorManagerArchiver.swift | 5 +++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 63020056..2540923d 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -83,13 +83,10 @@ open class DescriptorManager: NSObject documentsFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) { - let migrator = ArchiveMigrator(fileManager: FileManager.default) - guard let archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, shouldLoadArchive: shouldLoadArchive, - documentsFolderURL: documentsFolderURL, - migrator: migrator) + documentsFolderURL: documentsFolderURL) else { return nil diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index 179f2f58..d22ddfa4 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -52,8 +52,7 @@ class DescriptorManagerArchiver init?(name: String, archivePrefix: String?, shouldLoadArchive: Bool = true, - documentsFolderURL: URL, - migrator: ArchiveMigrating?) + documentsFolderURL: URL) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else { @@ -64,6 +63,8 @@ class DescriptorManagerArchiver self.shouldLoadArchive = shouldLoadArchive + let migrator = ArchiveMigrator(fileManager: FileManager.default) + let relativeFolderURL = URL(string: name) self.descriptors = self.loadDescriptors(withMigrator: migrator, relativeFolderURL: relativeFolderURL) self.suspended = self.loadSuspendedState(withMigrator: migrator, relativeFolderURL: relativeFolderURL) From 736a1bb9a1001c3ada6feae06e388b1d5014b38e Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 6 Jul 2018 11:56:01 -0400 Subject: [PATCH 139/149] Use `appendingPathComponent` instead --- VimeoUpload/Upload/Controllers/VideoDeletionManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 9bee4fb7..6f664442 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -139,7 +139,7 @@ public class VideoDeletionManager: NSObject return [:] } - let relativeFolderURL = URL(string: VideoDeletionManager.DeletionsArchiveKey, relativeTo: URL(string: VideoDeletionManager.DeletionsArchiveKey)) + let relativeFolderURL = URL(string: VideoDeletionManager.DeletionsArchiveKey)?.appendingPathComponent(VideoDeletionManager.DeletionsArchiveKey) guard let retries = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: VideoDeletionManager.DeletionsArchiveKey, From 155d599429217ee8080858b09946838df9b0043e Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Fri, 6 Jul 2018 14:20:47 -0400 Subject: [PATCH 140/149] Move migrator instantiation into inside the loading function --- .../Descriptor System/DescriptorManagerArchiver.swift | 6 ++---- VimeoUpload/Extensions/ArchiveMigrating.swift | 4 ++-- VimeoUpload/Upload/Controllers/VideoDeletionManager.swift | 3 +-- .../Descriptor System/VideoDescriptorFailureTracker.swift | 3 +-- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index d22ddfa4..cc524d7d 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -100,8 +100,7 @@ class DescriptorManagerArchiver guard let descriptors = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, - key: DescriptorManagerArchiver.DescriptorsArchiveKey, - migrator: migrator) as? Set + key: DescriptorManagerArchiver.DescriptorsArchiveKey) as? Set else { return Set() @@ -124,8 +123,7 @@ class DescriptorManagerArchiver guard let suspendedState = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, - key: DescriptorManagerArchiver.SuspendedArchiveKey, - migrator: migrator) as? Bool + key: DescriptorManagerArchiver.SuspendedArchiveKey) as? Bool else { return false diff --git a/VimeoUpload/Extensions/ArchiveMigrating.swift b/VimeoUpload/Extensions/ArchiveMigrating.swift index 4320d221..371b8f41 100644 --- a/VimeoUpload/Extensions/ArchiveMigrating.swift +++ b/VimeoUpload/Extensions/ArchiveMigrating.swift @@ -51,11 +51,11 @@ protocol ArchiveMigrating struct ArchiveDataLoader { - static func loadData(relativeFolderURL: URL?, archiver: KeyedArchiver, key: String, migrator: ArchiveMigrating?) -> Any? + static func loadData(relativeFolderURL: URL?, archiver: KeyedArchiver, key: String) -> Any? { let dataAtNewLocation = archiver.loadObject(for: key) - guard let migrator = migrator, + guard let migrator = ArchiveMigrator(fileManager: FileManager.default), let relativeFileURL = relativeFolderURL?.appendingPathComponent(key + ".archive"), let dataAtOldLocation = migrator.loadArchiveFile(relativeFileURL: relativeFileURL) else diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index 6f664442..f085721f 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -142,8 +142,7 @@ public class VideoDeletionManager: NSObject let relativeFolderURL = URL(string: VideoDeletionManager.DeletionsArchiveKey)?.appendingPathComponent(VideoDeletionManager.DeletionsArchiveKey) guard let retries = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, - key: VideoDeletionManager.DeletionsArchiveKey, - migrator: migrator) as? [VideoUri: Int] + key: VideoDeletionManager.DeletionsArchiveKey) as? [VideoUri: Int] else { return [:] diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 8abb15d2..2409f21b 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -120,8 +120,7 @@ import Foundation guard let failedDescriptors = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, - key: VideoDescriptorFailureTracker.ArchiveKey, - migrator: migrator) as? [String: Descriptor] + key: VideoDescriptorFailureTracker.ArchiveKey) as? [String: Descriptor] else { return [:] From 1fb21be9304971ab25423b02484834422563c132 Mon Sep 17 00:00:00 2001 From: Freddy Kellison-Linn Date: Tue, 24 Jul 2018 13:56:06 -0400 Subject: [PATCH 141/149] Replace use of '+' with string interpolation --- VimeoUpload/UIKit/Extensions/NSString+Conversions.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/VimeoUpload/UIKit/Extensions/NSString+Conversions.swift b/VimeoUpload/UIKit/Extensions/NSString+Conversions.swift index b2b53c22..c1030d96 100644 --- a/VimeoUpload/UIKit/Extensions/NSString+Conversions.swift +++ b/VimeoUpload/UIKit/Extensions/NSString+Conversions.swift @@ -83,18 +83,18 @@ public extension NSString { if minutes > 0 { - result = minutes < 10 ? "0\(minutes)" + ":\(result)" : "\(minutes)" + ":\(result)" + result = minutes < 10 ? "0\(minutes):\(result)" : "\(minutes):\(result)" } else { result = "00:\(result)" } - result = "\(hours)" + ":\(result)" + result = "\(hours):\(result)" } else { - result = "\(minutes)" + ":\(result)" + result = "\(minutes):\(result)" } return result as NSString From 200c46ee0ca063e055692ccabd4b80017ff1cbe4 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 26 Jul 2018 15:46:21 -0400 Subject: [PATCH 142/149] Remove `shouldLoadArchive` BS --- .../Descriptor System/DescriptorManager.swift | 2 -- .../DescriptorManagerArchiver.swift | 15 --------------- .../ReachableDescriptorManager.swift | 6 ------ .../Upload/Controllers/VideoDeletionManager.swift | 12 ------------ .../VideoDescriptorFailureTracker.swift | 13 ------------- 5 files changed, 48 deletions(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index 2540923d..f74d3ca0 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -79,13 +79,11 @@ open class DescriptorManager: NSObject init?(sessionManager: AFURLSessionManager, name: String, archivePrefix: String?, - shouldLoadArchive: Bool, documentsFolderURL: URL, delegate: DescriptorManagerDelegate? = nil) { guard let archiver = DescriptorManagerArchiver(name: name, archivePrefix: archivePrefix, - shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL) else { diff --git a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift index cc524d7d..f17b76b3 100644 --- a/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift +++ b/VimeoUpload/Descriptor System/DescriptorManagerArchiver.swift @@ -44,14 +44,11 @@ class DescriptorManagerArchiver self.saveSuspendedState() } } - - private let shouldLoadArchive: Bool // MARK: - Initialization init?(name: String, archivePrefix: String?, - shouldLoadArchive: Bool = true, documentsFolderURL: URL) { guard let archiver = type(of: self).setupArchiver(name: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else @@ -60,8 +57,6 @@ class DescriptorManagerArchiver } self.archiver = archiver - - self.shouldLoadArchive = shouldLoadArchive let migrator = ArchiveMigrator(fileManager: FileManager.default) @@ -93,11 +88,6 @@ class DescriptorManagerArchiver private func loadDescriptors(withMigrator migrator: ArchiveMigrating?, relativeFolderURL: URL?) -> Set { - guard self.shouldLoadArchive == true else - { - return Set() - } - guard let descriptors = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: DescriptorManagerArchiver.DescriptorsArchiveKey) as? Set @@ -116,11 +106,6 @@ class DescriptorManagerArchiver private func loadSuspendedState(withMigrator migrator: ArchiveMigrating?, relativeFolderURL: URL?) -> Bool { - guard self.shouldLoadArchive == true else - { - return false - } - guard let suspendedState = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: DescriptorManagerArchiver.SuspendedArchiveKey) as? Bool diff --git a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift index bb10e034..8aea4fda 100644 --- a/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift +++ b/VimeoUpload/Descriptor System/ReachableDescriptorManager.swift @@ -54,10 +54,6 @@ import VimeoNetworking /// - archivePrefix: The prefix of the archive file. You pass in the /// prefix if you want to keep track of multiple archive files. By /// default, it has the value of `nil`. - /// - shouldLoadArchive: A Boolean value that determines if the - /// descriptor manager should load descriptors from the archive file - /// upon instantiating. By default, this argument has the value of - /// `true`. /// - documentsFolderURL: The Documents folder's URL of the folder in /// which the upload description will be stored. That folder has the /// same name as the first argument. @@ -74,7 +70,6 @@ import VimeoNetworking /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. public init?(name: String, archivePrefix: String? = nil, - shouldLoadArchive: Bool = true, documentsFolderURL: URL, backgroundSessionIdentifier: String, sharedContainerIdentifier: String? = nil, @@ -96,7 +91,6 @@ import VimeoNetworking super.init(sessionManager: backgroundSessionManager, name: name, archivePrefix: archivePrefix, - shouldLoadArchive: shouldLoadArchive, documentsFolderURL: documentsFolderURL, delegate: descriptorManagerDelegate) diff --git a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift index f085721f..1e63449a 100644 --- a/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift +++ b/VimeoUpload/Upload/Controllers/VideoDeletionManager.swift @@ -43,7 +43,6 @@ public class VideoDeletionManager: NSObject private var deletions: [VideoUri: Int] = [:] private let operationQueue: OperationQueue private let archiver: KeyedArchiver - private let shouldLoadArchive: Bool // MARK: - Initialization @@ -70,17 +69,12 @@ public class VideoDeletionManager: NSObject /// - archivePrefix: The prefix of the archive file. You pass in the /// prefix if you want to keep track of multiple archive files. By /// default, it has the value of `nil`. - /// - shouldLoadArchive: A Boolean value that determines if the - /// descriptor manager should load descriptors from the archive file - /// upon instantiating. By default, this argument has the value of - /// `true`. /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - retryCount: The number of retries. The default value is `3`. /// - Returns: `nil` if the keyed archiver cannot load deletions' archive. public init?(sessionManager: VimeoSessionManager, archivePrefix: String? = nil, - shouldLoadArchive: Bool = true, documentsFolderURL: URL, retryCount: Int = VideoDeletionManager.DefaultRetryCount) { @@ -93,7 +87,6 @@ public class VideoDeletionManager: NSObject self.sessionManager = sessionManager self.retryCount = retryCount - self.shouldLoadArchive = shouldLoadArchive self.operationQueue = OperationQueue() self.operationQueue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount @@ -134,11 +127,6 @@ public class VideoDeletionManager: NSObject private func loadDeletions(withMigrator migrator: ArchiveMigrating?) -> [VideoUri: Int] { - guard self.shouldLoadArchive == true else - { - return [:] - } - let relativeFolderURL = URL(string: VideoDeletionManager.DeletionsArchiveKey)?.appendingPathComponent(VideoDeletionManager.DeletionsArchiveKey) guard let retries = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, diff --git a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift index 2409f21b..94f881ac 100644 --- a/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift +++ b/VimeoUpload/Upload/Descriptor System/VideoDescriptorFailureTracker.swift @@ -34,7 +34,6 @@ import Foundation private let archiver: KeyedArchiver private var failedDescriptors: [String: Descriptor] = [:] - private let shouldLoadArchive: Bool // MARK: - Initialization @@ -59,16 +58,11 @@ import Foundation /// - archivePrefix: The prefix of the archive file. You pass in the /// prefix if you want to keep track of multiple archive files. By /// default, it has the value of `nil`. - /// - shouldLoadArchive: A Boolean value that determines if the - /// descriptor manager should load descriptors from the archive file - /// upon instantiating. By default, this argument has the value of - /// `true`. /// - documentsFolderURL: The Documents folder's URL in which the folder /// is located. /// - Returns: `nil` if the keyed archiver cannot load descriptors' archive. public init?(name: String, archivePrefix: String? = nil, - shouldLoadArchive: Bool = true, documentsFolderURL: URL) { guard let archiver = type(of: self).setupArchiver(folderName: name, archivePrefix: archivePrefix, documentsFolderURL: documentsFolderURL) else @@ -78,8 +72,6 @@ import Foundation self.archiver = archiver - self.shouldLoadArchive = shouldLoadArchive - super.init() let migrator = ArchiveMigrator(fileManager: FileManager.default) @@ -113,11 +105,6 @@ import Foundation private func load(relativeFolderURL: URL?, migrator: ArchiveMigrating?) -> [String: Descriptor] { - guard self.shouldLoadArchive == true else - { - return [:] - } - guard let failedDescriptors = ArchiveDataLoader.loadData(relativeFolderURL: relativeFolderURL, archiver: self.archiver, key: VideoDescriptorFailureTracker.ArchiveKey) as? [String: Descriptor] From 1c6f7fbd7c340ce1a10ddbc43853f6ed1da3fb74 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Wed, 8 Aug 2018 17:00:45 -0400 Subject: [PATCH 143/149] Point VimeoNetworking to its `develop` branch --- .../AppIcon.appiconset/Contents.json | 5 +++++ Podfile | 6 +++--- Podfile.lock | 12 ++++++------ Pods/Local Podspecs/VimeoNetworking.podspec.json | 7 ++++--- Pods/Manifest.lock | 12 ++++++------ .../VimeoNetworking/Info.plist | 2 +- Pods/VimeoNetworking/README.md | 12 ++++++------ .../VimeoNetworking/Sources/AccountStore.swift | 4 ++-- .../Sources/AuthenticationController.swift | 6 +++--- .../VimeoNetworking/Sources/KeychainStore.swift | 2 +- .../Sources/Models/VIMLiveChatUser.swift | 2 +- .../VimeoNetworking/Sources/Models/VIMUser.h | 4 +++- .../VimeoNetworking/Sources/Models/VIMUser.m | 14 ++++++++++++++ .../VimeoNetworking/Sources/Models/VIMUserBadge.h | 4 +++- .../VimeoNetworking/Sources/Models/VIMUserBadge.m | 5 +++++ .../VimeoNetworking/Sources/Models/VIMVideo.h | 4 +++- .../VimeoNetworking/Sources/Models/VIMVideo.m | 12 ++++++++++++ .../Sources/Request+Authentication.swift | 2 +- .../VimeoNetworking/Sources/Request+Cache.swift | 2 +- .../Sources/Request+Notifications.swift | 2 +- .../VimeoNetworking/Sources/Request+Picture.swift | 2 +- .../VimeoNetworking/Sources/Request+Trigger.swift | 2 +- .../VimeoNetworking/Sources/Request+Video.swift | 2 +- .../VimeoNetworking/Sources/Response.swift | 2 +- .../VimeoNetworking/Sources/ResponseCache.swift | 8 ++++---- .../VimeoNetworking/Sources/Result.swift | 2 +- .../VimeoNetworking/Sources/VimeoClient.swift | 4 ++-- .../Sources/VimeoRequestSerializer.swift | 6 +++--- .../Sources/VimeoSessionManager.swift | 4 ++-- 29 files changed, 97 insertions(+), 54 deletions(-) diff --git a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Assets.xcassets/AppIcon.appiconset/Contents.json index b8236c65..19882d56 100644 --- a/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Examples/VimeoUpload-iOS/VimeoUpload-iOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -39,6 +39,11 @@ "idiom" : "iphone", "size" : "60x60", "scale" : "3x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" } ], "info" : { diff --git a/Podfile b/Podfile index 83c51829..edefcd46 100644 --- a/Podfile +++ b/Podfile @@ -6,14 +6,14 @@ project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target 'VimeoUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/VIM-5876-Share-Extension' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' project 'Framework/VimeoUpload/VimeoUpload.xcodeproj' end target :'VimeoUpload-iOS' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/VIM-5876-Share-Extension' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' project 'Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj' target "VimeoUpload-iOSTests" do @@ -24,7 +24,7 @@ end target :'VimeoUpload-iOS-OldUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'feature/VIM-5876-Share-Extension' + pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target "VimeoUpload-iOS-OldUploadTests" do diff --git a/Podfile.lock b/Podfile.lock index a3138311..9d6bfc1a 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -14,11 +14,11 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (3.1.0): + - VimeoNetworking (3.2.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-5876-Share-Extension`)" + - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`)" SPEC REPOS: https://github.com/cocoapods/specs.git: @@ -26,18 +26,18 @@ SPEC REPOS: EXTERNAL SOURCES: VimeoNetworking: - :branch: feature/VIM-5876-Share-Extension + :branch: develop :git: "git@github.com:vimeo/VimeoNetworking.git" CHECKOUT OPTIONS: VimeoNetworking: - :commit: dccd197b269764e1e42b3377d083391d8746bcbb + :commit: 395710a68cb5c81a2089de94fb3b7fe28bf4c210 :git: "git@github.com:vimeo/VimeoNetworking.git" SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 64fe0a9f12d106c2fe1c54f4114b25a80931bf37 + VimeoNetworking: cef00b867495a61e9b5e10f5a6b309d82a200c02 -PODFILE CHECKSUM: b99f0640652fedc418368de2440c51afd1125a48 +PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 COCOAPODS: 1.5.2 diff --git a/Pods/Local Podspecs/VimeoNetworking.podspec.json b/Pods/Local Podspecs/VimeoNetworking.podspec.json index c44c916a..070b7942 100644 --- a/Pods/Local Podspecs/VimeoNetworking.podspec.json +++ b/Pods/Local Podspecs/VimeoNetworking.podspec.json @@ -1,6 +1,6 @@ { "name": "VimeoNetworking", - "version": "3.1.0", + "version": "3.2.0", "summary": "A library for interacting with the Vimeo API.", "description": "An iOS/tvOS library for interacting with the Vimeo API.", "homepage": "https://github.com/vimeo/VimeoNetworking", @@ -14,7 +14,8 @@ "Mike Westendorf": "mikew@vimeo.com", "Jason Hawkins": "jasonh@vimeo.com", "Jennifer Lim": "jennifer@vimeo.com", - "Van Nguyen": "van@vimeo.com" + "Van Nguyen": "van@vimeo.com", + "Freddy Kellison-Linn": "freddyk@vimeo.com>" }, "social_media_url": "http://twitter.com/vimeo", "platforms": { @@ -24,7 +25,7 @@ "requires_arc": true, "source": { "git": "https://github.com/vimeo/VimeoNetworking.git", - "tag": "3.1.0" + "tag": "3.2.0" }, "source_files": "VimeoNetworking/Sources/**/*.{h,m,swift}", "resources": "VimeoNetworking/Resources/**/*.*", diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index a3138311..9d6bfc1a 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -14,11 +14,11 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (3.1.0): + - VimeoNetworking (3.2.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `feature/VIM-5876-Share-Extension`)" + - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`)" SPEC REPOS: https://github.com/cocoapods/specs.git: @@ -26,18 +26,18 @@ SPEC REPOS: EXTERNAL SOURCES: VimeoNetworking: - :branch: feature/VIM-5876-Share-Extension + :branch: develop :git: "git@github.com:vimeo/VimeoNetworking.git" CHECKOUT OPTIONS: VimeoNetworking: - :commit: dccd197b269764e1e42b3377d083391d8746bcbb + :commit: 395710a68cb5c81a2089de94fb3b7fe28bf4c210 :git: "git@github.com:vimeo/VimeoNetworking.git" SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: 64fe0a9f12d106c2fe1c54f4114b25a80931bf37 + VimeoNetworking: cef00b867495a61e9b5e10f5a6b309d82a200c02 -PODFILE CHECKSUM: b99f0640652fedc418368de2440c51afd1125a48 +PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 COCOAPODS: 1.5.2 diff --git a/Pods/Target Support Files/VimeoNetworking/Info.plist b/Pods/Target Support Files/VimeoNetworking/Info.plist index 90db36aa..9ae03a0c 100644 --- a/Pods/Target Support Files/VimeoNetworking/Info.plist +++ b/Pods/Target Support Files/VimeoNetworking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.1.0 + 3.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/Pods/VimeoNetworking/README.md b/Pods/VimeoNetworking/README.md index fef1f9df..dc46d332 100644 --- a/Pods/VimeoNetworking/README.md +++ b/Pods/VimeoNetworking/README.md @@ -10,18 +10,18 @@ - tvOS (9.0+) ## Installing -At this stage of development VimeoNetworking is not yet available as a CocoaPod via the public Podspecs repo. For now we recommend including it in your project as a submodule. If you'd still like to work with VimeoNetworking as a development pod, simply configure your Podfile as shown below. - -To get started integrating `VimeoNetworking`, add the following lines to your `Podfile` and run `pod install`: +To get started add the following to your Podfile: ```Ruby -use_frameworks! # required for Swift frameworks +use_frameworks! -target 'YourAppTargetName' do - pod 'VimeoNetworking', :path => './Submodules/VimeoNetworking' +target 'YourTarget' do + pod 'VimeoNetworking' end ``` +You can optionally specify a version number, or point directly to our `develop` branch. Note that breaking changes may be introduced into `develop` at any time, but those changes will always be behind a major or minor release version number. + ## Initialization The first step towards using the Vimeo API is registering a new application on the Vimeo Developer site: [My API Apps](https://developer.vimeo.com/apps). You'll need a Vimeo account, if you don't already have one. diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift index b114da20..a4eeedc7 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AccountStore.swift @@ -53,14 +53,14 @@ final class AccountStore } } - // MARK: - + // MARK: - private struct Constants { static let ErrorDomain = "AccountStoreErrorDomain" } - // MARK: - + // MARK: - private let keychainStore: KeychainStore diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift index 2aa2c443..82c908ff 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/AuthenticationController.swift @@ -27,9 +27,9 @@ import Foundation /** - `AuthenticationController` is used to authenticate a `VimeoClient` instance, either by loading an account stored in the system keychain, or by interacting with the Vimeo API to authenticate a new account. The two publicly accessible authentication methods are client credentials grant and code grant. + `AuthenticationController` is used to authenticate a `VimeoClient` instance, either by loading an account stored in the system keychain, or by interacting with the Vimeo API to authenticate a new account. The two publicly accessible authentication methods are client credentials grant and code grant. - Client credentials grant is a public authentication method with no logged in user, which allows your application to access anything a logged out user could see on Vimeo (public content). + Client credentials grant is a public authentication method with no logged in user, which allows your application to access anything a logged out user could see on Vimeo (public content). Code grant is a way of logging in with a user account, which can give your application access to that user's private content and permission to interact with Vimeo on their behalf. This is achieved by first opening a generated URL in Safari which presents a user log in page. When the user authenticates successfully, control is returned to your app through a redirect link, and you then make a final request to retrieve the authenticated account. @@ -358,7 +358,7 @@ final public class AuthenticationController /** **(PRIVATE: Vimeo Use Only, will not work for third-party applications)** - Exchange a saved access token granted to another application for a new token granted to the calling application. This method will allow an application to re-use credentials from another Vimeo application. Client credentials must be granted before using this method. + Exchange a saved access token granted to another application for a new token granted to the calling application. This method will allow an application to re-use credentials from another Vimeo application. Client credentials must be granted before using this method. - parameter accessToken: access token granted to the other application - parameter completion: handler for authentication success or failure diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift index 67c2abc4..b6b246c3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/KeychainStore.swift @@ -119,7 +119,7 @@ final class KeychainStore } } - // MARK: - + // MARK: - private func query(for key: String) -> [String: Any] { diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift index a5c920c5..2f555db4 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMLiveChatUser.swift @@ -46,7 +46,7 @@ public enum AccountType: String /// An object representing the `user` field in a `chat` response. public class VIMLiveChatUser: VIMModelObject -{ +{ private struct Constants { static let PictureResponseKey = "pictures" diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h index 752cb024..647d4623 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.h @@ -43,7 +43,9 @@ typedef NS_ENUM(NSInteger, VIMUserAccountType) VIMUserAccountTypeBusiness, VIMUserAccountTypeLivePro, VIMUserAccountTypeLiveBusiness, - VIMUserAccountTypeLivePremium + VIMUserAccountTypeLivePremium, + VIMUserAccountTypeProUnlimited, + VIMUserAccountTypeProducer }; @interface VIMUser : VIMModelObject diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m index d4469306..bba52257 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUser.m @@ -41,6 +41,8 @@ static NSString *const LivePro = @"live_pro"; static NSString *const LiveBusiness = @"live_business"; static NSString *const LivePremium = @"live_premium"; +static NSString *const ProUnlimited = @"pro_unlimited"; +static NSString *const Producer = @"producer"; @interface VIMUser () @@ -240,6 +242,14 @@ - (void)parseAccountType { self.accountType = VIMUserAccountTypeLivePremium; } + else if ([self.account isEqualToString:ProUnlimited]) + { + self.accountType = VIMUserAccountTypeProUnlimited; + } + else if ([self.account isEqualToString:Producer]) + { + self.accountType = VIMUserAccountTypeProducer; + } } - (void)parseEmails @@ -308,6 +318,10 @@ - (NSString *)accountTypeAnalyticsIdentifier return LiveBusiness; case VIMUserAccountTypeLivePremium: return LivePremium; + case VIMUserAccountTypeProUnlimited: + return ProUnlimited; + case VIMUserAccountTypeProducer: + return Producer; } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h index c7feb119..66083571 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.h @@ -30,6 +30,7 @@ typedef NS_ENUM(NSInteger, VIMUserBadgeType) { VIMUserBadgeTypeDefault = 0, VIMUserBadgeTypePlus, + // PRO and PRO Unlimited have the same BadgeType `PRO` [JL 07/18/2018] VIMUserBadgeTypePro, VIMUserBadgeTypeBusiness, VIMUserBadgeTypeLiveBusiness, @@ -37,7 +38,8 @@ typedef NS_ENUM(NSInteger, VIMUserBadgeType) VIMUserBadgeTypeAlum, VIMUserBadgeTypeStaff, VIMUserBadgeTypeSupport, - VIMUserBadgeTypeCuration + VIMUserBadgeTypeCuration, + VIMUserBadgeTypeProducer }; @interface VIMUserBadge : VIMModelObject diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m index 3346836b..c1d8ca8e 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMUserBadge.m @@ -37,6 +37,7 @@ @implementation VIMUserBadge static NSString *const Alum = @"alum"; static NSString *const LivePro = @"live_pro"; static NSString *const LiveBusiness = @"live_business"; +static NSString *const Producer = @"producer"; - (void)didFinishMapping { @@ -81,6 +82,10 @@ - (void)parseBadge { self.badgeType = VIMUserBadgeTypeLiveBusiness; } + else if ([self.type isEqualToString:Producer]) + { + self.badgeType = VIMUserBadgeTypeProducer; + } else { self.badgeType = VIMUserBadgeTypeDefault; diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h index aad16e6b..643fb411 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.h @@ -55,7 +55,8 @@ typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { VIMVideoProcessingStatusTranscoding, VIMVideoProcessingStatusUploadingError, VIMVideoProcessingStatusTranscodingError, - VIMVideoProcessingStatusQuotaExceeded + VIMVideoProcessingStatusQuotaExceeded, + VIMVideoProcessingStatusTotalCapExceeded }; @interface VIMVideo : VIMModelObject @@ -168,5 +169,6 @@ typedef NS_ENUM(NSUInteger, VIMVideoProcessingStatus) { - (void)setIsLiked:(BOOL)isLiked; - (void)setIsWatchLater:(BOOL)isWatchLater; - (BOOL)hasReviewPage; +- (BOOL)canDownloadFromDesktop; @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m index c6a01f4f..3a80aacc 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Models/VIMVideo.m @@ -334,6 +334,7 @@ - (void)setVideoStatus [NSNumber numberWithInt:VIMVideoProcessingStatusUploadingError], @"uploading_error", [NSNumber numberWithInt:VIMVideoProcessingStatusTranscodingError], @"transcoding_error", [NSNumber numberWithInt:VIMVideoProcessingStatusQuotaExceeded], @"quota_exceeded", + [NSNumber numberWithInt:VIMVideoProcessingStatusTotalCapExceeded], @"total_cap_exceeded", nil]; NSNumber *number = [statusDictionary objectForKey:self.status]; @@ -554,4 +555,15 @@ - (BOOL)hasReviewPage trimmedReviewLink.length > 0; } +- (BOOL)canDownloadFromDesktop +{ + if ([self.privacy.canDownload respondsToSelector: @selector(boolValue)]) + { + return [self.privacy.canDownload boolValue]; + } + + NSAssert(false, @"`video.privacy.canDownload` is an unexpected type."); + return false; +} + @end diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift index ba28a149..7258710c 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Authentication.swift @@ -232,7 +232,7 @@ extension Request where ModelType: VIMNullResponse */ public static func resetPasswordRequest(withEmail email: String) -> Request { - let path = "/users/" + email + "/password/reset" + let path = "/users/\(email)/password/reset" return Request(method: .POST, path: path) } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Cache.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Cache.swift index 68469636..9fa5047a 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Cache.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Cache.swift @@ -35,7 +35,7 @@ public extension Request let url = NSURL(string: self.path) let urlPath = url?.path ?? "" - var cacheKey = "cached" + urlPath + "." + String(self.path.hashValue) + var cacheKey = "cached\(urlPath).\(self.path.hashValue)" cacheKey = cacheKey.replacingOccurrences(of: "/", with: ".") return cacheKey diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift index 93727dec..8f8bb62a 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Notifications.swift @@ -51,7 +51,7 @@ public extension Request private static func subscriptionsURI(forNotificationsURI notificationsURI: String, deviceToken: String) -> String { - return notificationsURI + "/\(deviceToken)" + SubscriptionsPathComponent + return "\(notificationsURI)/\(deviceToken)\(SubscriptionsPathComponent)" } public static func markNotificationAsNotNewRequest(forNotification notification: VIMNotification, notificationsURI: String) -> Request diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Picture.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Picture.swift index 5d3c4d2a..e36776a9 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Picture.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Picture.swift @@ -20,7 +20,7 @@ public extension Request */ public static func createPictureRequest(forUserURI userURI: String) -> Request { - let uri = userURI + "/pictures" + let uri = "\(userURI)/pictures" return Request(method: .POST, path: uri) } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Trigger.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Trigger.swift index a5f50f81..b10b26d7 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Trigger.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Trigger.swift @@ -92,6 +92,6 @@ extension Request { let deviceTypeIdentifier = UIDevice.current.userInterfaceIdiom == .phone ? "iphone" : "ipad" - return "me/devices/" + deviceTypeIdentifier + "/" + deviceToken + return "me/devices/\(deviceTypeIdentifier)/\(deviceToken)" } } diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift index 5fd4b7c2..b0527ec0 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Request+Video.swift @@ -40,7 +40,7 @@ public extension Request private static var SelectedUsersPrivacyPath: String { return "/privacy/users" } - // MARK: - + // MARK: - /** Create a `Request` to get a specific video diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Response.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Response.swift index 1e4af85e..45de8d0f 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Response.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Response.swift @@ -61,7 +61,7 @@ import Foundation /// The request for the last page associated with this collection response, if one exists public let lastPageRequest: Request? - // MARK: - + // MARK: - /** Creates a new `Response` diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift index fce808f4..99b84d64 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/ResponseCache.swift @@ -171,7 +171,7 @@ final public class ResponseCache let fileManager = FileManager() let directoryPath = self.cachesDirectoryURL().path - guard let filePath = self.fileURL(forKey: key)?.path else + guard let filePath = self.fileURL(forKey: key)?.path else { assertionFailure("No cache path found.") return @@ -195,7 +195,7 @@ final public class ResponseCache { print("ResponseDiskCache error: \(error)") } - }) + }) } func responseDictionary(forKey key: String, completion: @escaping (VimeoClient.ResponseDictionary?) -> Void) @@ -270,7 +270,7 @@ final public class ResponseCache { print("Removal of disk cache for \(key) failed with error \(error)") } - }) + }) } func removeAllResponseDictionaries() @@ -294,7 +294,7 @@ final public class ResponseCache { print("Could not clear disk cache.") } - }) + }) } // MARK: - directories diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/Result.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/Result.swift index 19592df8..266d871f 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/Result.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/Result.swift @@ -41,7 +41,7 @@ public enum Result case failure(error: NSError) } -/// `ResultCompletion` creates a generic typealias to generally define completion blocks that return a `Result` +/// `ResultCompletion` creates a generic typealias to generally define completion blocks that return a `Result` public enum ResultCompletion { public typealias T = (Result) -> Void diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift index 7573f6ae..41e82a65 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoClient.swift @@ -27,12 +27,12 @@ import Foundation /// `VimeoClient` handles a rich assortment of functionality focused around interacting with the Vimeo API. A client object tracks an authenticated account, handles the low-level execution of requests through a session manager with caching functionality, presents a high-level `Request` and `Response` interface, and notifies of globally relevant events and errors through `Notification`s -/// +/// /// To start using a client, first instantiate an `AuthenticationController` to load a stored account or authenticate a new one. Next, create `Request` instances and pass them into the `request` function, which returns `Response`s on success. final public class VimeoClient { - // MARK: - + // MARK: - /// HTTP methods available for requests public enum Method: String diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift index 43b8c61c..605ed7c3 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoRequestSerializer.swift @@ -42,7 +42,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer public typealias AccessTokenProvider = () -> String? - // MARK: + // MARK: // for authenticated requests var accessTokenProvider: AccessTokenProvider? @@ -197,7 +197,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer guard let existingUserAgent = request.value(forHTTPHeaderField: Constants.UserAgentKey) else { // DISCUSSION: AFNetworking doesn't set a User Agent for tvOS (look at the init method in AFHTTPRequestSerializer.m). - // So, on tvOS the User Agent will only specify the framework. System information might be something we want to add + // So, on tvOS the User Agent will only specify the framework. System information might be something we want to add // in the future if AFNetworking isn't providing it. [ghking] 6/19/17 #if !os(tvOS) @@ -209,7 +209,7 @@ final public class VimeoRequestSerializer: AFJSONRequestSerializer return request } - let modifiedUserAgent = existingUserAgent + " " + frameworkString + let modifiedUserAgent = "\(existingUserAgent) \(frameworkString)" request.setValue(modifiedUserAgent, forHTTPHeaderField: Constants.UserAgentKey) diff --git a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager.swift b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager.swift index 4abb51bb..fb649306 100644 --- a/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager.swift +++ b/Pods/VimeoNetworking/VimeoNetworking/Sources/VimeoSessionManager.swift @@ -31,7 +31,7 @@ import AFNetworking /** `VimeoSessionManager` handles networking and serialization for raw HTTP requests. It is a direct subclass of `AFHTTPSessionManager` and it's designed to be used internally by `VimeoClient`. For the majority of purposes, it would be better to use `VimeoClient` and a `Request` object to better encapsulate this logic, since the latter provides richer functionality overall. */ final public class VimeoSessionManager: AFHTTPSessionManager -{ +{ // MARK: Initialization /** @@ -44,7 +44,7 @@ final public class VimeoSessionManager: AFHTTPSessionManager - returns: an initialized `VimeoSessionManager` */ required public init(baseUrl: URL, sessionConfiguration: URLSessionConfiguration, requestSerializer: VimeoRequestSerializer) - { + { super.init(baseURL: baseUrl, sessionConfiguration: sessionConfiguration) self.requestSerializer = requestSerializer From 139922ea8e0d493328feb80a54f043876f2bfaa1 Mon Sep 17 00:00:00 2001 From: Van Le Nguyen Date: Thu, 16 Aug 2018 16:46:21 -0400 Subject: [PATCH 144/149] Add generic invalidation error --- VimeoUpload/Descriptor System/DescriptorManager.swift | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/VimeoUpload/Descriptor System/DescriptorManager.swift b/VimeoUpload/Descriptor System/DescriptorManager.swift index f74d3ca0..a115367f 100644 --- a/VimeoUpload/Descriptor System/DescriptorManager.swift +++ b/VimeoUpload/Descriptor System/DescriptorManager.swift @@ -46,6 +46,13 @@ open class DescriptorManager: NSObject static let QueueName = "descriptor_manager.synchronization_queue" static let ShareExtensionArchivePrefix = "share_extension" static let ShareExtensionDescriptorDidSuspend = "ShareExtensionDescriptorDidSuspend" + + struct InvalidationError + { + static let Domain = "BackgroundSessionInvalidationError" + static let Code = 1 + static let LocalizedDescription = "A session object referring to the same background session has been invalidated and thus disconnected from the session." + } } // MARK: @@ -198,7 +205,8 @@ open class DescriptorManager: NSObject let theError: NSError? if error != nil { - theError = error as NSError + let userInfo = [NSLocalizedDescriptionKey: Constants.InvalidationError.LocalizedDescription] + theError = NSError(domain: Constants.InvalidationError.Domain, code: Constants.InvalidationError.Code, userInfo: userInfo) } else { From f2e6bbc25904b5f0ab2f3e3fca0553e4cb393c58 Mon Sep 17 00:00:00 2001 From: jasonhawkins Date: Mon, 27 Aug 2018 16:14:06 -0400 Subject: [PATCH 145/149] Add new CircleCI config --- .circleci/config.yml | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..1aa23494 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,50 @@ +version: 2 + +jobs: + build-and-test: + environment: + BUNDLE_PATH: vendor/bundle + FL_OUTPUT_DIR: output + macos: + xcode: "9.4.1" + working_directory: ~/VimeoUpload + shell: /bin/bash --login -o pipefail + + steps: + - checkout + + - restore_cache: + key: v1-gems-{{ checksum "Gemfile.lock" }} + + - run: + name: Set Ruby version + command: echo "ruby-2.4" > ~/.ruby-version + + - run: + name: Install bundler dependencies + command: bundle install --path vendor/bundle + + - run: + name: Build and run iOS tests + command: bundle exec fastlane scan + environment: + SCAN_DEVICE: iPhone 8 + SCAN_SCHEME: VimeoUpload-iOS + + - save_cache: + paths: + - vendor/bundle + key: v1-gems-{{ checksum "Gemfile.lock" }} + + - store_artifacts: + path: output + + - store_test_results: + path: output/scan + +workflows: + version: 2 + build: + jobs: + - build-and-test + \ No newline at end of file From 57061065ce8561f44aed5b3a4e93873e70a0fd60 Mon Sep 17 00:00:00 2001 From: jasonhawkins Date: Mon, 27 Aug 2018 16:14:17 -0400 Subject: [PATCH 146/149] Remove old CircleCI config --- circle.yml | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 circle.yml diff --git a/circle.yml b/circle.yml deleted file mode 100644 index b63bcce9..00000000 --- a/circle.yml +++ /dev/null @@ -1,13 +0,0 @@ -machine: - xcode: - version: 9.0.1 - -dependencies: - override: - - bundle install --deployment - cache_directories: - - "vendor/bundle" - -test: - override: - - FASTLANE_SKIP_UPDATE_CHECK=1 bundle exec fastlane test From 4140a41a5e0d1d095729fd800ad979e048cf5f85 Mon Sep 17 00:00:00 2001 From: jasonhawkins Date: Mon, 27 Aug 2018 16:27:55 -0400 Subject: [PATCH 147/149] Add OldUpload scheme to build-and-run job --- .circleci/config.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1aa23494..db6fc036 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,12 +25,19 @@ jobs: command: bundle install --path vendor/bundle - run: - name: Build and run iOS tests + name: Build and run VimeoUpload-iOS tests command: bundle exec fastlane scan environment: SCAN_DEVICE: iPhone 8 SCAN_SCHEME: VimeoUpload-iOS + - run: + name: Build and run VimeoUpload-iOS-OldUpload tests + command: bundle exec fastlane scan + environment: + SCAN_DEVICE: iPhone 8 + SCAN_SCHEME: VimeoUpload-iOS-OldUpload + - save_cache: paths: - vendor/bundle From 8f6cf0f0e741f361d3563f5b6c5035298b483b2e Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 29 Aug 2018 11:19:39 -0400 Subject: [PATCH 148/149] Updates networking dependency - Updates VimeoNetworking version in podfile - Runs pod install --- Podfile | 6 +++--- Podfile.lock | 15 +++------------ Pods/Manifest.lock | 15 +++------------ 3 files changed, 9 insertions(+), 27 deletions(-) diff --git a/Podfile b/Podfile index edefcd46..c449406b 100644 --- a/Podfile +++ b/Podfile @@ -6,14 +6,14 @@ project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target 'VimeoUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', '3.2.0' project 'Framework/VimeoUpload/VimeoUpload.xcodeproj' end target :'VimeoUpload-iOS' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', '3.2.0' project 'Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj' target "VimeoUpload-iOSTests" do @@ -24,7 +24,7 @@ end target :'VimeoUpload-iOS-OldUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', :git => 'git@github.com:vimeo/VimeoNetworking.git', :branch => 'develop' + pod 'VimeoNetworking', '3.2.0' project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target "VimeoUpload-iOS-OldUploadTests" do diff --git a/Podfile.lock b/Podfile.lock index 9d6bfc1a..f900ac1b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -18,26 +18,17 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`)" + - VimeoNetworking (= 3.2.0) SPEC REPOS: https://github.com/cocoapods/specs.git: - AFNetworking - -EXTERNAL SOURCES: - VimeoNetworking: - :branch: develop - :git: "git@github.com:vimeo/VimeoNetworking.git" - -CHECKOUT OPTIONS: - VimeoNetworking: - :commit: 395710a68cb5c81a2089de94fb3b7fe28bf4c210 - :git: "git@github.com:vimeo/VimeoNetworking.git" + - VimeoNetworking SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 VimeoNetworking: cef00b867495a61e9b5e10f5a6b309d82a200c02 -PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 +PODFILE CHECKSUM: 6844fc4be4eae4ef4c674b4611109fa9292f4a36 COCOAPODS: 1.5.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 9d6bfc1a..f900ac1b 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -18,26 +18,17 @@ PODS: - AFNetworking (= 3.1.0) DEPENDENCIES: - - "VimeoNetworking (from `git@github.com:vimeo/VimeoNetworking.git`, branch `develop`)" + - VimeoNetworking (= 3.2.0) SPEC REPOS: https://github.com/cocoapods/specs.git: - AFNetworking - -EXTERNAL SOURCES: - VimeoNetworking: - :branch: develop - :git: "git@github.com:vimeo/VimeoNetworking.git" - -CHECKOUT OPTIONS: - VimeoNetworking: - :commit: 395710a68cb5c81a2089de94fb3b7fe28bf4c210 - :git: "git@github.com:vimeo/VimeoNetworking.git" + - VimeoNetworking SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 VimeoNetworking: cef00b867495a61e9b5e10f5a6b309d82a200c02 -PODFILE CHECKSUM: dd1c01077873d3593d24f554a22b00f665c04b49 +PODFILE CHECKSUM: 6844fc4be4eae4ef4c674b4611109fa9292f4a36 COCOAPODS: 1.5.2 From 427dd14aa6f10c8086501db8e8b484b77b6547ca Mon Sep 17 00:00:00 2001 From: Nicole Lehrer Date: Wed, 29 Aug 2018 15:32:46 -0400 Subject: [PATCH 149/149] Updates networking dependency - Updates VimeoNetworking version in podfile - Runs pod install --- Podfile | 6 +++--- Podfile.lock | 8 ++++---- Pods/Manifest.lock | 8 ++++---- Pods/Target Support Files/VimeoNetworking/Info.plist | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Podfile b/Podfile index c449406b..c64ff330 100644 --- a/Podfile +++ b/Podfile @@ -6,14 +6,14 @@ project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target 'VimeoUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', '3.2.0' + pod 'VimeoNetworking', '3.3.0' project 'Framework/VimeoUpload/VimeoUpload.xcodeproj' end target :'VimeoUpload-iOS' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', '3.2.0' + pod 'VimeoNetworking', '3.3.0' project 'Examples/VimeoUpload-iOS/VimeoUpload-iOS.xcodeproj' target "VimeoUpload-iOSTests" do @@ -24,7 +24,7 @@ end target :'VimeoUpload-iOS-OldUpload' do platform :ios, '8.0' use_frameworks! - pod 'VimeoNetworking', '3.2.0' + pod 'VimeoNetworking', '3.3.0' project 'Examples/VimeoUpload-iOS-OldUpload/VimeoUpload-iOS-OldUpload.xcodeproj' target "VimeoUpload-iOS-OldUploadTests" do diff --git a/Podfile.lock b/Podfile.lock index f900ac1b..59d6d41c 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -14,11 +14,11 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (3.2.0): + - VimeoNetworking (3.3.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (= 3.2.0) + - VimeoNetworking (= 3.3.0) SPEC REPOS: https://github.com/cocoapods/specs.git: @@ -27,8 +27,8 @@ SPEC REPOS: SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: cef00b867495a61e9b5e10f5a6b309d82a200c02 + VimeoNetworking: 38e1eb8a06666c3e6321ee9422c573a8e0c861f9 -PODFILE CHECKSUM: 6844fc4be4eae4ef4c674b4611109fa9292f4a36 +PODFILE CHECKSUM: 3ae75518bbe4d19f3b4a562ffca9b52e64448a4a COCOAPODS: 1.5.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index f900ac1b..59d6d41c 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -14,11 +14,11 @@ PODS: - AFNetworking/Serialization (3.1.0) - AFNetworking/UIKit (3.1.0): - AFNetworking/NSURLSession - - VimeoNetworking (3.2.0): + - VimeoNetworking (3.3.0): - AFNetworking (= 3.1.0) DEPENDENCIES: - - VimeoNetworking (= 3.2.0) + - VimeoNetworking (= 3.3.0) SPEC REPOS: https://github.com/cocoapods/specs.git: @@ -27,8 +27,8 @@ SPEC REPOS: SPEC CHECKSUMS: AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 - VimeoNetworking: cef00b867495a61e9b5e10f5a6b309d82a200c02 + VimeoNetworking: 38e1eb8a06666c3e6321ee9422c573a8e0c861f9 -PODFILE CHECKSUM: 6844fc4be4eae4ef4c674b4611109fa9292f4a36 +PODFILE CHECKSUM: 3ae75518bbe4d19f3b4a562ffca9b52e64448a4a COCOAPODS: 1.5.2 diff --git a/Pods/Target Support Files/VimeoNetworking/Info.plist b/Pods/Target Support Files/VimeoNetworking/Info.plist index 9ae03a0c..3ac477e6 100644 --- a/Pods/Target Support Files/VimeoNetworking/Info.plist +++ b/Pods/Target Support Files/VimeoNetworking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.2.0 + 3.3.0 CFBundleSignature ???? CFBundleVersion