From 89bb85944f7214fbc96c765ae030a4ebda0ad014 Mon Sep 17 00:00:00 2001 From: John Pope Date: Mon, 26 Jul 2021 15:24:01 +1000 Subject: [PATCH] use md5 --- Classes/Celestial/Celestial.swift | 20 +- Classes/Utility/Extensions.swift | 315 +++++++- Example/Celestial.xcodeproj/project.pbxproj | 15 +- Example/Podfile.lock | 8 +- .../Local Podspecs/Celestial.podspec.json | 6 +- Example/Pods/Manifest.lock | 8 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 699 +++++++++--------- .../Celestial/Celestial-Info.plist | 2 +- .../Celestial/Celestial.debug.xcconfig | 13 + .../Celestial/Celestial.release.xcconfig | 13 + .../Pods-Celestial_Example-frameworks.sh | 94 ++- .../Pods-Celestial_Example.debug.xcconfig | 4 +- .../Pods-Celestial_Example.release.xcconfig | 4 +- .../Pods-Celestial_Tests.debug.xcconfig | 4 +- .../Pods-Celestial_Tests.release.xcconfig | 4 +- 15 files changed, 798 insertions(+), 411 deletions(-) create mode 100644 Example/Pods/Target Support Files/Celestial/Celestial.debug.xcconfig create mode 100644 Example/Pods/Target Support Files/Celestial/Celestial.release.xcconfig diff --git a/Classes/Celestial/Celestial.swift b/Classes/Celestial/Celestial.swift index 0b88c68..2ea82b4 100644 --- a/Classes/Celestial/Celestial.swift +++ b/Classes/Celestial/Celestial.swift @@ -62,7 +62,10 @@ extension Celestial: CelestialVideoCachingProtocol { } public func videoFromMemoryCache(sourceURLString: String) -> MemoryCachedVideoData? { - return VideoCache.shared.item(for: sourceURLString.convertURLToUniqueFileName()) + if let sourceURL = URL(string: sourceURLString){ + return VideoCache.shared.item(for: sourceURL.lastPathComponent.convertURLToUniqueFileName()) + } + return nil } public func videoURLFromFileCache(sourceURL: URL) -> URL? { @@ -79,7 +82,7 @@ extension Celestial: CelestialVideoCachingProtocol { resourceType: .video, cacheLocation: .inMemory) cachedResourceContext.storeReferenceTo(cachedResource: resourceIdentifier) - VideoCache.shared.store(videoData, with: sourceURLString.convertURLToUniqueFileName()) + VideoCache.shared.store(videoData, with: sourceURL.lastPathComponent.convertURLToUniqueFileName()) } public func storeDownloadedVideoToFileCache(_ temporaryFileURL: URL, withSourceURL sourceURL: URL, videoExportQuality: Celestial.VideoExportQuality, completion: @escaping MediaAssetCompletionHandler) { @@ -99,8 +102,10 @@ extension Celestial: CelestialVideoCachingProtocol { } public func removeVideoFromMemoryCache(sourceURLString: String) { - VideoCache.shared.removeItem(at: sourceURLString.convertURLToUniqueFileName()) - cachedResourceContext.removeResourceIdentifier(for: sourceURLString) + if let sourceURL = URL(string: sourceURLString){ + VideoCache.shared.removeItem(at: sourceURL.lastPathComponent.convertURLToUniqueFileName()) + cachedResourceContext.removeResourceIdentifier(for: sourceURLString) + } } @discardableResult public func removeVideoFromFileCache(sourceURLString: String) -> Bool { @@ -134,7 +139,10 @@ extension Celestial: CelestialImageCachingProtocol { } public func imageFromMemoryCache(sourceURLString: String) -> UIImage? { - return ImageCache.shared.item(for: sourceURLString.convertURLToUniqueFileName()) + if let sourceURL = URL(string: sourceURLString){ + return ImageCache.shared.item(for: sourceURL.lastPathComponent.convertURLToUniqueFileName()) + } + return nil } public func imageURLFromFileCache(sourceURL: URL, pointSize: CGSize) -> URL? { @@ -151,7 +159,7 @@ extension Celestial: CelestialImageCachingProtocol { resourceType: .image, cacheLocation: .inMemory) cachedResourceContext.storeReferenceTo(cachedResource: resourceIdentifier) - ImageCache.shared.store(image, with: sourceURLString.convertURLToUniqueFileName()) + ImageCache.shared.store(image, with: sourceURL.lastPathComponent.convertURLToUniqueFileName()) } public func storeDownloadedImageToFileCache(_ temporaryFileURL: URL, withSourceURL sourceURL: URL, pointSize: CGSize, completion: @escaping (UIImage?) -> ()) { diff --git a/Classes/Utility/Extensions.swift b/Classes/Utility/Extensions.swift index a1a5883..256abf0 100644 --- a/Classes/Utility/Extensions.swift +++ b/Classes/Utility/Extensions.swift @@ -197,7 +197,7 @@ internal extension URL { func localUniqueFileName(concatenateFileExtension: Bool? = false) -> String { let fileExtension = self.pathExtension - var uniqueFileName: String = self.deletingPathExtension().absoluteString.convertURLToUniqueFileName() + var uniqueFileName: String = self.lastPathComponent.convertURLToUniqueFileName() if concatenateFileExtension == true { uniqueFileName += "-\(fileExtension)" } @@ -210,7 +210,7 @@ extension String { guard let _ = URL(string: self) else { fatalError("\(self) is not a valid URL") } - return self.replacingOccurrences(of: "/", with: "_") + return self.md5 } var isValidURL: Bool { @@ -232,6 +232,317 @@ extension String { +// MARK: - SandboxPath + +extension String { + + public var md5DotMp4: String { + return self.kf.md5 + ".mp4" + } + public var md5: String { + return self.kf.md5 + } + + public var cacheDir: String { + let path = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).last! + return (path as NSString).appendingPathComponent((self as NSString).lastPathComponent) + } + + public var docDir: String { + let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last! + return (path as NSString).appendingPathComponent((self as NSString).lastPathComponent) + } + public var tmpDir: String { + + let path = NSTemporaryDirectory() as NSString + return path.appendingPathComponent((self as NSString).lastPathComponent) + + } + +} + + +import Foundation + +public struct StringProxy { + fileprivate let base: String + init(proxy: String) { + base = proxy + } +} + +extension String { + public typealias CompatibleType = StringProxy + public var kf: CompatibleType { + return StringProxy(proxy: self) + } + +} + +extension StringProxy { + var md5: String { + if let data = base.data(using: .utf8, allowLossyConversion: true) { + + let message = data.withUnsafeBytes { bytes -> [UInt8] in + return Array(UnsafeBufferPointer(start: bytes, count: data.count)) + } + + let MD5Calculator = MD5(message) + let MD5Data = MD5Calculator.calculate() + + var MD5String = String() + for c in MD5Data { + MD5String += String(format: "%02x", c) + } + return MD5String + + } else { + return base + } + } +} + +/** array of bytes, little-endian representation */ +func arrayOfBytes(_ value: T, length: Int? = nil) -> [UInt8] { + let totalBytes = length ?? (MemoryLayout.size * 8) + + let valuePointer = UnsafeMutablePointer.allocate(capacity: 1) + valuePointer.pointee = value + + let bytes = valuePointer.withMemoryRebound(to: UInt8.self, capacity: totalBytes) { (bytesPointer) -> [UInt8] in + var bytes = [UInt8](repeating: 0, count: totalBytes) + for j in 0...size, totalBytes) { + bytes[totalBytes - 1 - j] = (bytesPointer + j).pointee + } + return bytes + } + + valuePointer.deinitialize(count: 1) + valuePointer.deallocate() + + return bytes +} + +extension Int { + /** Array of bytes with optional padding (little-endian) */ + func bytes(_ totalBytes: Int = MemoryLayout.size) -> [UInt8] { + return arrayOfBytes(self, length: totalBytes) + } + +} + +extension NSMutableData { + + /** Convenient way to append bytes */ + func appendBytes(_ arrayOfBytes: [UInt8]) { + append(arrayOfBytes, length: arrayOfBytes.count) + } + +} + +protocol HashProtocol { + var message: [UInt8] { get } + + /** Common part for hash calculation. Prepare header data. */ + func prepare(_ len: Int) -> [UInt8] +} + +extension HashProtocol { + + func prepare(_ len: Int) -> [UInt8] { + var tmpMessage = message + + // Step 1. Append Padding Bits + tmpMessage.append(0x80) // append one bit (UInt8 with one bit) to message + + // append "0" bit until message length in bits ≡ 448 (mod 512) + var msgLength = tmpMessage.count + var counter = 0 + + while msgLength % len != (len - 8) { + counter += 1 + msgLength += 1 + } + + tmpMessage += [UInt8](repeating: 0, count: counter) + return tmpMessage + } +} + +func toUInt32Array(_ slice: ArraySlice) -> [UInt32] { + var result = [UInt32]() + result.reserveCapacity(16) + + for idx in stride(from: slice.startIndex, to: slice.endIndex, by: MemoryLayout.size) { + let d0 = UInt32(slice[idx.advanced(by: 3)]) << 24 + let d1 = UInt32(slice[idx.advanced(by: 2)]) << 16 + let d2 = UInt32(slice[idx.advanced(by: 1)]) << 8 + let d3 = UInt32(slice[idx]) + let val: UInt32 = d0 | d1 | d2 | d3 + + result.append(val) + } + return result +} + +struct BytesIterator: IteratorProtocol { + + let chunkSize: Int + let data: [UInt8] + + init(chunkSize: Int, data: [UInt8]) { + self.chunkSize = chunkSize + self.data = data + } + + var offset = 0 + + mutating func next() -> ArraySlice? { + let end = min(chunkSize, data.count - offset) + let result = data[offset.. 0 ? result : nil + } +} + +struct BytesSequence: Sequence { + let chunkSize: Int + let data: [UInt8] + + func makeIterator() -> BytesIterator { + return BytesIterator(chunkSize: chunkSize, data: data) + } +} + +func rotateLeft(_ value: UInt32, bits: UInt32) -> UInt32 { + return ((value << bits) & 0xFFFFFFFF) | (value >> (32 - bits)) +} + +class MD5: HashProtocol { + + static let size = 16 // 128 / 8 + let message: [UInt8] + + init (_ message: [UInt8]) { + self.message = message + } + + /** specifies the per-round shift amounts */ + private let shifts: [UInt32] = [7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, + 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, + 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, + 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21] + + /** binary integer part of the sines of integers (Radians) */ + private let sines: [UInt32] = [0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, + 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, + 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, + 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, + 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, + 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, + 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, + 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, + 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, + 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, + 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x4881d05, + 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, + 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, + 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, + 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, + 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391] + + private let hashes: [UInt32] = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476] + + func calculate() -> [UInt8] { + var tmpMessage = prepare(64) + tmpMessage.reserveCapacity(tmpMessage.count + 4) + + // hash values + var hh = hashes + + // Step 2. Append Length a 64-bit representation of lengthInBits + let lengthInBits = (message.count * 8) + let lengthBytes = lengthInBits.bytes(64 / 8) + tmpMessage += lengthBytes.reversed() + + // Process the message in successive 512-bit chunks: + let chunkSizeBytes = 512 / 8 // 64 + + for chunk in BytesSequence(chunkSize: chunkSizeBytes, data: tmpMessage) { + // break chunk into sixteen 32-bit words M[j], 0 ≤ j ≤ 15 + var M = toUInt32Array(chunk) + assert(M.count == 16, "Invalid array") + + // Initialize hash value for this chunk: + var A: UInt32 = hh[0] + var B: UInt32 = hh[1] + var C: UInt32 = hh[2] + var D: UInt32 = hh[3] + + var dTemp: UInt32 = 0 + + // Main loop + for j in 0 ..< sines.count { + var g = 0 + var F: UInt32 = 0 + + switch j { + case 0...15: + F = (B & C) | ((~B) & D) + g = j + break + case 16...31: + F = (D & B) | (~D & C) + g = (5 * j + 1) % 16 + break + case 32...47: + F = B ^ C ^ D + g = (3 * j + 5) % 16 + break + case 48...63: + F = C ^ (B | (~D)) + g = (7 * j) % 16 + break + default: + break + } + dTemp = D + D = C + C = B + B = B &+ rotateLeft((A &+ F &+ sines[j] &+ M[g]), bits: shifts[j]) + A = dTemp + } + + hh[0] = hh[0] &+ A + hh[1] = hh[1] &+ B + hh[2] = hh[2] &+ C + hh[3] = hh[3] &+ D + } + + var result = [UInt8]() + result.reserveCapacity(hh.count / 4) + + hh.forEach { + let itemLE = $0.littleEndian + let r1 = UInt8(itemLE & 0xff) + let r2 = UInt8((itemLE >> 8) & 0xff) + let r3 = UInt8((itemLE >> 16) & 0xff) + let r4 = UInt8((itemLE >> 24) & 0xff) + result += [r1, r2, r3, r4] + } + return result + } +} + +extension NSString { + + var md5: NSString { + + return ((self as String).md5 as NSString) + } + +} + diff --git a/Example/Celestial.xcodeproj/project.pbxproj b/Example/Celestial.xcodeproj/project.pbxproj index 9cdf0df..0a1ca35 100644 --- a/Example/Celestial.xcodeproj/project.pbxproj +++ b/Example/Celestial.xcodeproj/project.pbxproj @@ -244,12 +244,12 @@ TargetAttributes = { 607FACCF1AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; - DevelopmentTeam = UL42AV8U5L; + DevelopmentTeam = 48K8QNQU37; LastSwiftMigration = 1130; }; 607FACE41AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; - DevelopmentTeam = UL42AV8U5L; + DevelopmentTeam = 48K8QNQU37; LastSwiftMigration = 1130; TestTargetID = 607FACCF1AFB9204008FA782; }; @@ -522,7 +522,7 @@ baseConfigurationReference = 2569570F98F04F181724784E /* Pods-Celestial_Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 48K8QNQU37; INFOPLIST_FILE = Celestial/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -539,13 +539,16 @@ baseConfigurationReference = F55A1FDCEB96BDBC93883F23 /* Pods-Celestial_Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 48K8QNQU37; INFOPLIST_FILE = Celestial/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_SWIFT3_OBJC_INFERENCE = Default; SWIFT_VERSION = 5.0; }; @@ -555,7 +558,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 78BD4119DCD8DB45023D0C97 /* Pods-Celestial_Tests.debug.xcconfig */; buildSettings = { - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 48K8QNQU37; FRAMEWORK_SEARCH_PATHS = ( "$(PLATFORM_DIR)/Developer/Library/Frameworks", "$(inherited)", @@ -578,7 +581,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 22BAB38CC45A579F8205D630 /* Pods-Celestial_Tests.release.xcconfig */; buildSettings = { - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 48K8QNQU37; FRAMEWORK_SEARCH_PATHS = ( "$(PLATFORM_DIR)/Developer/Library/Frameworks", "$(inherited)", diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 7b5835d..c715a35 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - Celestial (0.8.21) + - Celestial (0.8.130) DEPENDENCIES: - Celestial (from `../`) @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - Celestial: cbfcb13dfbe40bfee69a830116743082aafd1b07 + Celestial: 630885a29c5ea3ee2b12c4ae4157b9f44347c9a0 -PODFILE CHECKSUM: a4f43f7ec7e8e87cd311fd2b4de29078f5508700 +PODFILE CHECKSUM: ffb367ee6e897d26afddec9da54f4fcd47e80c7f -COCOAPODS: 1.9.3 +COCOAPODS: 1.10.1 diff --git a/Example/Pods/Local Podspecs/Celestial.podspec.json b/Example/Pods/Local Podspecs/Celestial.podspec.json index 41e12fd..f942af9 100644 --- a/Example/Pods/Local Podspecs/Celestial.podspec.json +++ b/Example/Pods/Local Podspecs/Celestial.podspec.json @@ -1,6 +1,6 @@ { "name": "Celestial", - "version": "0.1.11", + "version": "0.8.130", "summary": "A Caching service for multimedia", "description": "Celestial was written to help manage loading media from external URLs and displaying them in UITableViews and UICollectionViews. The point is to avoid redundant API calls.", "homepage": "https://github.com/ChrishonWyllie/Celestial", @@ -13,7 +13,7 @@ }, "source": { "git": "https://github.com/ChrishonWyllie/Celestial.git", - "tag": "0.1.11" + "tag": "0.8.130" }, "swift_versions": [ "4.0", @@ -23,7 +23,7 @@ "5.1" ], "platforms": { - "ios": "13.0" + "ios": "10.0" }, "source_files": "Classes/**/*", "frameworks": "UIKit", diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 817c728..c715a35 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - Celestial (0.1.11) + - Celestial (0.8.130) DEPENDENCIES: - Celestial (from `../`) @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - Celestial: bf72f1edc6b5a0d4248cf0868feacb2192cfaa6e + Celestial: 630885a29c5ea3ee2b12c4ae4157b9f44347c9a0 -PODFILE CHECKSUM: 2a577d4b23247b03ed8b4969fd7fd65bded2fdd0 +PODFILE CHECKSUM: ffb367ee6e897d26afddec9da54f4fcd47e80c7f -COCOAPODS: 1.8.4 +COCOAPODS: 1.10.1 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index d27b553..0725ebe 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,233 +7,246 @@ objects = { /* Begin PBXBuildFile section */ - 1D13EFCACFF5E1A820EBC4315669DEE5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - 4B5B9F1D419CAB4B1BDD8D69D39C2AC9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - 66270B8523B4354F00A34A17 /* Celestial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8423B4354F00A34A17 /* Celestial.swift */; }; - 66270B8623B4354F00A34A17 /* Celestial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8423B4354F00A34A17 /* Celestial.swift */; }; - 66270B8A23B435DA00A34A17 /* MultimediaCacheProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8923B435DA00A34A17 /* MultimediaCacheProtocols.swift */; }; - 66270B8B23B435DA00A34A17 /* MultimediaCacheProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8923B435DA00A34A17 /* MultimediaCacheProtocols.swift */; }; - 66270B8D23B4372800A34A17 /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8C23B4372800A34A17 /* ImageCache.swift */; }; - 66270B8E23B4372800A34A17 /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8C23B4372800A34A17 /* ImageCache.swift */; }; - 66270B9023B437C600A34A17 /* VideoCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8F23B437C600A34A17 /* VideoCache.swift */; }; - 66270B9123B437C600A34A17 /* VideoCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B8F23B437C600A34A17 /* VideoCache.swift */; }; - 66270B9423B438DD00A34A17 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B9323B438DD00A34A17 /* Extensions.swift */; }; - 66270B9523B438DD00A34A17 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B9323B438DD00A34A17 /* Extensions.swift */; }; - 66270B9823B43B6200A34A17 /* URLImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B9723B43B6200A34A17 /* URLImageView.swift */; }; - 66270B9923B43B6200A34A17 /* URLImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B9723B43B6200A34A17 /* URLImageView.swift */; }; - 66270B9B23B4437600A34A17 /* MiscellaneousDeclarations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B9A23B4437600A34A17 /* MiscellaneousDeclarations.swift */; }; - 66270B9C23B4437600A34A17 /* MiscellaneousDeclarations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66270B9A23B4437600A34A17 /* MiscellaneousDeclarations.swift */; }; - 663A31BD23B826ED0004AA37 /* ResourceLoaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 663A31BC23B826ED0004AA37 /* ResourceLoaderDelegate.swift */; }; - 663A31BE23B826ED0004AA37 /* ResourceLoaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 663A31BC23B826ED0004AA37 /* ResourceLoaderDelegate.swift */; }; - 663A31C023B995E50004AA37 /* OriginalVideoData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 663A31BF23B995E40004AA37 /* OriginalVideoData.swift */; }; - 663A31C123B995E50004AA37 /* OriginalVideoData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 663A31BF23B995E40004AA37 /* OriginalVideoData.swift */; }; - 66884BF3249DE66A004793E5 /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66884BF2249DE66A004793E5 /* VideoPlayerView.swift */; }; - 66884BF5249EC308004793E5 /* Utility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66884BF4249EC308004793E5 /* Utility.swift */; }; - 66884BF6249EC47D004793E5 /* Utility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66884BF4249EC308004793E5 /* Utility.swift */; }; - 668F70B523C2C7C30055FA0D /* DownloadTaskHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 668F70B423C2C7C30055FA0D /* DownloadTaskHandler.swift */; }; - 668F70B623C2C7C30055FA0D /* DownloadTaskHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 668F70B423C2C7C30055FA0D /* DownloadTaskHandler.swift */; }; - 668F70B723C2C7C30055FA0D /* DownloadTaskHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 668F70B423C2C7C30055FA0D /* DownloadTaskHandler.swift */; }; - 66F3AC4423B7A2E500C4505D /* CachableAVPlayerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F3AC4323B7A2E500C4505D /* CachableAVPlayerItem.swift */; }; - 66F3AC4523B7A2E500C4505D /* CachableAVPlayerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F3AC4323B7A2E500C4505D /* CachableAVPlayerItem.swift */; }; - 6E2E68FF27C6E1EBAD1EAAAA70DF14DF /* Celestial-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F659EEE00E9525CA0543E85138D7BC7 /* Celestial-dummy.m */; }; - 737EE78BCE9268EA99795996FA25B38C /* Pods-Celestial_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D096D082AE2E0432CD5D60B872D7EE /* Pods-Celestial_Example-dummy.m */; }; - 8F8324D8940669DE80A73AEBD0B2AB29 /* Pods-Celestial_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 31E3F3026AF0B8AF69E7FBF16A9A2364 /* Pods-Celestial_Tests-dummy.m */; }; - B73D4A8C1FCFCD78496F59D3E180CE85 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - E3B1799249A3BC3D92C7817BB3AFCFF3 /* Pods-Celestial_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DEBD88AC2334A7C256C60DC838740F81 /* Pods-Celestial_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8ACA2A8C812906A2F27EBCE55418AB9 /* Celestial-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A4A725287E1371C5E122D312E3194C5 /* Celestial-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE09C5D4059AE4FC7B8211EF312295FD /* Pods-Celestial_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F229DE4A365E7A97A87B624345327703 /* Pods-Celestial_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0930DD26897D2DC11D650F29F12A9F72 /* Celestial-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AD4EE28DACB433CE10211C1B9B8352CA /* Celestial-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 114486794A607905031F06032CB62C92 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */; }; + 1EC466D884758F58FE22817D2BC9970F /* CachableAVPlayerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0308A10BFB6BD752BEDFFAF24234690D /* CachableAVPlayerItem.swift */; }; + 208CE741F90929EA527590E93B7900FA /* DebugLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5724F159A336A8DF4DF81B787019C187 /* DebugLogger.swift */; }; + 237CCDBEA548A0777070062EC05056F4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D245E0514AAC1A2B9A6D5EA2F383E90F /* UIKit.framework */; }; + 2C99FFF41A4F480059349EFDD788B4B7 /* VideoCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 913F23EC5A6D430CE71B91F1133EEE0D /* VideoCache.swift */; }; + 302E6FE2D1F834E43A05C61326C5477D /* AssetExportManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 268D290A067CE743AE7D9514F497E588 /* AssetExportManager.swift */; }; + 372259E255B2F4A1425FCFC4802ED879 /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA8083A22E5BE986CDB01212A0C19F7B /* ImageCache.swift */; }; + 3DFC110D8E8134BC4BB000755AEF0F90 /* URLImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76B3BCBAB626B14E73CCB7702F72DEA3 /* URLImageView.swift */; }; + 4C80DA48E448F53DE88C3BE0233ADB54 /* URLVideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D69333F89AD1667AD2E2EA8662B2DD8C /* URLVideoPlayerView.swift */; }; + 4D9CEC6466635ACA5FC656F7C83C3AE5 /* CachedResourceIdentifierContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FED33D9946926B2B248E476C5F144C6 /* CachedResourceIdentifierContext.swift */; }; + 555D4FEE2CDA8BC58945F7C1AF6ED5AD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */; }; + 6C2AEFF9D9C0B1BFA77E66BC224D6351 /* Pods-Celestial_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DEBD88AC2334A7C256C60DC838740F81 /* Pods-Celestial_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95BE14E3D12A2CF6D48A571446C677E4 /* DownloadTaskManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D32A66D6C234FA747A5AC868DFED37 /* DownloadTaskManager.swift */; }; + 9C4A99F7FF9B02D314B80190525C663C /* Pods-Celestial_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D096D082AE2E0432CD5D60B872D7EE /* Pods-Celestial_Example-dummy.m */; }; + 9D95F49AB4A32B6158DB8A559A66AE95 /* MiscellaneousDeclarations.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB9C64E04550F6DD20D675E29E2137E1 /* MiscellaneousDeclarations.swift */; }; + A2CD11BDBFBEA392FB7897D8188BE9A4 /* Pods-Celestial_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 31E3F3026AF0B8AF69E7FBF16A9A2364 /* Pods-Celestial_Tests-dummy.m */; }; + A2E876FFC2E9BA8BAA359BF412B9A6C1 /* DownloadManagerContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFE8921F6CDCA7A3D9D2FA100A02246D /* DownloadManagerContext.swift */; }; + A8540283EFC2D529232660B42846F3D5 /* DataLoadablePlayerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F905F6B5E339E29E20050F9DC3D86 /* DataLoadablePlayerItem.swift */; }; + A9F84BBD0D4BFCFEBE6D7CD2E0D982DE /* DownloadTaskHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B45ECB0B16BBC83C342083A0A0A130F /* DownloadTaskHandler.swift */; }; + AFC37530E97C744184917D4187731ECD /* FileStorageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE1C6608A4D716ADBB15EE33FDDAC5AC /* FileStorageManager.swift */; }; + B1B3A0CA7069D8E9CA740B3F73B08BD9 /* Celestial-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 52422B5B43C72475A064EA59078C7A89 /* Celestial-dummy.m */; }; + C21412AF354B8245546C11871E38EEDD /* DownloadTaskRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEBDDAF6C10AA6D9B0614EDD422D77E0 /* DownloadTaskRequest.swift */; }; + C7CEEF6CE7D811CD44201442F9AE5407 /* MemoryCachedVideoData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109C1EA58C46F1ECAB07696111126EE9 /* MemoryCachedVideoData.swift */; }; + CE1D2C55B623D45B298F2C58DC705192 /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192D9F8AD988DEB1C8D5B4653C9D0835 /* VideoPlayerView.swift */; }; + CE1E9E1BF2FFBD30DCC7285C97866F43 /* Celestial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B80752D41297F116AF3C32C2BD56E2A /* Celestial.swift */; }; + D51A325EEC73024368CE209F9E6F992B /* Pods-Celestial_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F229DE4A365E7A97A87B624345327703 /* Pods-Celestial_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB3A8A2C4C7F6F7F05F6DC5892E9AFE9 /* ObservableAVPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC7EB069BE6D28D64676B9B23923DA /* ObservableAVPlayer.swift */; }; + EB760187CE7C0597380F082D11EEA9EA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */; }; + F1D62E9968BAF785BF2B723C9FAF24FE /* MediaResourceLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 501A2236DEA01E956B8B308ABE66B3C2 /* MediaResourceLoader.swift */; }; + F3C9C79692B6C74684653B3EADF7A773 /* Utility.swift in Sources */ = {isa = PBXBuildFile; fileRef = B63FE86DF345AB2EDAC98C5050B65916 /* Utility.swift */; }; + F74E3273D3845558B5E27B9C465A2CCD /* MultimediaCacheProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DFC31EA9FA9ACD1AA15E68CBAA52B5 /* MultimediaCacheProtocols.swift */; }; + FDED0F81F2F58F57C36AA67F39CE15A7 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B19D8DFA47B4158367668BA44539D11 /* Extensions.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 042DD35E1075F3D01ABF843600D7D25B /* PBXContainerItemProxy */ = { + A584E6635FEE18285C1D766A19F3A5B2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = A5DEC55B036043B3545F54C1AFA8EAEC; - remoteInfo = Celestial; + remoteGlobalIDString = D0680F6B96557BFD40DDCBE9025E02A9; + remoteInfo = "Pods-Celestial_Example"; }; - E5B3ACB88E82E60A4FF98E762E76210A /* PBXContainerItemProxy */ = { + E5065558756AE93C09B8F5C4C3902BD3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = D0680F6B96557BFD40DDCBE9025E02A9; - remoteInfo = "Pods-Celestial_Example"; + remoteGlobalIDString = A5DEC55B036043B3545F54C1AFA8EAEC; + remoteInfo = Celestial; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0308A10BFB6BD752BEDFFAF24234690D /* CachableAVPlayerItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CachableAVPlayerItem.swift; sourceTree = ""; }; 087FACB32AE699A623F9B1BD088E67E8 /* Pods-Celestial_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Celestial_Example.debug.xcconfig"; sourceTree = ""; }; - 0A4A725287E1371C5E122D312E3194C5 /* Celestial-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Celestial-umbrella.h"; sourceTree = ""; }; - 22C80511A170DE42DA7884356C9F0ECA /* Celestial-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Celestial-Info.plist"; sourceTree = ""; }; + 0BE7FBA3922A7C7D62B29CA972BC16E2 /* Celestial-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Celestial-prefix.pch"; sourceTree = ""; }; + 109C1EA58C46F1ECAB07696111126EE9 /* MemoryCachedVideoData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MemoryCachedVideoData.swift; sourceTree = ""; }; + 192D9F8AD988DEB1C8D5B4653C9D0835 /* VideoPlayerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VideoPlayerView.swift; sourceTree = ""; }; + 1B45ECB0B16BBC83C342083A0A0A130F /* DownloadTaskHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DownloadTaskHandler.swift; sourceTree = ""; }; + 268D290A067CE743AE7D9514F497E588 /* AssetExportManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AssetExportManager.swift; sourceTree = ""; }; 2F47F5060EB433ACA46822B2E54E64F7 /* Pods-Celestial_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Celestial_Tests.modulemap"; sourceTree = ""; }; 31E3F3026AF0B8AF69E7FBF16A9A2364 /* Pods-Celestial_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Celestial_Tests-dummy.m"; sourceTree = ""; }; - 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 3B8ED4DD024485C3C025ADFDF8021991 /* Celestial.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Celestial.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 3DA140B681E4A1056D7152D5B6B5C99A /* Pods-Celestial_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Celestial_Example-acknowledgements.plist"; sourceTree = ""; }; 4049AF34110C6D44F14CAFB18DF6562D /* Pods-Celestial_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Celestial_Tests-Info.plist"; sourceTree = ""; }; + 45DFC31EA9FA9ACD1AA15E68CBAA52B5 /* MultimediaCacheProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MultimediaCacheProtocols.swift; sourceTree = ""; }; 46CCC785871C588689284E5FDFB20E4B /* Pods-Celestial_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Celestial_Tests.debug.xcconfig"; sourceTree = ""; }; - 4AD82D2DF1165B588B816694FB5709AD /* Celestial.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Celestial.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4AD82D2DF1165B588B816694FB5709AD /* Celestial.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Celestial.framework; path = Celestial.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B80752D41297F116AF3C32C2BD56E2A /* Celestial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Celestial.swift; sourceTree = ""; }; + 4F7F905F6B5E339E29E20050F9DC3D86 /* DataLoadablePlayerItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataLoadablePlayerItem.swift; sourceTree = ""; }; + 4FED33D9946926B2B248E476C5F144C6 /* CachedResourceIdentifierContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CachedResourceIdentifierContext.swift; sourceTree = ""; }; + 501A2236DEA01E956B8B308ABE66B3C2 /* MediaResourceLoader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MediaResourceLoader.swift; sourceTree = ""; }; + 52422B5B43C72475A064EA59078C7A89 /* Celestial-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Celestial-dummy.m"; sourceTree = ""; }; 53D096D082AE2E0432CD5D60B872D7EE /* Pods-Celestial_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Celestial_Example-dummy.m"; sourceTree = ""; }; - 66270B8423B4354F00A34A17 /* Celestial.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Celestial.swift; sourceTree = ""; }; - 66270B8923B435DA00A34A17 /* MultimediaCacheProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultimediaCacheProtocols.swift; sourceTree = ""; }; - 66270B8C23B4372800A34A17 /* ImageCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCache.swift; sourceTree = ""; }; - 66270B8F23B437C600A34A17 /* VideoCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoCache.swift; sourceTree = ""; }; - 66270B9323B438DD00A34A17 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; - 66270B9723B43B6200A34A17 /* URLImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLImageView.swift; sourceTree = ""; }; - 66270B9A23B4437600A34A17 /* MiscellaneousDeclarations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiscellaneousDeclarations.swift; sourceTree = ""; }; - 663A31BC23B826ED0004AA37 /* ResourceLoaderDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResourceLoaderDelegate.swift; sourceTree = ""; }; - 663A31BF23B995E40004AA37 /* OriginalVideoData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OriginalVideoData.swift; sourceTree = ""; }; - 66884BF2249DE66A004793E5 /* VideoPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoPlayerView.swift; sourceTree = ""; }; - 66884BF4249EC308004793E5 /* Utility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utility.swift; sourceTree = ""; }; - 668F70B423C2C7C30055FA0D /* DownloadTaskHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadTaskHandler.swift; sourceTree = ""; }; - 66F3AC4323B7A2E500C4505D /* CachableAVPlayerItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachableAVPlayerItem.swift; sourceTree = ""; }; + 5724F159A336A8DF4DF81B787019C187 /* DebugLogger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DebugLogger.swift; sourceTree = ""; }; + 5BEDFC84436DDB693CC9BCFB95A0F14E /* Celestial.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Celestial.debug.xcconfig; sourceTree = ""; }; + 62407D188572FFCA15D53C98C14C8A62 /* Celestial-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Celestial-Info.plist"; sourceTree = ""; }; 68BD6AB4BBE8DE3A626834606FB29915 /* Pods-Celestial_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Celestial_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 71CDF28B8377D47B4E08FD7BBBB62692 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 7A5FE9EA71C337538561976B41003A13 /* Celestial.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Celestial.xcconfig; sourceTree = ""; }; - 7F659EEE00E9525CA0543E85138D7BC7 /* Celestial-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Celestial-dummy.m"; sourceTree = ""; }; - 88CBED0E933907FFFEC7FE63510AD124 /* Pods_Celestial_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Celestial_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 76B3BCBAB626B14E73CCB7702F72DEA3 /* URLImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLImageView.swift; sourceTree = ""; }; + 7B19D8DFA47B4158367668BA44539D11 /* Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; + 88CBED0E933907FFFEC7FE63510AD124 /* Pods_Celestial_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Celestial_Example.framework; path = "Pods-Celestial_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 8E66AEBFB78153E060F5B73A355D9F66 /* Pods-Celestial_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Celestial_Example-frameworks.sh"; sourceTree = ""; }; - 9717017E0D9769898F2D6B70ED67A026 /* Celestial.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Celestial.modulemap; sourceTree = ""; }; + 913F23EC5A6D430CE71B91F1133EEE0D /* VideoCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VideoCache.swift; sourceTree = ""; }; + 95DC7EB069BE6D28D64676B9B23923DA /* ObservableAVPlayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ObservableAVPlayer.swift; sourceTree = ""; }; 996E70E43013D3F3C7CD3468632BCCB3 /* Pods-Celestial_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Celestial_Example.modulemap"; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A0229B249FB9EFBB8BBBD1F4CEDAAE37 /* Pods_Celestial_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Celestial_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A0229B249FB9EFBB8BBBD1F4CEDAAE37 /* Pods_Celestial_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Celestial_Tests.framework; path = "Pods-Celestial_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; A4216798A78F010A297577E497C931C1 /* Pods-Celestial_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Celestial_Example.release.xcconfig"; sourceTree = ""; }; - D049077F9198C51CEA12707667868635 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - D9E7318B247F8114DEAA7D6EF32170E5 /* Celestial-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Celestial-prefix.pch"; sourceTree = ""; }; + AD4EE28DACB433CE10211C1B9B8352CA /* Celestial-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Celestial-umbrella.h"; sourceTree = ""; }; + AE1C6608A4D716ADBB15EE33FDDAC5AC /* FileStorageManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FileStorageManager.swift; sourceTree = ""; }; + B23B960A591A91E30750DC09C2116EAC /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + B50666ECCDE37146E2DEF0E72128E231 /* Celestial.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Celestial.modulemap; sourceTree = ""; }; + B63FE86DF345AB2EDAC98C5050B65916 /* Utility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Utility.swift; sourceTree = ""; }; + BFE8921F6CDCA7A3D9D2FA100A02246D /* DownloadManagerContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DownloadManagerContext.swift; sourceTree = ""; }; + D245E0514AAC1A2B9A6D5EA2F383E90F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + D69333F89AD1667AD2E2EA8662B2DD8C /* URLVideoPlayerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLVideoPlayerView.swift; sourceTree = ""; }; + DB9C64E04550F6DD20D675E29E2137E1 /* MiscellaneousDeclarations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MiscellaneousDeclarations.swift; sourceTree = ""; }; DEBD88AC2334A7C256C60DC838740F81 /* Pods-Celestial_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Celestial_Tests-umbrella.h"; sourceTree = ""; }; + DEBDDAF6C10AA6D9B0614EDD422D77E0 /* DownloadTaskRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DownloadTaskRequest.swift; sourceTree = ""; }; E387F88EC90A35C2A6D08FA018D807F0 /* Pods-Celestial_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Celestial_Tests-acknowledgements.plist"; sourceTree = ""; }; - E98459A1030E55B047424005C60CF595 /* Celestial.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = Celestial.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + EB34CB299FCBD8DD4F011E9F36A79CF8 /* Celestial.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Celestial.release.xcconfig; sourceTree = ""; }; EE57E4E0BFCB93569A9254B00A13A18D /* Pods-Celestial_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Celestial_Tests.release.xcconfig"; sourceTree = ""; }; F1417F6CE192A22CAB8159866A5F5FAB /* Pods-Celestial_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Celestial_Example-acknowledgements.markdown"; sourceTree = ""; }; F229DE4A365E7A97A87B624345327703 /* Pods-Celestial_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Celestial_Example-umbrella.h"; sourceTree = ""; }; + F6D32A66D6C234FA747A5AC868DFED37 /* DownloadTaskManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DownloadTaskManager.swift; sourceTree = ""; }; F7C151A6F517F00ED05936F8A36DC12C /* Pods-Celestial_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Celestial_Example-Info.plist"; sourceTree = ""; }; + FA8083A22E5BE986CDB01212A0C19F7B /* ImageCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ImageCache.swift; sourceTree = ""; }; + FF5EC432709EBE3284DC183B38DB1609 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 157270983524A6DEC4099F4CAE35317C /* Frameworks */ = { + 4D4ED50FF25200B831AA3C6ED47352CD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4B5B9F1D419CAB4B1BDD8D69D39C2AC9 /* Foundation.framework in Frameworks */, + 555D4FEE2CDA8BC58945F7C1AF6ED5AD /* Foundation.framework in Frameworks */, + 237CCDBEA548A0777070062EC05056F4 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6009C4A465D7F699C6F481BC68D9EEFF /* Frameworks */ = { + 9C93BD86528C924586B08F6D721894BF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1D13EFCACFF5E1A820EBC4315669DEE5 /* Foundation.framework in Frameworks */, + 114486794A607905031F06032CB62C92 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - EDE6B2246653725F5653FBC6C1BDE45B /* Frameworks */ = { + DA799276E4FB801259778EC6F7197BD6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B73D4A8C1FCFCD78496F59D3E180CE85 /* Foundation.framework in Frameworks */, + EB760187CE7C0597380F082D11EEA9EA /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 214BD00AEAD4DDEB491888E31808D520 /* Products */ = { + 0329CB85C0FDE0C0EF29D59866BBDE24 /* CachableAVPlayerItem */ = { isa = PBXGroup; children = ( - 4AD82D2DF1165B588B816694FB5709AD /* Celestial.framework */, - 88CBED0E933907FFFEC7FE63510AD124 /* Pods_Celestial_Example.framework */, - A0229B249FB9EFBB8BBBD1F4CEDAAE37 /* Pods_Celestial_Tests.framework */, + 0308A10BFB6BD752BEDFFAF24234690D /* CachableAVPlayerItem.swift */, + 501A2236DEA01E956B8B308ABE66B3C2 /* MediaResourceLoader.swift */, ); - name = Products; + name = CachableAVPlayerItem; + path = CachableAVPlayerItem; sourceTree = ""; }; - 65ABDB035D5B3876BB83B4F8E4C62953 /* Development Pods */ = { + 0EEADC866E4A515ADC3007FDA9EEE09E /* Celestial */ = { isa = PBXGroup; children = ( - B1F9161208A861BB5DD07DB703BF78F8 /* Celestial */, + 4FED33D9946926B2B248E476C5F144C6 /* CachedResourceIdentifierContext.swift */, + 4B80752D41297F116AF3C32C2BD56E2A /* Celestial.swift */, + 5724F159A336A8DF4DF81B787019C187 /* DebugLogger.swift */, + FA8083A22E5BE986CDB01212A0C19F7B /* ImageCache.swift */, + 913F23EC5A6D430CE71B91F1133EEE0D /* VideoCache.swift */, ); - name = "Development Pods"; + name = Celestial; + path = Classes/Celestial; sourceTree = ""; }; - 66270B8323B42A8000A34A17 /* Classes */ = { + 0F5838BA617FF199587339A75A7BB1BA /* DownloadManager */ = { isa = PBXGroup; children = ( - 66270B9223B438CE00A34A17 /* Utility */, - 66270B8823B435BA00A34A17 /* Protocols+Declarations */, - 66270B8723B4355700A34A17 /* Celestial */, - 66884BF1249DE655004793E5 /* VideoPlayerView */, - 66270B9623B43B3D00A34A17 /* URLImageView */, - 66F3AC4223B7A23200C4505D /* CachableAVPlayerItem */, - ); - path = Classes; + 268D290A067CE743AE7D9514F497E588 /* AssetExportManager.swift */, + BFE8921F6CDCA7A3D9D2FA100A02246D /* DownloadManagerContext.swift */, + 1B45ECB0B16BBC83C342083A0A0A130F /* DownloadTaskHandler.swift */, + F6D32A66D6C234FA747A5AC868DFED37 /* DownloadTaskManager.swift */, + DEBDDAF6C10AA6D9B0614EDD422D77E0 /* DownloadTaskRequest.swift */, + AE1C6608A4D716ADBB15EE33FDDAC5AC /* FileStorageManager.swift */, + ); + name = DownloadManager; + path = Classes/DownloadManager; sourceTree = ""; }; - 66270B8723B4355700A34A17 /* Celestial */ = { + 140EB1DF6AEAD8EAA601746C643C1DC6 /* Development Pods */ = { isa = PBXGroup; children = ( - 66270B8423B4354F00A34A17 /* Celestial.swift */, - 66270B8C23B4372800A34A17 /* ImageCache.swift */, - 66270B8F23B437C600A34A17 /* VideoCache.swift */, - 668F70B423C2C7C30055FA0D /* DownloadTaskHandler.swift */, + EF1DA04DAAEB6BD8EB145648DCB8C2B5 /* Celestial */, ); - path = Celestial; + name = "Development Pods"; sourceTree = ""; }; - 66270B8823B435BA00A34A17 /* Protocols+Declarations */ = { + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { isa = PBXGroup; children = ( - 66270B8923B435DA00A34A17 /* MultimediaCacheProtocols.swift */, - 66270B9A23B4437600A34A17 /* MiscellaneousDeclarations.swift */, + 59DA5C1F72E1D5BABC43EACBA672C3BA /* iOS */, ); - path = "Protocols+Declarations"; + name = Frameworks; sourceTree = ""; }; - 66270B9223B438CE00A34A17 /* Utility */ = { + 1F5E42CB098093ED129412DDFCE80312 /* Protocols+Declarations */ = { isa = PBXGroup; children = ( - 66270B9323B438DD00A34A17 /* Extensions.swift */, - 66884BF4249EC308004793E5 /* Utility.swift */, + DB9C64E04550F6DD20D675E29E2137E1 /* MiscellaneousDeclarations.swift */, + 45DFC31EA9FA9ACD1AA15E68CBAA52B5 /* MultimediaCacheProtocols.swift */, ); - path = Utility; + name = "Protocols+Declarations"; + path = "Classes/Protocols+Declarations"; sourceTree = ""; }; - 66270B9623B43B3D00A34A17 /* URLImageView */ = { + 214BD00AEAD4DDEB491888E31808D520 /* Products */ = { isa = PBXGroup; children = ( - 66270B9723B43B6200A34A17 /* URLImageView.swift */, + 4AD82D2DF1165B588B816694FB5709AD /* Celestial.framework */, + 88CBED0E933907FFFEC7FE63510AD124 /* Pods_Celestial_Example.framework */, + A0229B249FB9EFBB8BBBD1F4CEDAAE37 /* Pods_Celestial_Tests.framework */, ); - path = URLImageView; + name = Products; sourceTree = ""; }; - 66884BF1249DE655004793E5 /* VideoPlayerView */ = { + 59DA5C1F72E1D5BABC43EACBA672C3BA /* iOS */ = { isa = PBXGroup; children = ( - 66884BF2249DE66A004793E5 /* VideoPlayerView.swift */, + EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */, + D245E0514AAC1A2B9A6D5EA2F383E90F /* UIKit.framework */, ); - path = VideoPlayerView; + name = iOS; sourceTree = ""; }; - 66F3AC4223B7A23200C4505D /* CachableAVPlayerItem */ = { + 69D05DC606E9C12C94E7E6057F997137 /* Pod */ = { isa = PBXGroup; children = ( - 66F3AC4323B7A2E500C4505D /* CachableAVPlayerItem.swift */, - 663A31BC23B826ED0004AA37 /* ResourceLoaderDelegate.swift */, - 663A31BF23B995E40004AA37 /* OriginalVideoData.swift */, + 3B8ED4DD024485C3C025ADFDF8021991 /* Celestial.podspec */, + B23B960A591A91E30750DC09C2116EAC /* LICENSE */, + FF5EC432709EBE3284DC183B38DB1609 /* README.md */, ); - path = CachableAVPlayerItem; + name = Pod; sourceTree = ""; }; - 8CAA666752BA6E84530D0CB68C7361E8 /* Support Files */ = { + 8D1F278EDB3D5D9111D4890DC5445381 /* URLViews */ = { isa = PBXGroup; children = ( - 9717017E0D9769898F2D6B70ED67A026 /* Celestial.modulemap */, - 7A5FE9EA71C337538561976B41003A13 /* Celestial.xcconfig */, - 7F659EEE00E9525CA0543E85138D7BC7 /* Celestial-dummy.m */, - 22C80511A170DE42DA7884356C9F0ECA /* Celestial-Info.plist */, - D9E7318B247F8114DEAA7D6EF32170E5 /* Celestial-prefix.pch */, - 0A4A725287E1371C5E122D312E3194C5 /* Celestial-umbrella.h */, + D78C7F33E0342EFB9DDACBCD89BE9042 /* URLImageView */, + AA05BC76578E5101067C168BEE423318 /* VideoPlayerView */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/Celestial"; + name = URLViews; + path = Classes/URLViews; sourceTree = ""; }; 9549951518D0DE3E0CD1FBC2400F60DC /* Pods-Celestial_Tests */ = { @@ -252,33 +265,28 @@ path = "Target Support Files/Pods-Celestial_Tests"; sourceTree = ""; }; - 96EC5E4F6285E2942782304AE132C717 /* Pod */ = { + AA05BC76578E5101067C168BEE423318 /* VideoPlayerView */ = { isa = PBXGroup; children = ( - E98459A1030E55B047424005C60CF595 /* Celestial.podspec */, - D049077F9198C51CEA12707667868635 /* LICENSE */, - 71CDF28B8377D47B4E08FD7BBBB62692 /* README.md */, - ); - name = Pod; - sourceTree = ""; - }; - B1F9161208A861BB5DD07DB703BF78F8 /* Celestial */ = { - isa = PBXGroup; - children = ( - 66270B8323B42A8000A34A17 /* Classes */, - 96EC5E4F6285E2942782304AE132C717 /* Pod */, - 8CAA666752BA6E84530D0CB68C7361E8 /* Support Files */, - ); - name = Celestial; - path = ../..; + 4F7F905F6B5E339E29E20050F9DC3D86 /* DataLoadablePlayerItem.swift */, + 109C1EA58C46F1ECAB07696111126EE9 /* MemoryCachedVideoData.swift */, + 95DC7EB069BE6D28D64676B9B23923DA /* ObservableAVPlayer.swift */, + D69333F89AD1667AD2E2EA8662B2DD8C /* URLVideoPlayerView.swift */, + 192D9F8AD988DEB1C8D5B4653C9D0835 /* VideoPlayerView.swift */, + 0329CB85C0FDE0C0EF29D59866BBDE24 /* CachableAVPlayerItem */, + ); + name = VideoPlayerView; + path = VideoPlayerView; sourceTree = ""; }; - C0834CEBB1379A84116EF29F93051C60 /* iOS */ = { + AE432C09BE1F2C3215FEE7EEEAB20817 /* Utility */ = { isa = PBXGroup; children = ( - 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */, + 7B19D8DFA47B4158367668BA44539D11 /* Extensions.swift */, + B63FE86DF345AB2EDAC98C5050B65916 /* Utility.swift */, ); - name = iOS; + name = Utility; + path = Classes/Utility; sourceTree = ""; }; C33E69366F2D103D456CF1C732091C7B /* Pods-Celestial_Example */ = { @@ -302,19 +310,20 @@ isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 65ABDB035D5B3876BB83B4F8E4C62953 /* Development Pods */, - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + 140EB1DF6AEAD8EAA601746C643C1DC6 /* Development Pods */, + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */, 214BD00AEAD4DDEB491888E31808D520 /* Products */, E1B308770DD988160FD5CEF050EE5C8B /* Targets Support Files */, ); sourceTree = ""; }; - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + D78C7F33E0342EFB9DDACBCD89BE9042 /* URLImageView */ = { isa = PBXGroup; children = ( - C0834CEBB1379A84116EF29F93051C60 /* iOS */, + 76B3BCBAB626B14E73CCB7702F72DEA3 /* URLImageView.swift */, ); - name = Frameworks; + name = URLImageView; + path = URLImageView; sourceTree = ""; }; E1B308770DD988160FD5CEF050EE5C8B /* Targets Support Files */ = { @@ -326,30 +335,60 @@ name = "Targets Support Files"; sourceTree = ""; }; + EF1DA04DAAEB6BD8EB145648DCB8C2B5 /* Celestial */ = { + isa = PBXGroup; + children = ( + 0EEADC866E4A515ADC3007FDA9EEE09E /* Celestial */, + 0F5838BA617FF199587339A75A7BB1BA /* DownloadManager */, + 69D05DC606E9C12C94E7E6057F997137 /* Pod */, + 1F5E42CB098093ED129412DDFCE80312 /* Protocols+Declarations */, + FC4A1FD4AE350F3DA247D8234DAFFDFD /* Support Files */, + 8D1F278EDB3D5D9111D4890DC5445381 /* URLViews */, + AE432C09BE1F2C3215FEE7EEEAB20817 /* Utility */, + ); + name = Celestial; + path = ../..; + sourceTree = ""; + }; + FC4A1FD4AE350F3DA247D8234DAFFDFD /* Support Files */ = { + isa = PBXGroup; + children = ( + B50666ECCDE37146E2DEF0E72128E231 /* Celestial.modulemap */, + 52422B5B43C72475A064EA59078C7A89 /* Celestial-dummy.m */, + 62407D188572FFCA15D53C98C14C8A62 /* Celestial-Info.plist */, + 0BE7FBA3922A7C7D62B29CA972BC16E2 /* Celestial-prefix.pch */, + AD4EE28DACB433CE10211C1B9B8352CA /* Celestial-umbrella.h */, + 5BEDFC84436DDB693CC9BCFB95A0F14E /* Celestial.debug.xcconfig */, + EB34CB299FCBD8DD4F011E9F36A79CF8 /* Celestial.release.xcconfig */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/Celestial"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 0E24569946329FB6B60E9DDE5A967BD4 /* Headers */ = { + 00FC21E2F2234DB115C1659A409D3A96 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E3B1799249A3BC3D92C7817BB3AFCFF3 /* Pods-Celestial_Tests-umbrella.h in Headers */, + 0930DD26897D2DC11D650F29F12A9F72 /* Celestial-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4A819616D0876EA316C6386DC8FCDD32 /* Headers */ = { + 086221547C44197DA236563D7502D146 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - FE09C5D4059AE4FC7B8211EF312295FD /* Pods-Celestial_Example-umbrella.h in Headers */, + D51A325EEC73024368CE209F9E6F992B /* Pods-Celestial_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8CD94C6F213914D4F99E244046216B91 /* Headers */ = { + 54D377635401FFA41EA2DB05B3743905 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E8ACA2A8C812906A2F27EBCE55418AB9 /* Celestial-umbrella.h in Headers */, + 6C2AEFF9D9C0B1BFA77E66BC224D6351 /* Pods-Celestial_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -358,17 +397,17 @@ /* Begin PBXNativeTarget section */ A049F3293A416657AC1547EF79B36D32 /* Pods-Celestial_Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 1496C7C9D228AA1EC8608DFE194A2A63 /* Build configuration list for PBXNativeTarget "Pods-Celestial_Tests" */; + buildConfigurationList = 363FBB1F11AB953F6AA6DDA98967C463 /* Build configuration list for PBXNativeTarget "Pods-Celestial_Tests" */; buildPhases = ( - 0E24569946329FB6B60E9DDE5A967BD4 /* Headers */, - 59BE70B255D3D9342BDD8ADF9D4BEEF8 /* Sources */, - 6009C4A465D7F699C6F481BC68D9EEFF /* Frameworks */, - 384551770A0387111FF8B3F35F154500 /* Resources */, + 54D377635401FFA41EA2DB05B3743905 /* Headers */, + 500DA14427F2092D829DF208421FC74D /* Sources */, + DA799276E4FB801259778EC6F7197BD6 /* Frameworks */, + 0DFE5538E38837BCD10C71E8038AA717 /* Resources */, ); buildRules = ( ); dependencies = ( - 7646F12A442EE234681B129626DC8D52 /* PBXTargetDependency */, + 7D4007E61F06ACD4A08169F2C7BF3AEA /* PBXTargetDependency */, ); name = "Pods-Celestial_Tests"; productName = "Pods-Celestial_Tests"; @@ -377,12 +416,12 @@ }; A5DEC55B036043B3545F54C1AFA8EAEC /* Celestial */ = { isa = PBXNativeTarget; - buildConfigurationList = BF1E19DB986B1B08C2E6597C00946DEB /* Build configuration list for PBXNativeTarget "Celestial" */; + buildConfigurationList = 7A2292590290C91779D2B92814BBF70B /* Build configuration list for PBXNativeTarget "Celestial" */; buildPhases = ( - 8CD94C6F213914D4F99E244046216B91 /* Headers */, - 71CD173B5265F26B2721C407F0315DC9 /* Sources */, - EDE6B2246653725F5653FBC6C1BDE45B /* Frameworks */, - 42532144A082829BC0966F840B9BD798 /* Resources */, + 00FC21E2F2234DB115C1659A409D3A96 /* Headers */, + 5B1A49E9DBB10EFA83A46CF400FEDDD3 /* Sources */, + 4D4ED50FF25200B831AA3C6ED47352CD /* Frameworks */, + D20657F705F5EBC6516BFC4559257FC1 /* Resources */, ); buildRules = ( ); @@ -395,17 +434,17 @@ }; D0680F6B96557BFD40DDCBE9025E02A9 /* Pods-Celestial_Example */ = { isa = PBXNativeTarget; - buildConfigurationList = 1D0255F063424B725689B2313C730FB0 /* Build configuration list for PBXNativeTarget "Pods-Celestial_Example" */; + buildConfigurationList = E8E007C2817AAA13381BC47627620DCF /* Build configuration list for PBXNativeTarget "Pods-Celestial_Example" */; buildPhases = ( - 4A819616D0876EA316C6386DC8FCDD32 /* Headers */, - 447E36AFA1CECEAC82C8B03C78A42AC5 /* Sources */, - 157270983524A6DEC4099F4CAE35317C /* Frameworks */, - 007E8ABB4F0F00121F9F52F2341332D9 /* Resources */, + 086221547C44197DA236563D7502D146 /* Headers */, + CAD75F03EBC0C1B79FD29689B763A17B /* Sources */, + 9C93BD86528C924586B08F6D721894BF /* Frameworks */, + 466B4055E7E3B4459E883396A9815AEF /* Resources */, ); buildRules = ( ); dependencies = ( - 35999F4F728D713933962F6DBED1E781 /* PBXTargetDependency */, + 34774CDAAA8BDAECED1075F3AA256887 /* PBXTargetDependency */, ); name = "Pods-Celestial_Example"; productName = "Pods-Celestial_Example"; @@ -420,17 +459,6 @@ attributes = { LastSwiftUpdateCheck = 1100; LastUpgradeCheck = 1100; - TargetAttributes = { - A049F3293A416657AC1547EF79B36D32 = { - LastSwiftMigration = 1130; - }; - A5DEC55B036043B3545F54C1AFA8EAEC = { - LastSwiftMigration = 1130; - }; - D0680F6B96557BFD40DDCBE9025E02A9 = { - LastSwiftMigration = 1130; - }; - }; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -453,21 +481,21 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 007E8ABB4F0F00121F9F52F2341332D9 /* Resources */ = { + 0DFE5538E38837BCD10C71E8038AA717 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 384551770A0387111FF8B3F35F154500 /* Resources */ = { + 466B4055E7E3B4459E883396A9815AEF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 42532144A082829BC0966F840B9BD798 /* Resources */ = { + D20657F705F5EBC6516BFC4559257FC1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -477,81 +505,77 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 447E36AFA1CECEAC82C8B03C78A42AC5 /* Sources */ = { + 500DA14427F2092D829DF208421FC74D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 66270B9923B43B6200A34A17 /* URLImageView.swift in Sources */, - 668F70B623C2C7C30055FA0D /* DownloadTaskHandler.swift in Sources */, - 663A31BE23B826ED0004AA37 /* ResourceLoaderDelegate.swift in Sources */, - 66270B8623B4354F00A34A17 /* Celestial.swift in Sources */, - 66270B9523B438DD00A34A17 /* Extensions.swift in Sources */, - 663A31C123B995E50004AA37 /* OriginalVideoData.swift in Sources */, - 66270B8B23B435DA00A34A17 /* MultimediaCacheProtocols.swift in Sources */, - 66884BF6249EC47D004793E5 /* Utility.swift in Sources */, - 66F3AC4523B7A2E500C4505D /* CachableAVPlayerItem.swift in Sources */, - 66270B9123B437C600A34A17 /* VideoCache.swift in Sources */, - 66270B8E23B4372800A34A17 /* ImageCache.swift in Sources */, - 737EE78BCE9268EA99795996FA25B38C /* Pods-Celestial_Example-dummy.m in Sources */, - 66270B9C23B4437600A34A17 /* MiscellaneousDeclarations.swift in Sources */, + A2CD11BDBFBEA392FB7897D8188BE9A4 /* Pods-Celestial_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 59BE70B255D3D9342BDD8ADF9D4BEEF8 /* Sources */ = { + 5B1A49E9DBB10EFA83A46CF400FEDDD3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8F8324D8940669DE80A73AEBD0B2AB29 /* Pods-Celestial_Tests-dummy.m in Sources */, - 668F70B723C2C7C30055FA0D /* DownloadTaskHandler.swift in Sources */, + 302E6FE2D1F834E43A05C61326C5477D /* AssetExportManager.swift in Sources */, + 1EC466D884758F58FE22817D2BC9970F /* CachableAVPlayerItem.swift in Sources */, + 4D9CEC6466635ACA5FC656F7C83C3AE5 /* CachedResourceIdentifierContext.swift in Sources */, + B1B3A0CA7069D8E9CA740B3F73B08BD9 /* Celestial-dummy.m in Sources */, + CE1E9E1BF2FFBD30DCC7285C97866F43 /* Celestial.swift in Sources */, + A8540283EFC2D529232660B42846F3D5 /* DataLoadablePlayerItem.swift in Sources */, + 208CE741F90929EA527590E93B7900FA /* DebugLogger.swift in Sources */, + A2E876FFC2E9BA8BAA359BF412B9A6C1 /* DownloadManagerContext.swift in Sources */, + A9F84BBD0D4BFCFEBE6D7CD2E0D982DE /* DownloadTaskHandler.swift in Sources */, + 95BE14E3D12A2CF6D48A571446C677E4 /* DownloadTaskManager.swift in Sources */, + C21412AF354B8245546C11871E38EEDD /* DownloadTaskRequest.swift in Sources */, + FDED0F81F2F58F57C36AA67F39CE15A7 /* Extensions.swift in Sources */, + AFC37530E97C744184917D4187731ECD /* FileStorageManager.swift in Sources */, + 372259E255B2F4A1425FCFC4802ED879 /* ImageCache.swift in Sources */, + F1D62E9968BAF785BF2B723C9FAF24FE /* MediaResourceLoader.swift in Sources */, + C7CEEF6CE7D811CD44201442F9AE5407 /* MemoryCachedVideoData.swift in Sources */, + 9D95F49AB4A32B6158DB8A559A66AE95 /* MiscellaneousDeclarations.swift in Sources */, + F74E3273D3845558B5E27B9C465A2CCD /* MultimediaCacheProtocols.swift in Sources */, + DB3A8A2C4C7F6F7F05F6DC5892E9AFE9 /* ObservableAVPlayer.swift in Sources */, + 3DFC110D8E8134BC4BB000755AEF0F90 /* URLImageView.swift in Sources */, + 4C80DA48E448F53DE88C3BE0233ADB54 /* URLVideoPlayerView.swift in Sources */, + F3C9C79692B6C74684653B3EADF7A773 /* Utility.swift in Sources */, + 2C99FFF41A4F480059349EFDD788B4B7 /* VideoCache.swift in Sources */, + CE1D2C55B623D45B298F2C58DC705192 /* VideoPlayerView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 71CD173B5265F26B2721C407F0315DC9 /* Sources */ = { + CAD75F03EBC0C1B79FD29689B763A17B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 66884BF5249EC308004793E5 /* Utility.swift in Sources */, - 66270B9823B43B6200A34A17 /* URLImageView.swift in Sources */, - 668F70B523C2C7C30055FA0D /* DownloadTaskHandler.swift in Sources */, - 663A31BD23B826ED0004AA37 /* ResourceLoaderDelegate.swift in Sources */, - 66270B8523B4354F00A34A17 /* Celestial.swift in Sources */, - 66270B9423B438DD00A34A17 /* Extensions.swift in Sources */, - 663A31C023B995E50004AA37 /* OriginalVideoData.swift in Sources */, - 66270B8A23B435DA00A34A17 /* MultimediaCacheProtocols.swift in Sources */, - 66F3AC4423B7A2E500C4505D /* CachableAVPlayerItem.swift in Sources */, - 66270B9023B437C600A34A17 /* VideoCache.swift in Sources */, - 66270B8D23B4372800A34A17 /* ImageCache.swift in Sources */, - 6E2E68FF27C6E1EBAD1EAAAA70DF14DF /* Celestial-dummy.m in Sources */, - 66884BF3249DE66A004793E5 /* VideoPlayerView.swift in Sources */, - 66270B9B23B4437600A34A17 /* MiscellaneousDeclarations.swift in Sources */, + 9C4A99F7FF9B02D314B80190525C663C /* Pods-Celestial_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 35999F4F728D713933962F6DBED1E781 /* PBXTargetDependency */ = { + 34774CDAAA8BDAECED1075F3AA256887 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Celestial; target = A5DEC55B036043B3545F54C1AFA8EAEC /* Celestial */; - targetProxy = 042DD35E1075F3D01ABF843600D7D25B /* PBXContainerItemProxy */; + targetProxy = E5065558756AE93C09B8F5C4C3902BD3 /* PBXContainerItemProxy */; }; - 7646F12A442EE234681B129626DC8D52 /* PBXTargetDependency */ = { + 7D4007E61F06ACD4A08169F2C7BF3AEA /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-Celestial_Example"; target = D0680F6B96557BFD40DDCBE9025E02A9 /* Pods-Celestial_Example */; - targetProxy = E5B3ACB88E82E60A4FF98E762E76210A /* PBXContainerItemProxy */; + targetProxy = A584E6635FEE18285C1D766A19F3A5B2 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 05F447AEC8A47A2474D820B4A6CF4326 /* Debug */ = { + 0A9D7FBCE481251A5039F723350E0507 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 46CCC785871C588689284E5FDFB20E4B /* Pods-Celestial_Tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -562,7 +586,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.modulemap"; @@ -573,87 +597,18 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 16F7CBFC5873827FDB138339FADCF647 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7A5FE9EA71C337538561976B41003A13 /* Celestial.xcconfig */; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - 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/Celestial/Celestial-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Celestial/Celestial-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Celestial/Celestial.modulemap"; - PRODUCT_MODULE_NAME = Celestial; - PRODUCT_NAME = Celestial; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 53CF762697A2C2F7A65C8E0C29487631 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7A5FE9EA71C337538561976B41003A13 /* Celestial.xcconfig */; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - 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/Celestial/Celestial-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Celestial/Celestial-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Celestial/Celestial.modulemap"; - PRODUCT_MODULE_NAME = Celestial; - PRODUCT_NAME = Celestial; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 669DE00A7A83A6C19A63D5025E833E74 /* Debug */ = { + 3DCB3FD8D8F124BC68E4710F0553899E /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 087FACB32AE699A623F9B1BD088E67E8 /* Pods-Celestial_Example.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -664,7 +619,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.modulemap"; @@ -675,18 +630,17 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - B0087CB4594321EF41619F3181FE120E /* Release */ = { + 7EE7A78859F657F6BEFC651185B43192 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -709,6 +663,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -731,21 +686,88 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; name = Release; }; - B8BCBD0110C2658BB5DAADB9B7D97B92 /* Debug */ = { + 980C746D6FAF758210EAD31ED2A3B8C1 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A4216798A78F010A297577E497C931C1 /* Pods-Celestial_Example.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "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-Celestial_Example/Pods-Celestial_Example-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.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"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BC92B046A6AFB51978EE3E55E6EC88E2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5BEDFC84436DDB693CC9BCFB95A0F14E /* Celestial.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "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/Celestial/Celestial-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Celestial/Celestial-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Celestial/Celestial.modulemap"; + PRODUCT_MODULE_NAME = Celestial; + PRODUCT_NAME = Celestial; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + D299434AB35E7FD6F7921C8EF24742FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -768,6 +790,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -793,7 +816,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -806,13 +829,12 @@ }; name = Debug; }; - B8DBEEE2A72FE5AD30EBDCD5C2573FBC /* Release */ = { + EC0E616C838C20127B8B85B315BEF3D0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A4216798A78F010A297577E497C931C1 /* Pods-Celestial_Example.release.xcconfig */; + baseConfigurationReference = EE57E4E0BFCB93569A9254B00A13A18D /* Pods-Celestial_Tests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -821,12 +843,12 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -834,7 +856,6 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -842,13 +863,11 @@ }; name = Release; }; - DE0A6E671CA5CC8911FF3455B552FE62 /* Release */ = { + FD7B17AFBA2BBD7A498CBF20A2D599F2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EE57E4E0BFCB93569A9254B00A13A18D /* Pods-Celestial_Tests.release.xcconfig */; + baseConfigurationReference = EB34CB299FCBD8DD4F011E9F36A79CF8 /* Celestial.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -857,20 +876,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Celestial/Celestial-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Celestial/Celestial-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/Celestial/Celestial.modulemap"; + PRODUCT_MODULE_NAME = Celestial; + PRODUCT_NAME = Celestial; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -881,38 +898,38 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 1496C7C9D228AA1EC8608DFE194A2A63 /* Build configuration list for PBXNativeTarget "Pods-Celestial_Tests" */ = { + 363FBB1F11AB953F6AA6DDA98967C463 /* Build configuration list for PBXNativeTarget "Pods-Celestial_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 05F447AEC8A47A2474D820B4A6CF4326 /* Debug */, - DE0A6E671CA5CC8911FF3455B552FE62 /* Release */, + 0A9D7FBCE481251A5039F723350E0507 /* Debug */, + EC0E616C838C20127B8B85B315BEF3D0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1D0255F063424B725689B2313C730FB0 /* Build configuration list for PBXNativeTarget "Pods-Celestial_Example" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 669DE00A7A83A6C19A63D5025E833E74 /* Debug */, - B8DBEEE2A72FE5AD30EBDCD5C2573FBC /* Release */, + D299434AB35E7FD6F7921C8EF24742FF /* Debug */, + 7EE7A78859F657F6BEFC651185B43192 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 7A2292590290C91779D2B92814BBF70B /* Build configuration list for PBXNativeTarget "Celestial" */ = { isa = XCConfigurationList; buildConfigurations = ( - B8BCBD0110C2658BB5DAADB9B7D97B92 /* Debug */, - B0087CB4594321EF41619F3181FE120E /* Release */, + BC92B046A6AFB51978EE3E55E6EC88E2 /* Debug */, + FD7B17AFBA2BBD7A498CBF20A2D599F2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BF1E19DB986B1B08C2E6597C00946DEB /* Build configuration list for PBXNativeTarget "Celestial" */ = { + E8E007C2817AAA13381BC47627620DCF /* Build configuration list for PBXNativeTarget "Pods-Celestial_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - 53CF762697A2C2F7A65C8E0C29487631 /* Debug */, - 16F7CBFC5873827FDB138339FADCF647 /* Release */, + 3DCB3FD8D8F124BC68E4710F0553899E /* Debug */, + 980C746D6FAF758210EAD31ED2A3B8C1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/Celestial/Celestial-Info.plist b/Example/Pods/Target Support Files/Celestial/Celestial-Info.plist index 161a9d3..ed9de7a 100644 --- a/Example/Pods/Target Support Files/Celestial/Celestial-Info.plist +++ b/Example/Pods/Target Support Files/Celestial/Celestial-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.1.0 + 0.8.130 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/Celestial/Celestial.debug.xcconfig b/Example/Pods/Target Support Files/Celestial/Celestial.debug.xcconfig new file mode 100644 index 0000000..573374a --- /dev/null +++ b/Example/Pods/Target Support Files/Celestial/Celestial.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Celestial +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Celestial/Celestial.release.xcconfig b/Example/Pods/Target Support Files/Celestial/Celestial.release.xcconfig new file mode 100644 index 0000000..573374a --- /dev/null +++ b/Example/Pods/Target Support Files/Celestial/Celestial.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Celestial +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example-frameworks.sh index cf730de..40eaaae 100755 --- a/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example-frameworks.sh @@ -19,9 +19,8 @@ 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}" +BCSYMBOLMAP_DIR="BCSymbolMaps" -# 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 @@ -45,9 +44,19 @@ install_framework() source="$(readlink "${source}")" fi + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + # 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}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -80,69 +89,52 @@ install_framework() done fi } - # Copies and strips a vendored dSYM install_dsym() { local source="$1" + warn_missing_arch=${2:-true} if [ -r "$source" ]; then - # Copy the dSYM into a the targets temp dir. + # Copy the dSYM into 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}" + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - # Strip invalid architectures so "fat" simulator / device frameworks work on device + # Strip invalid architectures from the dSYM. if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" + strip_invalid_archs "$binary" "$warn_missing_arch" fi - - if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + if [[ $STRIP_BINARY_RETVAL == 0 ]]; 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}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --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[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.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" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" fi fi } -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# 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 - # Use the current code_sign_identity - 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'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 # Strip invalid architectures strip_invalid_archs() { binary="$1" + warn_missing_arch=${2:-true} # 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 + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 return fi stripped="" @@ -156,9 +148,31 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi - STRIP_BINARY_RETVAL=1 + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" } +# 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 + # Use the current code_sign_identity + 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'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/Celestial/Celestial.framework" diff --git a/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.debug.xcconfig index 71835bc..eaf1d18 100644 --- a/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.debug.xcconfig @@ -1,12 +1,14 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial/Celestial.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "Celestial" +OTHER_LDFLAGS = $(inherited) -framework "Celestial" -framework "UIKit" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 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 +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.release.xcconfig index 71835bc..eaf1d18 100644 --- a/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-Celestial_Example/Pods-Celestial_Example.release.xcconfig @@ -1,12 +1,14 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial/Celestial.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "Celestial" +OTHER_LDFLAGS = $(inherited) -framework "Celestial" -framework "UIKit" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 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 +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.debug.xcconfig index 357309e..5873688 100644 --- a/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.debug.xcconfig @@ -1,9 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial/Celestial.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "Celestial" +OTHER_LDFLAGS = $(inherited) -framework "Celestial" -framework "UIKit" 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 +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.release.xcconfig index 357309e..5873688 100644 --- a/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-Celestial_Tests/Pods-Celestial_Tests.release.xcconfig @@ -1,9 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Celestial/Celestial.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "Celestial" +OTHER_LDFLAGS = $(inherited) -framework "Celestial" -framework "UIKit" 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 +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES