diff --git a/.gitignore b/.gitignore
index b51b71f..6cf3297 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
## Build generated
build/
DerivedData
+/.build/
## Various settings
*.pbxuser
@@ -33,9 +34,6 @@ project.xcworkspace
*.hmap
*.ipa
-# Carthage
-Carthage/Build
-
# Ignore changes to our project.xcconfig that gets overridden by the build system
project.xcconfig
*.coverage.txt
diff --git a/Package.swift b/Package.swift
new file mode 100644
index 0000000..b8846b7
--- /dev/null
+++ b/Package.swift
@@ -0,0 +1,31 @@
+// swift-tools-version:5.7
+import PackageDescription
+
+let package = Package(
+ name: "SPTPersistentCache",
+ platforms: [
+ .iOS(.v13),
+ .macOS(.v10_13),
+ .tvOS(.v13),
+ .watchOS(.v4),
+ ],
+ products: [
+ .library(name: "SPTPersistentCache", targets: ["SPTPersistentCache"]),
+ ],
+ dependencies: [],
+ targets: [
+ .target(
+ name: "SPTPersistentCache",
+ path: "Sources",
+ resources: [.process("Resources/PrivacyInfo.xcprivacy")]
+ ),
+ .testTarget(
+ name: "SPTPersistentCacheTests",
+ dependencies: ["SPTPersistentCache"],
+ path: "Tests",
+ resources: [.process("Resources")],
+ cSettings: [.headerSearchPath("../Sources")]
+ ),
+ ],
+ swiftLanguageVersions: [.v5]
+)
diff --git a/README.md b/README.md
index 75cf123..1f596d5 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,6 @@
[](http://cocoadocs.org/docsets/SPTPersistentCache/)
[](LICENSE)
[](https://cocoapods.org/?q=SPTPersistentCache)
-[](https://github.com/Carthage/Carthage)
[](http://clayallsopp.github.io/readme-score?url=https://github.com/spotify/sptpersistentcache)
Everyone tries to implement a cache at some point in their app’s lifecycle, and this is ours. This is a library that allows people to cache `NSData` with time to live (TTL) values and semantics for disk management.
@@ -39,25 +38,6 @@ Lastly let CocoaPods do its thing by running:
$ pod install
```
-### Carthage
-We support [Carthage](https://github.com/Carthage/Carthage) and provide pre-built binary frameworks for all new releases. Start by making sure you have the latest version of Carthage installed, e.g. using [Homebrew](http://brew.sh/):
-```shell
-$ brew update
-$ brew install carthage
-```
-You will also need to add `SPTPersistentCache` to your `Cartfile`:
-```
-github "spotify/SPTPersistentCache" ~> 1.1.1
-```
-After that is all said and done, let Carthage pull in SPTPersistentCache like so:
-```shell
-$ carthage update
-```
-Next up, you need to add the framework to the Xcode project of your App. Lastly link the framework with your App and copy it to the App’s Frameworks directory under the “Build Phases”.
-
-## Usage example :eyes:
-For an example of this framework's usage, see the demo application `SPTPersistentCacheDemo` in `SPTPersistentCache.xcworkspace`.
-
### Creating the SPTPersistentCache
It is best to use different caches for different types of data you want to store, and not just one big cache for your entire application. However, only create one `SPTPersistentCache` instance for each cache, otherwise you might encounter anomalies when the two different caches end up writing to the same file.
```objc
@@ -139,11 +119,6 @@ At Spotify we began to standardise the way we handled images in a centralised wa
Thus we boiled down what we needed in a cache, the key features being TTL on specific pieces of data, disk management to make sure we don't use too much, and protections against data corruption. It also became very useful to separate different caches into separate files (such as images and mp3s), in order to easily measure how much space each item is taking up.
-## Tools :hammer:
-Having a nice GUI tool to inspect the contents of an `SPTPersistentCache` directory would be nice, so we made one. In this repository we have a project called `SPTPersistentCacheViewer.xcodeproj` which is part of the `SPTPersistentCache.xcworkspace`. When you open it and build it for OS X, you will see a GUI that allows you to inspect the contents of a cache, including individual items TTL and payload size.
-
-
-
## Contributing :mailbox_with_mail:
Contributions are welcomed, have a look at the [CONTRIBUTING.md](CONTRIBUTING.md) document for more information.
diff --git a/SPTPersistentCache.podspec b/SPTPersistentCache.podspec
index 00a15aa..7856d98 100644
--- a/SPTPersistentCache.podspec
+++ b/SPTPersistentCache.podspec
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "SPTPersistentCache"
- s.version = "1.1.1"
+ s.version = "1.2.0"
s.summary = "SPTPersistentCache is a fast, binary, LRU cache used in the Spotify iOS app"
s.description = <<-DESC
@@ -10,8 +10,10 @@ Pod::Spec.new do |s|
with TTL values and semantics for disk management.
DESC
- s.ios.deployment_target = "8.0"
- s.osx.deployment_target = "10.10"
+ s.ios.deployment_target = "13.0"
+ s.tvos.deployment_target = "13.0"
+ s.osx.deployment_target = "10.13"
+ s.watchos.deployment_target = "4.0"
s.homepage = "https://github.com/spotify/SPTPersistentCache"
s.social_media_url = "https://twitter.com/spotifyeng"
@@ -21,11 +23,11 @@ Pod::Spec.new do |s|
}
s.source = { :git => "https://github.com/spotify/SPTPersistentCache.git", :tag => s.version }
- s.source_files = "include/SPTPersistentCache/*.h", "Sources/**/*.{h,m,c}"
- s.public_header_files = "include/SPTPersistentCache/*.h"
+ s.source_files = "Sources/**/*.{h,m,c}"
+ s.public_header_files = "Sources/include/*.{h,m,c}"
s.xcconfig = {
"OTHER_LDFLAGS" => "-lObjC"
}
- s.resource_bundle = { 'SPTPersistentCache_Privacy' => ['Resources/PrivacyInfo.xcprivacy'] }
+ s.resource_bundle = { 'SPTPersistentCache_Privacy' => ['Sources/Resources/PrivacyInfo.xcprivacy'] }
end
diff --git a/SPTPersistentCache.xcodeproj/project.pbxproj b/SPTPersistentCache.xcodeproj/project.pbxproj
deleted file mode 100644
index d60a742..0000000
--- a/SPTPersistentCache.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,575 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 47;
- objects = {
-
-/* Begin PBXBuildFile section */
- 050076AD1C7A2FF7000819B5 /* SPTPersistentCachePosixWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 050076AC1C7A2FF7000819B5 /* SPTPersistentCachePosixWrapper.m */; };
- 0510FF1F1BA2FF7A00ED0766 /* libSPTPersistentCache.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0510FF131BA2FF7A00ED0766 /* libSPTPersistentCache.a */; };
- 0510FF6B1BA3073D00ED0766 /* SPTPersistentCacheTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0510FF6A1BA3073D00ED0766 /* SPTPersistentCacheTests.m */; };
- 057AFD5B1C70F99A00350C9F /* SPTPersistentCacheHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 057AFD5A1C70F99A00350C9F /* SPTPersistentCacheHeader.m */; };
- 0595F0A91C5008060052328B /* SPTPersistentCacheRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 0595F0A81C5008060052328B /* SPTPersistentCacheRecord.m */; };
- 0595F0B01C5009800052328B /* SPTPersistentCacheResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0595F0AF1C5009800052328B /* SPTPersistentCacheResponse.m */; };
- 0595F33A1C50117B0052328B /* SPTPersistentCacheGarbageCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0595F3391C50117B0052328B /* SPTPersistentCacheGarbageCollector.m */; };
- 691DF30E232AF2C500163E0C /* NSFileManagerMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 050076A91C7A2B6D000819B5 /* NSFileManagerMock.m */; };
- 691DF30F232AF2D500163E0C /* SPTPersistentCachePosixWrapperMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 050076AF1C7A3137000819B5 /* SPTPersistentCachePosixWrapperMock.m */; };
- 696CD78A1C4707E20071DD18 /* crc32iso3309.c in Sources */ = {isa = PBXBuildFile; fileRef = 696CD7841C4707E20071DD18 /* crc32iso3309.c */; };
- 696CD78B1C4707E20071DD18 /* SPTPersistentCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 696CD7861C4707E20071DD18 /* SPTPersistentCache.m */; };
- 696CD78C1C4707E20071DD18 /* SPTPersistentCacheOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 696CD7871C4707E20071DD18 /* SPTPersistentCacheOptions.m */; };
- 698B70641C7538B000BDBFEA /* aad0e75ab0a6828d0a9b37a68198cc9d70d84850.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70531C7538B000BDBFEA /* aad0e75ab0a6828d0a9b37a68198cc9d70d84850.dat */; };
- 698B70651C7538B000BDBFEA /* ab3d97d4d7b3df5417490aa726c5a49b9ee98038.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70541C7538B000BDBFEA /* ab3d97d4d7b3df5417490aa726c5a49b9ee98038.dat */; };
- 698B70661C7538B000BDBFEA /* b02c1be08c00bac5f4f1a62c6f353a24487bb024.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70551C7538B000BDBFEA /* b02c1be08c00bac5f4f1a62c6f353a24487bb024.dat */; };
- 698B70671C7538B000BDBFEA /* b3e04bf446b486412a13659af71e3a333c6152f4.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70561C7538B000BDBFEA /* b3e04bf446b486412a13659af71e3a333c6152f4.dat */; };
- 698B70681C7538B000BDBFEA /* b53aed36cdc67dd43b496db74843ac32fe1f64bb.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70571C7538B000BDBFEA /* b53aed36cdc67dd43b496db74843ac32fe1f64bb.dat */; };
- 698B70691C7538B000BDBFEA /* b91998ae68b9639cee6243df0886d69bdeb75854.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70581C7538B000BDBFEA /* b91998ae68b9639cee6243df0886d69bdeb75854.dat */; };
- 698B706A1C7538B000BDBFEA /* c3b19963fc076930dd36ce3968757704bbc97357.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70591C7538B000BDBFEA /* c3b19963fc076930dd36ce3968757704bbc97357.dat */; };
- 698B706B1C7538B000BDBFEA /* c5aec3eef2478bfe47aef16787a6b4df31eb45f2.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B705A1C7538B000BDBFEA /* c5aec3eef2478bfe47aef16787a6b4df31eb45f2.dat */; };
- 698B706C1C7538B000BDBFEA /* e5a1921f8f75d42412e08aff4da33e1132f7ee8a.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B705B1C7538B000BDBFEA /* e5a1921f8f75d42412e08aff4da33e1132f7ee8a.dat */; };
- 698B706D1C7538B000BDBFEA /* e5b8abdc091921d49e86687e28b74abb3139df70.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B705C1C7538B000BDBFEA /* e5b8abdc091921d49e86687e28b74abb3139df70.dat */; };
- 698B706E1C7538B000BDBFEA /* ee678d23b8dba2997c52741e88fa7a1fdeaf2863.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B705D1C7538B000BDBFEA /* ee678d23b8dba2997c52741e88fa7a1fdeaf2863.dat */; };
- 698B706F1C7538B000BDBFEA /* ee6b44ab07fa3937a6d37f449355b64c09677295.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B705E1C7538B000BDBFEA /* ee6b44ab07fa3937a6d37f449355b64c09677295.dat */; };
- 698B70701C7538B000BDBFEA /* eee9747e967c4440eb90bb812d148aa3d0056700.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B705F1C7538B000BDBFEA /* eee9747e967c4440eb90bb812d148aa3d0056700.dat */; };
- 698B70711C7538B000BDBFEA /* f1eeb834607dcc2b01909bd740d4356f2abb4cd1.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70601C7538B000BDBFEA /* f1eeb834607dcc2b01909bd740d4356f2abb4cd1.dat */; };
- 698B70721C7538B000BDBFEA /* f50512901688b79a7852999d384d097a71fad788.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70611C7538B000BDBFEA /* f50512901688b79a7852999d384d097a71fad788.dat */; };
- 698B70731C7538B000BDBFEA /* f7501f27f70162a9a7da196c5d2ece3151a2d80a.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70621C7538B000BDBFEA /* f7501f27f70162a9a7da196c5d2ece3151a2d80a.dat */; };
- 698B70741C7538B000BDBFEA /* fc22d4f65c1ba875f6bb5ba7d35a7fd12851ed5c.dat in Resources */ = {isa = PBXBuildFile; fileRef = 698B70631C7538B000BDBFEA /* fc22d4f65c1ba875f6bb5ba7d35a7fd12851ed5c.dat */; };
- 772B8BF11D6DE879008E7347 /* SPTPersistentCachePerformanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 772B8BF01D6DE879008E7347 /* SPTPersistentCachePerformanceTests.m */; };
- 9C9E70711C78D39900E1CBE6 /* SPTPersistentCacheObjectDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9E70701C78D39900E1CBE6 /* SPTPersistentCacheObjectDescription.m */; };
- 9C9E70731C78D5AA00E1CBE6 /* SPTPersistentCacheObjectDescriptionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9E70721C78D5AA00E1CBE6 /* SPTPersistentCacheObjectDescriptionTests.m */; };
- 9C9E70761C78FD9700E1CBE6 /* SPTPersistentCacheObjectDescriptionStyleValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9E70751C78FD9700E1CBE6 /* SPTPersistentCacheObjectDescriptionStyleValidator.m */; };
- 9C9E70781C790ED900E1CBE6 /* SPTPersistentCacheRecordTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B4148B1C6A01970099FECD /* SPTPersistentCacheRecordTests.m */; };
- C41237081C6A29FB00C1E9B8 /* SPTPersistentCacheGarbageCollectorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C41237071C6A29FB00C1E9B8 /* SPTPersistentCacheGarbageCollectorTests.m */; };
- C413BA011C71CBBA002D41FB /* SPTPersistentCacheHeaderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C413BA001C71CBBA002D41FB /* SPTPersistentCacheHeaderTests.m */; };
- C413BA051C71E1A0002D41FB /* NSError+SPTPersistentCacheDomainErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = C413BA041C71E1A0002D41FB /* NSError+SPTPersistentCacheDomainErrors.m */; };
- C413BA071C71E2DC002D41FB /* NSError+SPTPersistentCacheDomainErrorsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C413BA061C71E2DC002D41FB /* NSError+SPTPersistentCacheDomainErrorsTests.m */; };
- C45526AF1C77D7ED008D5570 /* SPTPersistentCacheTypeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C45526AE1C77D7ED008D5570 /* SPTPersistentCacheTypeUtilities.m */; };
- C48AE4641C74A7F800814D7D /* SPTPersistentCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C48AE4631C74A7F800814D7D /* SPTPersistentCacheFileManager.m */; };
- C48AE7411C75BB8300814D7D /* SPTPersistentCacheFileManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C48AE7401C75BB8300814D7D /* SPTPersistentCacheFileManagerTests.m */; };
- C4B4148F1C6A1BED0099FECD /* SPTPersistentCacheResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B4148E1C6A1BED0099FECD /* SPTPersistentCacheResponseTests.m */; };
- C4B414911C6A24A10099FECD /* SPTPersistentCacheOptionsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B414901C6A24A10099FECD /* SPTPersistentCacheOptionsTests.m */; };
- C4B98D1B1C7B5CB900E1B9A3 /* SPTPersistentCacheDebugUtilitiesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B98D1A1C7B5CB900E1B9A3 /* SPTPersistentCacheDebugUtilitiesTests.m */; };
- C4EA65031C7A478100A6091A /* SPTPersistentCacheDebugUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C4EA65021C7A478100A6091A /* SPTPersistentCacheDebugUtilities.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 0510FF201BA2FF7A00ED0766 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0510FF0B1BA2FF7A00ED0766 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 0510FF121BA2FF7A00ED0766;
- remoteInfo = SPTPersistentCache;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 050076A81C7A2B6D000819B5 /* NSFileManagerMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSFileManagerMock.h; sourceTree = ""; };
- 050076A91C7A2B6D000819B5 /* NSFileManagerMock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSFileManagerMock.m; sourceTree = ""; };
- 050076AB1C7A2FF7000819B5 /* SPTPersistentCachePosixWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCachePosixWrapper.h; sourceTree = ""; };
- 050076AC1C7A2FF7000819B5 /* SPTPersistentCachePosixWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCachePosixWrapper.m; sourceTree = ""; };
- 050076AE1C7A3137000819B5 /* SPTPersistentCachePosixWrapperMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCachePosixWrapperMock.h; sourceTree = ""; };
- 050076AF1C7A3137000819B5 /* SPTPersistentCachePosixWrapperMock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCachePosixWrapperMock.m; sourceTree = ""; };
- 0510FF131BA2FF7A00ED0766 /* libSPTPersistentCache.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSPTPersistentCache.a; sourceTree = BUILT_PRODUCTS_DIR; };
- 0510FF1E1BA2FF7A00ED0766 /* SPTPersistentCacheTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SPTPersistentCacheTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- 0510FF241BA2FF7A00ED0766 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 0510FF6A1BA3073D00ED0766 /* SPTPersistentCacheTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheTests.m; sourceTree = ""; };
- 055725EB1C6519B700EF6787 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
- 055725ED1C651ED600EF6787 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; };
- 055725EE1C651EF200EF6787 /* CONTRIBUTING.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = ""; };
- 057AF8531C6E18AC00350C9F /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
- 057AFD5A1C70F99A00350C9F /* SPTPersistentCacheHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheHeader.m; sourceTree = ""; };
- 0595F0A81C5008060052328B /* SPTPersistentCacheRecord.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheRecord.m; sourceTree = ""; };
- 0595F0AA1C50081C0052328B /* SPTPersistentCacheRecord.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheRecord.h; sourceTree = ""; };
- 0595F0AB1C5008AB0052328B /* SPTPersistentCacheRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SPTPersistentCacheRecord+Private.h"; sourceTree = ""; };
- 0595F0AF1C5009800052328B /* SPTPersistentCacheResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheResponse.m; sourceTree = ""; };
- 0595F0B11C5009920052328B /* SPTPersistentCacheResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheResponse.h; sourceTree = ""; };
- 0595F0B21C500A540052328B /* SPTPersistentCacheResponse+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SPTPersistentCacheResponse+Private.h"; sourceTree = ""; };
- 0595F3381C50117B0052328B /* SPTPersistentCacheGarbageCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheGarbageCollector.h; sourceTree = ""; };
- 0595F3391C50117B0052328B /* SPTPersistentCacheGarbageCollector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheGarbageCollector.m; sourceTree = ""; };
- 0595F33B1C5011E30052328B /* SPTPersistentCache+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SPTPersistentCache+Private.h"; sourceTree = ""; };
- 05C0B6531DDF7F9C00DDC99A /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; };
- 693521E02224C61D0098F8E3 /* SPTPersistentCacheImplementation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheImplementation.h; sourceTree = ""; };
- 693521E12224C6240098F8E3 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; };
- 696CD7841C4707E20071DD18 /* crc32iso3309.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = crc32iso3309.c; sourceTree = ""; };
- 696CD7851C4707E20071DD18 /* crc32iso3309.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc32iso3309.h; sourceTree = ""; };
- 696CD7861C4707E20071DD18 /* SPTPersistentCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCache.m; sourceTree = ""; };
- 696CD7871C4707E20071DD18 /* SPTPersistentCacheOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = SPTPersistentCacheOptions.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
- 696CD7911C4707EA0071DD18 /* SPTPersistentCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = SPTPersistentCache.h; sourceTree = ""; };
- 696CD7931C4707EA0071DD18 /* SPTPersistentCacheOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = SPTPersistentCacheOptions.h; sourceTree = ""; };
- 696CD7941C4707EA0071DD18 /* SPTPersistentCacheHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheHeader.h; sourceTree = ""; };
- 698B70531C7538B000BDBFEA /* aad0e75ab0a6828d0a9b37a68198cc9d70d84850.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = aad0e75ab0a6828d0a9b37a68198cc9d70d84850.dat; sourceTree = ""; };
- 698B70541C7538B000BDBFEA /* ab3d97d4d7b3df5417490aa726c5a49b9ee98038.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = ab3d97d4d7b3df5417490aa726c5a49b9ee98038.dat; sourceTree = ""; };
- 698B70551C7538B000BDBFEA /* b02c1be08c00bac5f4f1a62c6f353a24487bb024.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = b02c1be08c00bac5f4f1a62c6f353a24487bb024.dat; sourceTree = ""; };
- 698B70561C7538B000BDBFEA /* b3e04bf446b486412a13659af71e3a333c6152f4.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = b3e04bf446b486412a13659af71e3a333c6152f4.dat; sourceTree = ""; };
- 698B70571C7538B000BDBFEA /* b53aed36cdc67dd43b496db74843ac32fe1f64bb.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = b53aed36cdc67dd43b496db74843ac32fe1f64bb.dat; sourceTree = ""; };
- 698B70581C7538B000BDBFEA /* b91998ae68b9639cee6243df0886d69bdeb75854.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = b91998ae68b9639cee6243df0886d69bdeb75854.dat; sourceTree = ""; };
- 698B70591C7538B000BDBFEA /* c3b19963fc076930dd36ce3968757704bbc97357.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = c3b19963fc076930dd36ce3968757704bbc97357.dat; sourceTree = ""; };
- 698B705A1C7538B000BDBFEA /* c5aec3eef2478bfe47aef16787a6b4df31eb45f2.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = c5aec3eef2478bfe47aef16787a6b4df31eb45f2.dat; sourceTree = ""; };
- 698B705B1C7538B000BDBFEA /* e5a1921f8f75d42412e08aff4da33e1132f7ee8a.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = e5a1921f8f75d42412e08aff4da33e1132f7ee8a.dat; sourceTree = ""; };
- 698B705C1C7538B000BDBFEA /* e5b8abdc091921d49e86687e28b74abb3139df70.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = e5b8abdc091921d49e86687e28b74abb3139df70.dat; sourceTree = ""; };
- 698B705D1C7538B000BDBFEA /* ee678d23b8dba2997c52741e88fa7a1fdeaf2863.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = ee678d23b8dba2997c52741e88fa7a1fdeaf2863.dat; sourceTree = ""; };
- 698B705E1C7538B000BDBFEA /* ee6b44ab07fa3937a6d37f449355b64c09677295.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = ee6b44ab07fa3937a6d37f449355b64c09677295.dat; sourceTree = ""; };
- 698B705F1C7538B000BDBFEA /* eee9747e967c4440eb90bb812d148aa3d0056700.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = eee9747e967c4440eb90bb812d148aa3d0056700.dat; sourceTree = ""; };
- 698B70601C7538B000BDBFEA /* f1eeb834607dcc2b01909bd740d4356f2abb4cd1.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = f1eeb834607dcc2b01909bd740d4356f2abb4cd1.dat; sourceTree = ""; };
- 698B70611C7538B000BDBFEA /* f50512901688b79a7852999d384d097a71fad788.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = f50512901688b79a7852999d384d097a71fad788.dat; sourceTree = ""; };
- 698B70621C7538B000BDBFEA /* f7501f27f70162a9a7da196c5d2ece3151a2d80a.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = f7501f27f70162a9a7da196c5d2ece3151a2d80a.dat; sourceTree = ""; };
- 698B70631C7538B000BDBFEA /* fc22d4f65c1ba875f6bb5ba7d35a7fd12851ed5c.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = fc22d4f65c1ba875f6bb5ba7d35a7fd12851ed5c.dat; sourceTree = ""; };
- 772B8BF01D6DE879008E7347 /* SPTPersistentCachePerformanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCachePerformanceTests.m; sourceTree = ""; };
- 9C882A801C65422700D463BB /* project.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = project.xcconfig; sourceTree = ""; };
- 9C882A811C65422700D463BB /* spotify_os.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = spotify_os.xcconfig; path = ci/spotify_os.xcconfig; sourceTree = ""; };
- 9C96612C1CC0FC7B00E6F04D /* SPTPersistentCacheFileManager+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SPTPersistentCacheFileManager+Private.h"; sourceTree = ""; };
- 9C9E706F1C78D39900E1CBE6 /* SPTPersistentCacheObjectDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheObjectDescription.h; sourceTree = ""; };
- 9C9E70701C78D39900E1CBE6 /* SPTPersistentCacheObjectDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheObjectDescription.m; sourceTree = ""; };
- 9C9E70721C78D5AA00E1CBE6 /* SPTPersistentCacheObjectDescriptionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheObjectDescriptionTests.m; sourceTree = ""; };
- 9C9E70741C78FD9700E1CBE6 /* SPTPersistentCacheObjectDescriptionStyleValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheObjectDescriptionStyleValidator.h; sourceTree = ""; };
- 9C9E70751C78FD9700E1CBE6 /* SPTPersistentCacheObjectDescriptionStyleValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheObjectDescriptionStyleValidator.m; sourceTree = ""; };
- C41237071C6A29FB00C1E9B8 /* SPTPersistentCacheGarbageCollectorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheGarbageCollectorTests.m; sourceTree = ""; };
- C413BA001C71CBBA002D41FB /* SPTPersistentCacheHeaderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheHeaderTests.m; sourceTree = ""; };
- C413BA031C71E1A0002D41FB /* NSError+SPTPersistentCacheDomainErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+SPTPersistentCacheDomainErrors.h"; sourceTree = ""; };
- C413BA041C71E1A0002D41FB /* NSError+SPTPersistentCacheDomainErrors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+SPTPersistentCacheDomainErrors.m"; sourceTree = ""; };
- C413BA061C71E2DC002D41FB /* NSError+SPTPersistentCacheDomainErrorsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+SPTPersistentCacheDomainErrorsTests.m"; sourceTree = ""; };
- C45526AD1C77D7ED008D5570 /* SPTPersistentCacheTypeUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheTypeUtilities.h; sourceTree = ""; };
- C45526AE1C77D7ED008D5570 /* SPTPersistentCacheTypeUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheTypeUtilities.m; sourceTree = ""; };
- C48AE4621C74A7F800814D7D /* SPTPersistentCacheFileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheFileManager.h; sourceTree = ""; };
- C48AE4631C74A7F800814D7D /* SPTPersistentCacheFileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheFileManager.m; sourceTree = ""; };
- C48AE7401C75BB8300814D7D /* SPTPersistentCacheFileManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheFileManagerTests.m; sourceTree = ""; };
- C4B4148B1C6A01970099FECD /* SPTPersistentCacheRecordTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheRecordTests.m; sourceTree = ""; };
- C4B4148E1C6A1BED0099FECD /* SPTPersistentCacheResponseTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheResponseTests.m; sourceTree = ""; };
- C4B414901C6A24A10099FECD /* SPTPersistentCacheOptionsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheOptionsTests.m; sourceTree = ""; };
- C4B98D1A1C7B5CB900E1B9A3 /* SPTPersistentCacheDebugUtilitiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheDebugUtilitiesTests.m; sourceTree = ""; };
- C4EA65011C7A478100A6091A /* SPTPersistentCacheDebugUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheDebugUtilities.h; sourceTree = ""; };
- C4EA65021C7A478100A6091A /* SPTPersistentCacheDebugUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheDebugUtilities.m; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 0510FF1B1BA2FF7A00ED0766 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 0510FF1F1BA2FF7A00ED0766 /* libSPTPersistentCache.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 050076A71C7A2B57000819B5 /* Mocks */ = {
- isa = PBXGroup;
- children = (
- 050076A81C7A2B6D000819B5 /* NSFileManagerMock.h */,
- 050076A91C7A2B6D000819B5 /* NSFileManagerMock.m */,
- 050076AE1C7A3137000819B5 /* SPTPersistentCachePosixWrapperMock.h */,
- 050076AF1C7A3137000819B5 /* SPTPersistentCachePosixWrapperMock.m */,
- );
- name = Mocks;
- sourceTree = "";
- };
- 0510FF0A1BA2FF7A00ED0766 = {
- isa = PBXGroup;
- children = (
- 696CD78E1C4707EA0071DD18 /* API */,
- 696CD7831C4707E20071DD18 /* Sources */,
- 0510FF221BA2FF7A00ED0766 /* Tests */,
- 0510FF141BA2FF7A00ED0766 /* Products */,
- 055725EA1C65199E00EF6787 /* Supporting Files */,
- 0510FF6C1BA3076300ED0766 /* Build System */,
- );
- sourceTree = "";
- };
- 0510FF141BA2FF7A00ED0766 /* Products */ = {
- isa = PBXGroup;
- children = (
- 0510FF131BA2FF7A00ED0766 /* libSPTPersistentCache.a */,
- 0510FF1E1BA2FF7A00ED0766 /* SPTPersistentCacheTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- 0510FF221BA2FF7A00ED0766 /* Tests */ = {
- isa = PBXGroup;
- children = (
- 050076A71C7A2B57000819B5 /* Mocks */,
- 698B70521C7538B000BDBFEA /* Resources */,
- 0510FF231BA2FF7A00ED0766 /* Supporting Files */,
- C413BA061C71E2DC002D41FB /* NSError+SPTPersistentCacheDomainErrorsTests.m */,
- C4B98D1A1C7B5CB900E1B9A3 /* SPTPersistentCacheDebugUtilitiesTests.m */,
- C48AE7401C75BB8300814D7D /* SPTPersistentCacheFileManagerTests.m */,
- C41237071C6A29FB00C1E9B8 /* SPTPersistentCacheGarbageCollectorTests.m */,
- C413BA001C71CBBA002D41FB /* SPTPersistentCacheHeaderTests.m */,
- 9C9E70741C78FD9700E1CBE6 /* SPTPersistentCacheObjectDescriptionStyleValidator.h */,
- 9C9E70751C78FD9700E1CBE6 /* SPTPersistentCacheObjectDescriptionStyleValidator.m */,
- 9C9E70721C78D5AA00E1CBE6 /* SPTPersistentCacheObjectDescriptionTests.m */,
- C4B414901C6A24A10099FECD /* SPTPersistentCacheOptionsTests.m */,
- 772B8BF01D6DE879008E7347 /* SPTPersistentCachePerformanceTests.m */,
- C4B4148B1C6A01970099FECD /* SPTPersistentCacheRecordTests.m */,
- C4B4148E1C6A1BED0099FECD /* SPTPersistentCacheResponseTests.m */,
- 0510FF6A1BA3073D00ED0766 /* SPTPersistentCacheTests.m */,
- );
- path = Tests;
- sourceTree = "";
- };
- 0510FF231BA2FF7A00ED0766 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 0510FF241BA2FF7A00ED0766 /* Info.plist */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 0510FF6C1BA3076300ED0766 /* Build System */ = {
- isa = PBXGroup;
- children = (
- 9C882A801C65422700D463BB /* project.xcconfig */,
- 9C882A811C65422700D463BB /* spotify_os.xcconfig */,
- 057AF8531C6E18AC00350C9F /* AppKit.framework */,
- );
- name = "Build System";
- sourceTree = "";
- };
- 055725EA1C65199E00EF6787 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 055725EE1C651EF200EF6787 /* CONTRIBUTING.md */,
- 055725ED1C651ED600EF6787 /* LICENSE */,
- 055725EB1C6519B700EF6787 /* README.md */,
- 05C0B6531DDF7F9C00DDC99A /* CHANGELOG.md */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 696CD7831C4707E20071DD18 /* Sources */ = {
- isa = PBXGroup;
- children = (
- C413BA031C71E1A0002D41FB /* NSError+SPTPersistentCacheDomainErrors.h */,
- C413BA041C71E1A0002D41FB /* NSError+SPTPersistentCacheDomainErrors.m */,
- 696CD7841C4707E20071DD18 /* crc32iso3309.c */,
- 696CD7851C4707E20071DD18 /* crc32iso3309.h */,
- 696CD7861C4707E20071DD18 /* SPTPersistentCache.m */,
- 0595F33B1C5011E30052328B /* SPTPersistentCache+Private.h */,
- 9C9E706F1C78D39900E1CBE6 /* SPTPersistentCacheObjectDescription.h */,
- 9C9E70701C78D39900E1CBE6 /* SPTPersistentCacheObjectDescription.m */,
- 696CD7871C4707E20071DD18 /* SPTPersistentCacheOptions.m */,
- 0595F0A81C5008060052328B /* SPTPersistentCacheRecord.m */,
- 0595F0AB1C5008AB0052328B /* SPTPersistentCacheRecord+Private.h */,
- 0595F0AF1C5009800052328B /* SPTPersistentCacheResponse.m */,
- 0595F3381C50117B0052328B /* SPTPersistentCacheGarbageCollector.h */,
- 0595F3391C50117B0052328B /* SPTPersistentCacheGarbageCollector.m */,
- 057AFD5A1C70F99A00350C9F /* SPTPersistentCacheHeader.m */,
- 9C96612C1CC0FC7B00E6F04D /* SPTPersistentCacheFileManager+Private.h */,
- C48AE4621C74A7F800814D7D /* SPTPersistentCacheFileManager.h */,
- C48AE4631C74A7F800814D7D /* SPTPersistentCacheFileManager.m */,
- 0595F0B21C500A540052328B /* SPTPersistentCacheResponse+Private.h */,
- C45526AD1C77D7ED008D5570 /* SPTPersistentCacheTypeUtilities.h */,
- C45526AE1C77D7ED008D5570 /* SPTPersistentCacheTypeUtilities.m */,
- C4EA65011C7A478100A6091A /* SPTPersistentCacheDebugUtilities.h */,
- C4EA65021C7A478100A6091A /* SPTPersistentCacheDebugUtilities.m */,
- 050076AB1C7A2FF7000819B5 /* SPTPersistentCachePosixWrapper.h */,
- 050076AC1C7A2FF7000819B5 /* SPTPersistentCachePosixWrapper.m */,
- );
- path = Sources;
- sourceTree = "";
- };
- 696CD78E1C4707EA0071DD18 /* API */ = {
- isa = PBXGroup;
- children = (
- 693521E12224C6240098F8E3 /* module.modulemap */,
- 696CD7911C4707EA0071DD18 /* SPTPersistentCache.h */,
- 696CD7931C4707EA0071DD18 /* SPTPersistentCacheOptions.h */,
- 696CD7941C4707EA0071DD18 /* SPTPersistentCacheHeader.h */,
- 0595F0AA1C50081C0052328B /* SPTPersistentCacheRecord.h */,
- 0595F0B11C5009920052328B /* SPTPersistentCacheResponse.h */,
- 693521E02224C61D0098F8E3 /* SPTPersistentCacheImplementation.h */,
- );
- name = API;
- path = include/SPTPersistentCache;
- sourceTree = "";
- };
- 698B70521C7538B000BDBFEA /* Resources */ = {
- isa = PBXGroup;
- children = (
- 698B70531C7538B000BDBFEA /* aad0e75ab0a6828d0a9b37a68198cc9d70d84850.dat */,
- 698B70541C7538B000BDBFEA /* ab3d97d4d7b3df5417490aa726c5a49b9ee98038.dat */,
- 698B70551C7538B000BDBFEA /* b02c1be08c00bac5f4f1a62c6f353a24487bb024.dat */,
- 698B70561C7538B000BDBFEA /* b3e04bf446b486412a13659af71e3a333c6152f4.dat */,
- 698B70571C7538B000BDBFEA /* b53aed36cdc67dd43b496db74843ac32fe1f64bb.dat */,
- 698B70581C7538B000BDBFEA /* b91998ae68b9639cee6243df0886d69bdeb75854.dat */,
- 698B70591C7538B000BDBFEA /* c3b19963fc076930dd36ce3968757704bbc97357.dat */,
- 698B705A1C7538B000BDBFEA /* c5aec3eef2478bfe47aef16787a6b4df31eb45f2.dat */,
- 698B705B1C7538B000BDBFEA /* e5a1921f8f75d42412e08aff4da33e1132f7ee8a.dat */,
- 698B705C1C7538B000BDBFEA /* e5b8abdc091921d49e86687e28b74abb3139df70.dat */,
- 698B705D1C7538B000BDBFEA /* ee678d23b8dba2997c52741e88fa7a1fdeaf2863.dat */,
- 698B705E1C7538B000BDBFEA /* ee6b44ab07fa3937a6d37f449355b64c09677295.dat */,
- 698B705F1C7538B000BDBFEA /* eee9747e967c4440eb90bb812d148aa3d0056700.dat */,
- 698B70601C7538B000BDBFEA /* f1eeb834607dcc2b01909bd740d4356f2abb4cd1.dat */,
- 698B70611C7538B000BDBFEA /* f50512901688b79a7852999d384d097a71fad788.dat */,
- 698B70621C7538B000BDBFEA /* f7501f27f70162a9a7da196c5d2ece3151a2d80a.dat */,
- 698B70631C7538B000BDBFEA /* fc22d4f65c1ba875f6bb5ba7d35a7fd12851ed5c.dat */,
- );
- path = Resources;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 0510FF121BA2FF7A00ED0766 /* SPTPersistentCache */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 0510FF271BA2FF7A00ED0766 /* Build configuration list for PBXNativeTarget "SPTPersistentCache" */;
- buildPhases = (
- 0510FF0F1BA2FF7A00ED0766 /* Sources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = SPTPersistentCache;
- productName = SPTPersistentCache;
- productReference = 0510FF131BA2FF7A00ED0766 /* libSPTPersistentCache.a */;
- productType = "com.apple.product-type.library.static";
- };
- 0510FF1D1BA2FF7A00ED0766 /* SPTPersistentCacheTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 0510FF2A1BA2FF7A00ED0766 /* Build configuration list for PBXNativeTarget "SPTPersistentCacheTests" */;
- buildPhases = (
- 0510FF1A1BA2FF7A00ED0766 /* Sources */,
- 0510FF1B1BA2FF7A00ED0766 /* Frameworks */,
- 0510FF1C1BA2FF7A00ED0766 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- 0510FF211BA2FF7A00ED0766 /* PBXTargetDependency */,
- );
- name = SPTPersistentCacheTests;
- productName = SPTPersistentCacheTests;
- productReference = 0510FF1E1BA2FF7A00ED0766 /* SPTPersistentCacheTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 0510FF0B1BA2FF7A00ED0766 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- CLASSPREFIX = SPTPersistentCache;
- LastUpgradeCheck = 1300;
- ORGANIZATIONNAME = Spotify;
- TargetAttributes = {
- 0510FF121BA2FF7A00ED0766 = {
- CreatedOnToolsVersion = 6.4;
- };
- 0510FF1D1BA2FF7A00ED0766 = {
- CreatedOnToolsVersion = 6.4;
- };
- };
- };
- buildConfigurationList = 0510FF0E1BA2FF7A00ED0766 /* Build configuration list for PBXProject "SPTPersistentCache" */;
- compatibilityVersion = "Xcode 6.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 0510FF0A1BA2FF7A00ED0766;
- productRefGroup = 0510FF141BA2FF7A00ED0766 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 0510FF121BA2FF7A00ED0766 /* SPTPersistentCache */,
- 0510FF1D1BA2FF7A00ED0766 /* SPTPersistentCacheTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 0510FF1C1BA2FF7A00ED0766 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 698B70721C7538B000BDBFEA /* f50512901688b79a7852999d384d097a71fad788.dat in Resources */,
- 698B70671C7538B000BDBFEA /* b3e04bf446b486412a13659af71e3a333c6152f4.dat in Resources */,
- 698B70711C7538B000BDBFEA /* f1eeb834607dcc2b01909bd740d4356f2abb4cd1.dat in Resources */,
- 698B70691C7538B000BDBFEA /* b91998ae68b9639cee6243df0886d69bdeb75854.dat in Resources */,
- 698B70641C7538B000BDBFEA /* aad0e75ab0a6828d0a9b37a68198cc9d70d84850.dat in Resources */,
- 698B706A1C7538B000BDBFEA /* c3b19963fc076930dd36ce3968757704bbc97357.dat in Resources */,
- 698B706D1C7538B000BDBFEA /* e5b8abdc091921d49e86687e28b74abb3139df70.dat in Resources */,
- 698B706C1C7538B000BDBFEA /* e5a1921f8f75d42412e08aff4da33e1132f7ee8a.dat in Resources */,
- 698B70701C7538B000BDBFEA /* eee9747e967c4440eb90bb812d148aa3d0056700.dat in Resources */,
- 698B70651C7538B000BDBFEA /* ab3d97d4d7b3df5417490aa726c5a49b9ee98038.dat in Resources */,
- 698B706E1C7538B000BDBFEA /* ee678d23b8dba2997c52741e88fa7a1fdeaf2863.dat in Resources */,
- 698B70731C7538B000BDBFEA /* f7501f27f70162a9a7da196c5d2ece3151a2d80a.dat in Resources */,
- 698B706B1C7538B000BDBFEA /* c5aec3eef2478bfe47aef16787a6b4df31eb45f2.dat in Resources */,
- 698B70681C7538B000BDBFEA /* b53aed36cdc67dd43b496db74843ac32fe1f64bb.dat in Resources */,
- 698B70661C7538B000BDBFEA /* b02c1be08c00bac5f4f1a62c6f353a24487bb024.dat in Resources */,
- 698B70741C7538B000BDBFEA /* fc22d4f65c1ba875f6bb5ba7d35a7fd12851ed5c.dat in Resources */,
- 698B706F1C7538B000BDBFEA /* ee6b44ab07fa3937a6d37f449355b64c09677295.dat in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 0510FF0F1BA2FF7A00ED0766 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- C4EA65031C7A478100A6091A /* SPTPersistentCacheDebugUtilities.m in Sources */,
- C413BA051C71E1A0002D41FB /* NSError+SPTPersistentCacheDomainErrors.m in Sources */,
- C48AE4641C74A7F800814D7D /* SPTPersistentCacheFileManager.m in Sources */,
- 0595F33A1C50117B0052328B /* SPTPersistentCacheGarbageCollector.m in Sources */,
- 9C9E70711C78D39900E1CBE6 /* SPTPersistentCacheObjectDescription.m in Sources */,
- 0595F0A91C5008060052328B /* SPTPersistentCacheRecord.m in Sources */,
- 057AFD5B1C70F99A00350C9F /* SPTPersistentCacheHeader.m in Sources */,
- 696CD78A1C4707E20071DD18 /* crc32iso3309.c in Sources */,
- C45526AF1C77D7ED008D5570 /* SPTPersistentCacheTypeUtilities.m in Sources */,
- 696CD78B1C4707E20071DD18 /* SPTPersistentCache.m in Sources */,
- 0595F0B01C5009800052328B /* SPTPersistentCacheResponse.m in Sources */,
- 050076AD1C7A2FF7000819B5 /* SPTPersistentCachePosixWrapper.m in Sources */,
- 696CD78C1C4707E20071DD18 /* SPTPersistentCacheOptions.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 0510FF1A1BA2FF7A00ED0766 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 9C9E70781C790ED900E1CBE6 /* SPTPersistentCacheRecordTests.m in Sources */,
- C4B98D1B1C7B5CB900E1B9A3 /* SPTPersistentCacheDebugUtilitiesTests.m in Sources */,
- C4B414911C6A24A10099FECD /* SPTPersistentCacheOptionsTests.m in Sources */,
- 0510FF6B1BA3073D00ED0766 /* SPTPersistentCacheTests.m in Sources */,
- C413BA011C71CBBA002D41FB /* SPTPersistentCacheHeaderTests.m in Sources */,
- 9C9E70761C78FD9700E1CBE6 /* SPTPersistentCacheObjectDescriptionStyleValidator.m in Sources */,
- C41237081C6A29FB00C1E9B8 /* SPTPersistentCacheGarbageCollectorTests.m in Sources */,
- C413BA071C71E2DC002D41FB /* NSError+SPTPersistentCacheDomainErrorsTests.m in Sources */,
- 691DF30E232AF2C500163E0C /* NSFileManagerMock.m in Sources */,
- 772B8BF11D6DE879008E7347 /* SPTPersistentCachePerformanceTests.m in Sources */,
- C4B4148F1C6A1BED0099FECD /* SPTPersistentCacheResponseTests.m in Sources */,
- 691DF30F232AF2D500163E0C /* SPTPersistentCachePosixWrapperMock.m in Sources */,
- C48AE7411C75BB8300814D7D /* SPTPersistentCacheFileManagerTests.m in Sources */,
- 9C9E70731C78D5AA00E1CBE6 /* SPTPersistentCacheObjectDescriptionTests.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 0510FF211BA2FF7A00ED0766 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 0510FF121BA2FF7A00ED0766 /* SPTPersistentCache */;
- targetProxy = 0510FF201BA2FF7A00ED0766 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
- 0510FF251BA2FF7A00ED0766 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9C882A801C65422700D463BB /* project.xcconfig */;
- buildSettings = {
- HEADER_SEARCH_PATHS = (
- include,
- "$(inherited)",
- );
- ONLY_ACTIVE_ARCH = YES;
- };
- name = Debug;
- };
- 0510FF261BA2FF7A00ED0766 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9C882A801C65422700D463BB /* project.xcconfig */;
- buildSettings = {
- HEADER_SEARCH_PATHS = (
- include,
- "$(inherited)",
- );
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- 0510FF281BA2FF7A00ED0766 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Debug;
- };
- 0510FF291BA2FF7A00ED0766 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Release;
- };
- 0510FF2B1BA2FF7A00ED0766 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- INFOPLIST_FILE = Tests/Info.plist;
- OTHER_LDFLAGS = (
- "-ObjC",
- "-framework",
- UIKit,
- );
- "OTHER_LDFLAGS[sdk=macosx*]" = (
- "-ObjC",
- "-framework",
- AppKit,
- );
- PRODUCT_BUNDLE_IDENTIFIER = "com.spotify.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Debug;
- };
- 0510FF2C1BA2FF7A00ED0766 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- INFOPLIST_FILE = Tests/Info.plist;
- OTHER_LDFLAGS = (
- "-ObjC",
- "-framework",
- UIKit,
- );
- "OTHER_LDFLAGS[sdk=macosx*]" = (
- "-ObjC",
- "-framework",
- AppKit,
- );
- PRODUCT_BUNDLE_IDENTIFIER = "com.spotify.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 0510FF0E1BA2FF7A00ED0766 /* Build configuration list for PBXProject "SPTPersistentCache" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 0510FF251BA2FF7A00ED0766 /* Debug */,
- 0510FF261BA2FF7A00ED0766 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 0510FF271BA2FF7A00ED0766 /* Build configuration list for PBXNativeTarget "SPTPersistentCache" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 0510FF281BA2FF7A00ED0766 /* Debug */,
- 0510FF291BA2FF7A00ED0766 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 0510FF2A1BA2FF7A00ED0766 /* Build configuration list for PBXNativeTarget "SPTPersistentCacheTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 0510FF2B1BA2FF7A00ED0766 /* Debug */,
- 0510FF2C1BA2FF7A00ED0766 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 0510FF0B1BA2FF7A00ED0766 /* Project object */;
-}
diff --git a/SPTPersistentCache.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache.xcscheme b/SPTPersistentCache.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache.xcscheme
deleted file mode 100644
index 3a4d86a..0000000
--- a/SPTPersistentCache.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache.xcscheme
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SPTPersistentCache.xcworkspace/contents.xcworkspacedata b/SPTPersistentCache.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 2ee6852..0000000
--- a/SPTPersistentCache.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SPTPersistentCache.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SPTPersistentCache.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/SPTPersistentCache.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo.xcodeproj/project.pbxproj b/SPTPersistentCacheDemo/SPTPersistentCacheDemo.xcodeproj/project.pbxproj
deleted file mode 100644
index 9b60f18..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,324 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 47;
- objects = {
-
-/* Begin PBXBuildFile section */
- 055725FF1C65280000EF6787 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 055725FE1C65280000EF6787 /* main.m */; };
- 055726021C65280000EF6787 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 055726011C65280000EF6787 /* AppDelegate.m */; };
- 055726051C65280000EF6787 /* MasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 055726041C65280000EF6787 /* MasterViewController.m */; };
- 055726081C65280000EF6787 /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 055726071C65280000EF6787 /* DetailViewController.m */; };
- 0557260B1C65280000EF6787 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 055726091C65280000EF6787 /* Main.storyboard */; };
- 0557260D1C65280000EF6787 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0557260C1C65280000EF6787 /* Assets.xcassets */; };
- 055726101C65280000EF6787 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0557260E1C65280000EF6787 /* LaunchScreen.storyboard */; };
- C48AE7AF1C76159000814D7D /* libSPTPersistentCache.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C48AE7AE1C76159000814D7D /* libSPTPersistentCache.a */; };
- DD1D23C41C779D4000D0477A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD1D23C31C779D4000D0477A /* UIKit.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- C48AE7B51C7615E900814D7D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 055726181C65283200EF6787 /* SPTPersistentCache.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 0510FF131BA2FF7A00ED0766;
- remoteInfo = SPTPersistentCache;
- };
- C48AE7B71C7615E900814D7D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 055726181C65283200EF6787 /* SPTPersistentCache.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 0510FF1E1BA2FF7A00ED0766;
- remoteInfo = SPTPersistentCacheTests;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 055725FA1C65280000EF6787 /* SPTPersistentCacheDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SPTPersistentCacheDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 055725FE1C65280000EF6787 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- 055726001C65280000EF6787 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- 055726011C65280000EF6787 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- 055726031C65280000EF6787 /* MasterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MasterViewController.h; sourceTree = ""; };
- 055726041C65280000EF6787 /* MasterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MasterViewController.m; sourceTree = ""; };
- 055726061C65280000EF6787 /* DetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DetailViewController.h; sourceTree = ""; };
- 055726071C65280000EF6787 /* DetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DetailViewController.m; sourceTree = ""; };
- 0557260A1C65280000EF6787 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
- 0557260C1C65280000EF6787 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 0557260F1C65280000EF6787 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
- 055726111C65280000EF6787 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 055726181C65283200EF6787 /* SPTPersistentCache.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SPTPersistentCache.xcodeproj; path = ../SPTPersistentCache.xcodeproj; sourceTree = ""; };
- C48AE7AE1C76159000814D7D /* libSPTPersistentCache.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSPTPersistentCache.a; path = "/Library/Developer/Xcode/DerivedData/SPTPersistentCache-baozpsdxvsedctakhrddpkmkyjzd/Build/Products/Debug/libSPTPersistentCache.a"; sourceTree = ""; };
- DD1D23C21C779BAE00D0477A /* project.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = project.xcconfig; path = ../project.xcconfig; sourceTree = ""; };
- DD1D23C31C779D4000D0477A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 055725F71C65280000EF6787 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- DD1D23C41C779D4000D0477A /* UIKit.framework in Frameworks */,
- C48AE7AF1C76159000814D7D /* libSPTPersistentCache.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 055725F11C65280000EF6787 = {
- isa = PBXGroup;
- children = (
- 055725FC1C65280000EF6787 /* SPTPersistentCacheDemo */,
- 055725FB1C65280000EF6787 /* Products */,
- 055726171C65282100EF6787 /* Build System */,
- );
- sourceTree = "";
- };
- 055725FB1C65280000EF6787 /* Products */ = {
- isa = PBXGroup;
- children = (
- 055725FA1C65280000EF6787 /* SPTPersistentCacheDemo.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 055725FC1C65280000EF6787 /* SPTPersistentCacheDemo */ = {
- isa = PBXGroup;
- children = (
- 055726001C65280000EF6787 /* AppDelegate.h */,
- 055726011C65280000EF6787 /* AppDelegate.m */,
- 055726031C65280000EF6787 /* MasterViewController.h */,
- 055726041C65280000EF6787 /* MasterViewController.m */,
- 055726061C65280000EF6787 /* DetailViewController.h */,
- 055726071C65280000EF6787 /* DetailViewController.m */,
- 055726091C65280000EF6787 /* Main.storyboard */,
- 0557260C1C65280000EF6787 /* Assets.xcassets */,
- 0557260E1C65280000EF6787 /* LaunchScreen.storyboard */,
- 055726111C65280000EF6787 /* Info.plist */,
- 055725FD1C65280000EF6787 /* Supporting Files */,
- );
- path = SPTPersistentCacheDemo;
- sourceTree = "";
- };
- 055725FD1C65280000EF6787 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 055725FE1C65280000EF6787 /* main.m */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 055726171C65282100EF6787 /* Build System */ = {
- isa = PBXGroup;
- children = (
- DD1D23C31C779D4000D0477A /* UIKit.framework */,
- DD1D23C21C779BAE00D0477A /* project.xcconfig */,
- C48AE7AE1C76159000814D7D /* libSPTPersistentCache.a */,
- 055726181C65283200EF6787 /* SPTPersistentCache.xcodeproj */,
- );
- name = "Build System";
- sourceTree = "";
- };
- C48AE7B11C7615E900814D7D /* Products */ = {
- isa = PBXGroup;
- children = (
- C48AE7B61C7615E900814D7D /* libSPTPersistentCache.a */,
- C48AE7B81C7615E900814D7D /* SPTPersistentCacheTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 055725F91C65280000EF6787 /* SPTPersistentCacheDemo */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 055726141C65280000EF6787 /* Build configuration list for PBXNativeTarget "SPTPersistentCacheDemo" */;
- buildPhases = (
- 055725F61C65280000EF6787 /* Sources */,
- 055725F71C65280000EF6787 /* Frameworks */,
- 055725F81C65280000EF6787 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = SPTPersistentCacheDemo;
- productName = SPTPersistentCacheDemo;
- productReference = 055725FA1C65280000EF6787 /* SPTPersistentCacheDemo.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 055725F21C65280000EF6787 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- CLASSPREFIX = SPT;
- LastUpgradeCheck = 1300;
- ORGANIZATIONNAME = Spotify;
- TargetAttributes = {
- 055725F91C65280000EF6787 = {
- CreatedOnToolsVersion = 7.2;
- };
- };
- };
- buildConfigurationList = 055725F51C65280000EF6787 /* Build configuration list for PBXProject "SPTPersistentCacheDemo" */;
- compatibilityVersion = "Xcode 6.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 055725F11C65280000EF6787;
- productRefGroup = 055725FB1C65280000EF6787 /* Products */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = C48AE7B11C7615E900814D7D /* Products */;
- ProjectRef = 055726181C65283200EF6787 /* SPTPersistentCache.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 055725F91C65280000EF6787 /* SPTPersistentCacheDemo */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- C48AE7B61C7615E900814D7D /* libSPTPersistentCache.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libSPTPersistentCache.a;
- remoteRef = C48AE7B51C7615E900814D7D /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- C48AE7B81C7615E900814D7D /* SPTPersistentCacheTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = SPTPersistentCacheTests.xctest;
- remoteRef = C48AE7B71C7615E900814D7D /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 055725F81C65280000EF6787 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 055726101C65280000EF6787 /* LaunchScreen.storyboard in Resources */,
- 0557260D1C65280000EF6787 /* Assets.xcassets in Resources */,
- 0557260B1C65280000EF6787 /* Main.storyboard in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 055725F61C65280000EF6787 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 055726021C65280000EF6787 /* AppDelegate.m in Sources */,
- 055726051C65280000EF6787 /* MasterViewController.m in Sources */,
- 055725FF1C65280000EF6787 /* main.m in Sources */,
- 055726081C65280000EF6787 /* DetailViewController.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- 055726091C65280000EF6787 /* Main.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 0557260A1C65280000EF6787 /* Base */,
- );
- name = Main.storyboard;
- sourceTree = "";
- };
- 0557260E1C65280000EF6787 /* LaunchScreen.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 0557260F1C65280000EF6787 /* Base */,
- );
- name = LaunchScreen.storyboard;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 055726121C65280000EF6787 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = DD1D23C21C779BAE00D0477A /* project.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = "$(YES_FOR_RELEASE)";
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- 055726131C65280000EF6787 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = DD1D23C21C779BAE00D0477A /* project.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = "$(YES_FOR_RELEASE)";
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Release;
- };
- 055726151C65280000EF6787 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- HEADER_SEARCH_PATHS = ../include;
- INFOPLIST_FILE = SPTPersistentCacheDemo/Info.plist;
- PRODUCT_BUNDLE_IDENTIFIER = com.spotify.SPTPersistentCacheDemo;
- PRODUCT_NAME = SPTPersistentCacheDemo;
- };
- name = Debug;
- };
- 055726161C65280000EF6787 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- HEADER_SEARCH_PATHS = ../include;
- INFOPLIST_FILE = SPTPersistentCacheDemo/Info.plist;
- PRODUCT_BUNDLE_IDENTIFIER = com.spotify.SPTPersistentCacheDemo;
- PRODUCT_NAME = SPTPersistentCacheDemo;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 055725F51C65280000EF6787 /* Build configuration list for PBXProject "SPTPersistentCacheDemo" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 055726121C65280000EF6787 /* Debug */,
- 055726131C65280000EF6787 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 055726141C65280000EF6787 /* Build configuration list for PBXNativeTarget "SPTPersistentCacheDemo" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 055726151C65280000EF6787 /* Debug */,
- 055726161C65280000EF6787 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 055725F21C65280000EF6787 /* Project object */;
-}
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo.xcodeproj/xcshareddata/xcschemes/SPTPersistentCacheDemo.xcscheme b/SPTPersistentCacheDemo/SPTPersistentCacheDemo.xcodeproj/xcshareddata/xcschemes/SPTPersistentCacheDemo.xcscheme
deleted file mode 100644
index 7327695..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo.xcodeproj/xcshareddata/xcschemes/SPTPersistentCacheDemo.xcscheme
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/AppDelegate.h b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/AppDelegate.h
deleted file mode 100644
index 4c30e59..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/AppDelegate.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import
-
-@interface AppDelegate : UIResponder
-
-@property (strong, nonatomic) UIWindow *window;
-
-
-@end
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/AppDelegate.m b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/AppDelegate.m
deleted file mode 100644
index d31b72a..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/AppDelegate.m
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import "AppDelegate.h"
-#import "DetailViewController.h"
-
-@interface AppDelegate ()
-
-@end
-
-@implementation AppDelegate
-
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- // Override point for customization after application launch.
- UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
- UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
- navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
- splitViewController.delegate = self;
- return YES;
-}
-
-- (void)applicationWillResignActive:(UIApplication *)application {
- // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
- // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
-}
-
-- (void)applicationDidEnterBackground:(UIApplication *)application {
- // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
- // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
-}
-
-- (void)applicationWillEnterForeground:(UIApplication *)application {
- // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
-}
-
-- (void)applicationDidBecomeActive:(UIApplication *)application {
- // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
-}
-
-- (void)applicationWillTerminate:(UIApplication *)application {
- // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
-}
-
-#pragma mark - Split view
-
-- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
- if ([secondaryViewController isKindOfClass:[UINavigationController class]] && [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]] && ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) {
- // Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.
- return YES;
- } else {
- return NO;
- }
-}
-
-@end
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 36d2c80..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "3x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "3x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "3x"
- },
- {
- "idiom" : "ipad",
- "size" : "29x29",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "40x40",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "76x76",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "76x76",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Base.lproj/LaunchScreen.storyboard b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Base.lproj/LaunchScreen.storyboard
deleted file mode 100644
index 2e721e1..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Base.lproj/LaunchScreen.storyboard
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Base.lproj/Main.storyboard b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Base.lproj/Main.storyboard
deleted file mode 100644
index 6faa52e..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Base.lproj/Main.storyboard
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/DetailViewController.h b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/DetailViewController.h
deleted file mode 100644
index 38a5063..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/DetailViewController.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import
-
-@class SPTPersistentCache;
-
-@interface DetailViewController : UIViewController
-
-@property (nonatomic, strong) SPTPersistentCache *persistentDataCache;
-@property (strong, nonatomic) NSObject *detailItem;
-@property (nonatomic, weak, readwrite) IBOutlet UIImageView *detailImageView;
-
-@end
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/DetailViewController.m b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/DetailViewController.m
deleted file mode 100644
index 65a5743..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/DetailViewController.m
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import "DetailViewController.h"
-
-#import
-#import
-#import
-
-@interface DetailViewController ()
-
-@end
-
-@implementation DetailViewController
-
-#pragma mark DetailViewController
-
-- (void)setDetailItem:(id)newDetailItem
-{
- if (_detailItem != newDetailItem) {
- _detailItem = newDetailItem;
-
- // Update the view.
- [self configureView];
- }
-}
-
-- (void)configureView
-{
- // Update the user interface for the detail item.
- if (self.detailItem) {
- [self.persistentDataCache loadDataForKey:[NSString stringWithFormat:@"%lu", (unsigned long)[self.detailItem hash]]
- withCallback:^(SPTPersistentCacheResponse *response) {
- if (response.result != SPTPersistentCacheResponseCodeOperationSucceeded) {
- NSLog(@"Failed: %@", response.error);
- return;
- }
- NSData *imageData = response.record.data;
- self.detailImageView.image = [UIImage imageWithData:imageData];
- }
- onQueue:dispatch_get_main_queue()];
- }
-}
-
-#pragma mark UIViewController
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- [self configureView];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-@end
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Info.plist b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Info.plist
deleted file mode 100644
index fd1ab7c..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/Info.plist
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- LSRequiresIPhoneOS
-
- UILaunchStoryboardName
- LaunchScreen
- UIMainStoryboardFile
- Main
- UIRequiredDeviceCapabilities
-
- armv7
-
- UIStatusBarTintParameters
-
- UINavigationBar
-
- Style
- UIBarStyleDefault
- Translucent
-
-
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/MasterViewController.h b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/MasterViewController.h
deleted file mode 100644
index 8e2c59f..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/MasterViewController.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import
-
-@class DetailViewController;
-
-@interface MasterViewController : UITableViewController
-
-@property (strong, nonatomic) DetailViewController *detailViewController;
-
-
-@end
-
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/MasterViewController.m b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/MasterViewController.m
deleted file mode 100644
index 335ebba..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/MasterViewController.m
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import "MasterViewController.h"
-
-#import
-
-#import "DetailViewController.h"
-
-@interface MasterViewController ()
-
-@property (nonatomic, strong) NSMutableArray *objects;
-@property (nonatomic, strong) SPTPersistentCache *cache;
-
-@end
-
-@implementation MasterViewController
-
-#pragma mark UIViewController
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- self.objects = [NSMutableArray new];
- NSString *cacheIdentifier = @"com.spotify.demo.image.cache";
- NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
- NSUserDomainMask,
- YES).firstObject stringByAppendingString:cacheIdentifier];
-
- SPTPersistentCacheOptions *options = [SPTPersistentCacheOptions new];
- options.cachePath = cachePath;
- options.cacheIdentifier = cacheIdentifier;
- options.defaultExpirationPeriod = 60 * 60 * 24 * 30;
- options.garbageCollectionInterval = (NSUInteger)(1.5 * SPTPersistentCacheDefaultGCIntervalSec);
- options.sizeConstraintBytes = 1024 * 1024 * 10; // 10 MiB
- options.debugOutput = ^(NSString *string) {
- NSLog(@"%@ %@", @(__PRETTY_FUNCTION__), string);
- };
-
- self.cache = [[SPTPersistentCache alloc] initWithOptions:options];
- self.navigationItem.leftBarButtonItem = self.editButtonItem;
-
- UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
- target:self
- action:@selector(addButtonAction:)];
- self.navigationItem.rightBarButtonItem = addButton;
- self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
-}
-
-- (void)viewWillAppear:(BOOL)animated
-{
- self.clearsSelectionOnViewWillAppear = self.splitViewController.isCollapsed;
- [super viewWillAppear:animated];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-#pragma mark UIBarButtonItem
-
-- (void)addButtonAction:(UIBarButtonItem *)addButton
-{
- UIAlertController *ac = [UIAlertController alertControllerWithTitle:@"Image"
- message:@"Add an image:"
- preferredStyle:UIAlertControllerStyleAlert];
-
- [ac addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
- // configure text field
- }];
-
- __weak UIAlertController *weakAC = ac;
- __weak MasterViewController *weakSelf = self;
- [ac addAction:[UIAlertAction actionWithTitle:@"OK"
- style:UIAlertActionStyleDefault
- handler:^(UIAlertAction * _Nonnull action) {
- UITextField *tf = weakAC.textFields.firstObject;
- if (tf.text.length > 0) {
- [weakSelf addImageWithURLString:tf.text];
- }
- }]];
-
- [ac addAction:[UIAlertAction actionWithTitle:@"Cancel"
- style:UIAlertActionStyleCancel
- handler:nil]];
-
- [self presentViewController:ac animated:YES completion:nil];
-}
-
-#pragma mark UIStoryboardSegue
-
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
-{
- if ([[segue identifier] isEqualToString:@"showDetail"]) {
- NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
- NSString *object = self.objects[(NSUInteger)indexPath.row];
- DetailViewController *controller = (DetailViewController *)[[segue destinationViewController] topViewController];
- controller.persistentDataCache = self.cache;
- [controller setDetailItem:object];
- controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
- controller.navigationItem.leftItemsSupplementBackButton = YES;
- }
-}
-
-#pragma mark UITableViewDataSource
-
-- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
-{
- return 1;
-}
-
-- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-{
- return (NSInteger)self.objects.count;
-}
-
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-{
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
-
- NSDate *object = self.objects[(NSUInteger)indexPath.row];
- cell.textLabel.text = [object description];
- return cell;
-}
-
-- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
-{
- // Return NO if you do not want the specified item to be editable.
- return YES;
-}
-
-- (void)tableView:(UITableView *)tableView
-commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
-forRowAtIndexPath:(NSIndexPath *)indexPath
-{
- if (editingStyle == UITableViewCellEditingStyleDelete) {
- NSUInteger row = (NSUInteger)indexPath.row;
-
- [self.cache removeDataForKeys:@[ self.objects[row] ] callback:nil onQueue:nil];
- [self.objects removeObjectAtIndex:row];
- [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
- } else if (editingStyle == UITableViewCellEditingStyleInsert) {
- // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
- }
-}
-
-#pragma mark - Handle Alert
-
-- (void)addImageWithURLString:(NSString *)imageURL
-{
- NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
- NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
- NSURL *url = [NSURL fileURLWithPath:imageURL];
-
- NSAssert(url != nil, @"Couldn’t create a wellformed URL from the image URL string \"%@\"", imageURL);
-
- [[session dataTaskWithURL:url
- completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
- [self.cache storeData:data
- forKey:[NSString stringWithFormat:@"%lu", (unsigned long)imageURL.hash]
- locked:YES
- withCallback:^(SPTPersistentCacheResponse *cacheResponse) {
- NSLog(@"cacheResponse = %@", cacheResponse);
- } onQueue:dispatch_get_main_queue()];
- dispatch_async(dispatch_get_main_queue(), ^ {
- [self.objects insertObject:imageURL atIndex:0];
- NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
- [self.tableView insertRowsAtIndexPaths:@[ indexPath ]
- withRowAnimation:UITableViewRowAnimationAutomatic];
- });
- }] resume];
-}
-
-@end
diff --git a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/main.m b/SPTPersistentCacheDemo/SPTPersistentCacheDemo/main.m
deleted file mode 100644
index 91679b2..0000000
--- a/SPTPersistentCacheDemo/SPTPersistentCacheDemo/main.m
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import
-#import "AppDelegate.h"
-
-int main(int argc, char * argv[]) {
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/SPTPersistentCacheFramework/Info.plist b/SPTPersistentCacheFramework/Info.plist
deleted file mode 100644
index e729dd7..0000000
--- a/SPTPersistentCacheFramework/Info.plist
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.1.1
- NSHumanReadableCopyright
- Copyright © 2015-2021 Spotify. All rights reserved.
- NSPrincipalClass
-
-
-
diff --git a/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/project.pbxproj b/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/project.pbxproj
deleted file mode 100644
index 582c4e5..0000000
--- a/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,703 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 47;
- objects = {
-
-/* Begin PBXBuildFile section */
- 050076B41C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 050076B21C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m */; };
- 050076B51C7A4DC7000819B5 /* SPTPersistentCachePosixWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 050076B21C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m */; };
- 245889142B502A8000E63287 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 245889132B502A7600E63287 /* PrivacyInfo.xcprivacy */; };
- 245889152B502A8100E63287 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 245889132B502A7600E63287 /* PrivacyInfo.xcprivacy */; };
- 245889162B502A8100E63287 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 245889132B502A7600E63287 /* PrivacyInfo.xcprivacy */; };
- 245889172B502A8200E63287 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 245889132B502A7600E63287 /* PrivacyInfo.xcprivacy */; };
- 6921FF5A23A7E1D7005B5162 /* SPTPersistentCacheDebugUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C4EA65051C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m */; };
- 6921FF5B23A7E1D7005B5162 /* SPTPersistentCacheRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23981C7785A900D0477A /* SPTPersistentCacheRecord.m */; };
- 6921FF5C23A7E1D7005B5162 /* crc32iso3309.c in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23901C7785A900D0477A /* crc32iso3309.c */; };
- 6921FF5D23A7E1D7005B5162 /* SPTPersistentCacheGarbageCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239D1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m */; };
- 6921FF5E23A7E1D7005B5162 /* SPTPersistentCachePosixWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 050076B21C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m */; };
- 6921FF5F23A7E1D7005B5162 /* SPTPersistentCacheObjectDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9E70791C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m */; };
- 6921FF6023A7E1D7005B5162 /* SPTPersistentCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23951C7785A900D0477A /* SPTPersistentCacheFileManager.m */; };
- 6921FF6123A7E1D7005B5162 /* NSError+SPTPersistentCacheDomainErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D238D1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.m */; };
- 6921FF6223A7E1D7005B5162 /* SPTPersistentCacheHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23961C7785A900D0477A /* SPTPersistentCacheHeader.m */; };
- 6921FF6323A7E1D7005B5162 /* SPTPersistentCacheTypeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C45526B31C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m */; };
- 6921FF6423A7E1D7005B5162 /* SPTPersistentCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23921C7785A900D0477A /* SPTPersistentCache.m */; };
- 6921FF6523A7E1D7005B5162 /* SPTPersistentCacheResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239A1C7785A900D0477A /* SPTPersistentCacheResponse.m */; };
- 6921FF6623A7E1D7005B5162 /* SPTPersistentCacheOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23971C7785A900D0477A /* SPTPersistentCacheOptions.m */; };
- 6921FF6C23A7E1D7005B5162 /* SPTPersistentCacheResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237D1C77857900D0477A /* SPTPersistentCacheResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF6E23A7E1D7005B5162 /* SPTPersistentCache.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D23791C77857900D0477A /* SPTPersistentCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF6F23A7E1D7005B5162 /* SPTPersistentCacheHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237A1C77857900D0477A /* SPTPersistentCacheHeader.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF7223A7E1D7005B5162 /* SPTPersistentCacheRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237C1C77857900D0477A /* SPTPersistentCacheRecord.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF7823A7E1D7005B5162 /* SPTPersistentCacheOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237B1C77857900D0477A /* SPTPersistentCacheOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF8123A7E2F9005B5162 /* SPTPersistentCacheDebugUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C4EA65051C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m */; };
- 6921FF8223A7E2F9005B5162 /* SPTPersistentCacheRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23981C7785A900D0477A /* SPTPersistentCacheRecord.m */; };
- 6921FF8323A7E2F9005B5162 /* crc32iso3309.c in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23901C7785A900D0477A /* crc32iso3309.c */; };
- 6921FF8423A7E2F9005B5162 /* SPTPersistentCacheGarbageCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239D1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m */; };
- 6921FF8523A7E2F9005B5162 /* SPTPersistentCachePosixWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 050076B21C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m */; };
- 6921FF8623A7E2F9005B5162 /* SPTPersistentCacheObjectDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9E70791C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m */; };
- 6921FF8723A7E2F9005B5162 /* SPTPersistentCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23951C7785A900D0477A /* SPTPersistentCacheFileManager.m */; };
- 6921FF8823A7E2F9005B5162 /* NSError+SPTPersistentCacheDomainErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D238D1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.m */; };
- 6921FF8923A7E2F9005B5162 /* SPTPersistentCacheHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23961C7785A900D0477A /* SPTPersistentCacheHeader.m */; };
- 6921FF8A23A7E2F9005B5162 /* SPTPersistentCacheTypeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C45526B31C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m */; };
- 6921FF8B23A7E2F9005B5162 /* SPTPersistentCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23921C7785A900D0477A /* SPTPersistentCache.m */; };
- 6921FF8C23A7E2F9005B5162 /* SPTPersistentCacheResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239A1C7785A900D0477A /* SPTPersistentCacheResponse.m */; };
- 6921FF8D23A7E2F9005B5162 /* SPTPersistentCacheOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23971C7785A900D0477A /* SPTPersistentCacheOptions.m */; };
- 6921FF9323A7E2F9005B5162 /* SPTPersistentCacheResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237D1C77857900D0477A /* SPTPersistentCacheResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF9523A7E2F9005B5162 /* SPTPersistentCache.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D23791C77857900D0477A /* SPTPersistentCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF9623A7E2F9005B5162 /* SPTPersistentCacheHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237A1C77857900D0477A /* SPTPersistentCacheHeader.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF9923A7E2F9005B5162 /* SPTPersistentCacheRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237C1C77857900D0477A /* SPTPersistentCacheRecord.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FF9F23A7E2F9005B5162 /* SPTPersistentCacheOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237B1C77857900D0477A /* SPTPersistentCacheOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FFA823A7E422005B5162 /* SPTPersistentCacheImplementation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6921FFA623A7E3EE005B5162 /* SPTPersistentCacheImplementation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FFA923A7E423005B5162 /* SPTPersistentCacheImplementation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6921FFA623A7E3EE005B5162 /* SPTPersistentCacheImplementation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FFAA23A7E423005B5162 /* SPTPersistentCacheImplementation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6921FFA623A7E3EE005B5162 /* SPTPersistentCacheImplementation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6921FFAB23A7E424005B5162 /* SPTPersistentCacheImplementation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6921FFA623A7E3EE005B5162 /* SPTPersistentCacheImplementation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9C9E707B1C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9E70791C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m */; };
- 9C9E707D1C790F3700E1CBE6 /* SPTPersistentCacheObjectDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9E70791C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m */; };
- C45526B61C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C45526B31C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m */; };
- C45526B71C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C45526B31C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m */; };
- C4EA65081C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C4EA65051C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m */; };
- C4EA65091C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C4EA65051C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m */; };
- DD1D237F1C77857900D0477A /* SPTPersistentCache.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D23791C77857900D0477A /* SPTPersistentCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23801C77857900D0477A /* SPTPersistentCacheHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237A1C77857900D0477A /* SPTPersistentCacheHeader.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23811C77857900D0477A /* SPTPersistentCacheOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237B1C77857900D0477A /* SPTPersistentCacheOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23821C77857900D0477A /* SPTPersistentCacheRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237C1C77857900D0477A /* SPTPersistentCacheRecord.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23831C77857900D0477A /* SPTPersistentCacheResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237D1C77857900D0477A /* SPTPersistentCacheResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23851C77857E00D0477A /* SPTPersistentCache.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D23791C77857900D0477A /* SPTPersistentCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23861C77857E00D0477A /* SPTPersistentCacheHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237A1C77857900D0477A /* SPTPersistentCacheHeader.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23871C77857E00D0477A /* SPTPersistentCacheOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237B1C77857900D0477A /* SPTPersistentCacheOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23881C77857E00D0477A /* SPTPersistentCacheRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237C1C77857900D0477A /* SPTPersistentCacheRecord.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D23891C77857E00D0477A /* SPTPersistentCacheResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1D237D1C77857900D0477A /* SPTPersistentCacheResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD1D239F1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D238D1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.m */; };
- DD1D23A21C7785A900D0477A /* crc32iso3309.c in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23901C7785A900D0477A /* crc32iso3309.c */; };
- DD1D23A41C7785A900D0477A /* SPTPersistentCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23921C7785A900D0477A /* SPTPersistentCache.m */; };
- DD1D23A71C7785A900D0477A /* SPTPersistentCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23951C7785A900D0477A /* SPTPersistentCacheFileManager.m */; };
- DD1D23A81C7785A900D0477A /* SPTPersistentCacheHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23961C7785A900D0477A /* SPTPersistentCacheHeader.m */; };
- DD1D23A91C7785A900D0477A /* SPTPersistentCacheOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23971C7785A900D0477A /* SPTPersistentCacheOptions.m */; };
- DD1D23AA1C7785A900D0477A /* SPTPersistentCacheRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23981C7785A900D0477A /* SPTPersistentCacheRecord.m */; };
- DD1D23AC1C7785A900D0477A /* SPTPersistentCacheResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239A1C7785A900D0477A /* SPTPersistentCacheResponse.m */; };
- DD1D23AF1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239D1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m */; };
- DD1D23B21C7785AE00D0477A /* crc32iso3309.c in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23901C7785A900D0477A /* crc32iso3309.c */; };
- DD1D23B41C7785AE00D0477A /* SPTPersistentCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23921C7785A900D0477A /* SPTPersistentCache.m */; };
- DD1D23B71C7785AE00D0477A /* SPTPersistentCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23951C7785A900D0477A /* SPTPersistentCacheFileManager.m */; };
- DD1D23B81C7785AE00D0477A /* SPTPersistentCacheHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23961C7785A900D0477A /* SPTPersistentCacheHeader.m */; };
- DD1D23B91C7785AE00D0477A /* SPTPersistentCacheOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23971C7785A900D0477A /* SPTPersistentCacheOptions.m */; };
- DD1D23BA1C7785AE00D0477A /* SPTPersistentCacheRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D23981C7785A900D0477A /* SPTPersistentCacheRecord.m */; };
- DD1D23BC1C7785AE00D0477A /* SPTPersistentCacheResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239A1C7785A900D0477A /* SPTPersistentCacheResponse.m */; };
- DD1D23BF1C7785AE00D0477A /* SPTPersistentCacheGarbageCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1D239D1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- 050076B11C7A4354000819B5 /* SPTPersistentCachePosixWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCachePosixWrapper.h; sourceTree = ""; };
- 050076B21C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCachePosixWrapper.m; sourceTree = ""; };
- 0520219C1C737DBE003A4FB4 /* SPTPersistentCache.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SPTPersistentCache.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 052021F21C738048003A4FB4 /* SPTPersistentCache.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SPTPersistentCache.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 052021FB1C7382C6003A4FB4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 052022061C738600003A4FB4 /* project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = project.xcconfig; path = ../project.xcconfig; sourceTree = ""; };
- 052022091C738637003A4FB4 /* spotify_os.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = spotify_os.xcconfig; path = ../ci/spotify_os.xcconfig; sourceTree = ""; };
- 245889132B502A7600E63287 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; };
- 6921FF7D23A7E1D7005B5162 /* SPTPersistentCache.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SPTPersistentCache.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 6921FFA423A7E2F9005B5162 /* SPTPersistentCache.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SPTPersistentCache.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 6921FFA623A7E3EE005B5162 /* SPTPersistentCacheImplementation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheImplementation.h; sourceTree = ""; };
- 9C9E70791C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheObjectDescription.m; sourceTree = ""; };
- 9C9E707A1C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheObjectDescription.h; sourceTree = ""; };
- C45526B21C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheTypeUtilities.h; sourceTree = ""; };
- C45526B31C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheTypeUtilities.m; sourceTree = ""; };
- C4EA65041C7A547000A6091A /* SPTPersistentCacheDebugUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheDebugUtilities.h; sourceTree = ""; };
- C4EA65051C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheDebugUtilities.m; sourceTree = ""; };
- DD1D23791C77857900D0477A /* SPTPersistentCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = SPTPersistentCache.h; sourceTree = ""; };
- DD1D237A1C77857900D0477A /* SPTPersistentCacheHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheHeader.h; sourceTree = ""; };
- DD1D237B1C77857900D0477A /* SPTPersistentCacheOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = SPTPersistentCacheOptions.h; sourceTree = ""; };
- DD1D237C1C77857900D0477A /* SPTPersistentCacheRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheRecord.h; sourceTree = ""; };
- DD1D237D1C77857900D0477A /* SPTPersistentCacheResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheResponse.h; sourceTree = ""; };
- DD1D238C1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+SPTPersistentCacheDomainErrors.h"; sourceTree = ""; };
- DD1D238D1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+SPTPersistentCacheDomainErrors.m"; sourceTree = ""; };
- DD1D23901C7785A900D0477A /* crc32iso3309.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = crc32iso3309.c; sourceTree = ""; };
- DD1D23911C7785A900D0477A /* crc32iso3309.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc32iso3309.h; sourceTree = ""; };
- DD1D23921C7785A900D0477A /* SPTPersistentCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCache.m; sourceTree = ""; };
- DD1D23931C7785A900D0477A /* SPTPersistentCache+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SPTPersistentCache+Private.h"; sourceTree = ""; };
- DD1D23941C7785A900D0477A /* SPTPersistentCacheFileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheFileManager.h; sourceTree = ""; };
- DD1D23951C7785A900D0477A /* SPTPersistentCacheFileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheFileManager.m; sourceTree = ""; };
- DD1D23961C7785A900D0477A /* SPTPersistentCacheHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheHeader.m; sourceTree = ""; };
- DD1D23971C7785A900D0477A /* SPTPersistentCacheOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = SPTPersistentCacheOptions.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
- DD1D23981C7785A900D0477A /* SPTPersistentCacheRecord.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheRecord.m; sourceTree = ""; };
- DD1D23991C7785A900D0477A /* SPTPersistentCacheRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SPTPersistentCacheRecord+Private.h"; sourceTree = ""; };
- DD1D239A1C7785A900D0477A /* SPTPersistentCacheResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheResponse.m; sourceTree = ""; };
- DD1D239B1C7785A900D0477A /* SPTPersistentCacheResponse+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SPTPersistentCacheResponse+Private.h"; sourceTree = ""; };
- DD1D239C1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTPersistentCacheGarbageCollector.h; sourceTree = ""; };
- DD1D239D1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTPersistentCacheGarbageCollector.m; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 052021981C737DBE003A4FB4 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 052021EE1C738048003A4FB4 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FF6723A7E1D7005B5162 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FF8E23A7E2F9005B5162 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 052021921C737DBD003A4FB4 = {
- isa = PBXGroup;
- children = (
- 052021A81C737E1E003A4FB4 /* API */,
- 052021B61C737E3E003A4FB4 /* Sources */,
- 245889122B502A7600E63287 /* Resources */,
- 052021FA1C7382B5003A4FB4 /* Supporting Files */,
- 0520219D1C737DBE003A4FB4 /* Products */,
- );
- sourceTree = "";
- };
- 0520219D1C737DBE003A4FB4 /* Products */ = {
- isa = PBXGroup;
- children = (
- 0520219C1C737DBE003A4FB4 /* SPTPersistentCache.framework */,
- 052021F21C738048003A4FB4 /* SPTPersistentCache.framework */,
- 6921FF7D23A7E1D7005B5162 /* SPTPersistentCache.framework */,
- 6921FFA423A7E2F9005B5162 /* SPTPersistentCache.framework */,
- );
- name = Products;
- sourceTree = "";
- };
- 052021A81C737E1E003A4FB4 /* API */ = {
- isa = PBXGroup;
- children = (
- DD1D23791C77857900D0477A /* SPTPersistentCache.h */,
- DD1D237A1C77857900D0477A /* SPTPersistentCacheHeader.h */,
- 6921FFA623A7E3EE005B5162 /* SPTPersistentCacheImplementation.h */,
- DD1D237B1C77857900D0477A /* SPTPersistentCacheOptions.h */,
- DD1D237C1C77857900D0477A /* SPTPersistentCacheRecord.h */,
- DD1D237D1C77857900D0477A /* SPTPersistentCacheResponse.h */,
- );
- name = API;
- path = ../include/SPTPersistentCache;
- sourceTree = "";
- };
- 052021B61C737E3E003A4FB4 /* Sources */ = {
- isa = PBXGroup;
- children = (
- DD1D23901C7785A900D0477A /* crc32iso3309.c */,
- DD1D23911C7785A900D0477A /* crc32iso3309.h */,
- DD1D238C1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.h */,
- DD1D238D1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.m */,
- DD1D23921C7785A900D0477A /* SPTPersistentCache.m */,
- DD1D23931C7785A900D0477A /* SPTPersistentCache+Private.h */,
- C4EA65041C7A547000A6091A /* SPTPersistentCacheDebugUtilities.h */,
- C4EA65051C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m */,
- DD1D23941C7785A900D0477A /* SPTPersistentCacheFileManager.h */,
- DD1D23951C7785A900D0477A /* SPTPersistentCacheFileManager.m */,
- DD1D239C1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.h */,
- DD1D239D1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m */,
- DD1D23961C7785A900D0477A /* SPTPersistentCacheHeader.m */,
- 9C9E707A1C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.h */,
- 9C9E70791C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m */,
- DD1D23971C7785A900D0477A /* SPTPersistentCacheOptions.m */,
- 050076B11C7A4354000819B5 /* SPTPersistentCachePosixWrapper.h */,
- 050076B21C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m */,
- DD1D23981C7785A900D0477A /* SPTPersistentCacheRecord.m */,
- DD1D23991C7785A900D0477A /* SPTPersistentCacheRecord+Private.h */,
- DD1D239A1C7785A900D0477A /* SPTPersistentCacheResponse.m */,
- DD1D239B1C7785A900D0477A /* SPTPersistentCacheResponse+Private.h */,
- C45526B21C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.h */,
- C45526B31C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m */,
- );
- name = Sources;
- path = ../Sources;
- sourceTree = "";
- };
- 052021FA1C7382B5003A4FB4 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 052021FB1C7382C6003A4FB4 /* Info.plist */,
- 052022061C738600003A4FB4 /* project.xcconfig */,
- 052022091C738637003A4FB4 /* spotify_os.xcconfig */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 245889122B502A7600E63287 /* Resources */ = {
- isa = PBXGroup;
- children = (
- 245889132B502A7600E63287 /* PrivacyInfo.xcprivacy */,
- );
- name = Resources;
- path = ../Resources;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
- 052021991C737DBE003A4FB4 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- DD1D23831C77857900D0477A /* SPTPersistentCacheResponse.h in Headers */,
- DD1D237F1C77857900D0477A /* SPTPersistentCache.h in Headers */,
- DD1D23801C77857900D0477A /* SPTPersistentCacheHeader.h in Headers */,
- DD1D23821C77857900D0477A /* SPTPersistentCacheRecord.h in Headers */,
- 6921FFAB23A7E424005B5162 /* SPTPersistentCacheImplementation.h in Headers */,
- DD1D23811C77857900D0477A /* SPTPersistentCacheOptions.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 052021EF1C738048003A4FB4 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- DD1D23851C77857E00D0477A /* SPTPersistentCache.h in Headers */,
- DD1D23871C77857E00D0477A /* SPTPersistentCacheOptions.h in Headers */,
- DD1D23891C77857E00D0477A /* SPTPersistentCacheResponse.h in Headers */,
- DD1D23861C77857E00D0477A /* SPTPersistentCacheHeader.h in Headers */,
- DD1D23881C77857E00D0477A /* SPTPersistentCacheRecord.h in Headers */,
- 6921FFAA23A7E423005B5162 /* SPTPersistentCacheImplementation.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FF6823A7E1D7005B5162 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 6921FF6C23A7E1D7005B5162 /* SPTPersistentCacheResponse.h in Headers */,
- 6921FF6E23A7E1D7005B5162 /* SPTPersistentCache.h in Headers */,
- 6921FF6F23A7E1D7005B5162 /* SPTPersistentCacheHeader.h in Headers */,
- 6921FF7223A7E1D7005B5162 /* SPTPersistentCacheRecord.h in Headers */,
- 6921FFA923A7E423005B5162 /* SPTPersistentCacheImplementation.h in Headers */,
- 6921FF7823A7E1D7005B5162 /* SPTPersistentCacheOptions.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FF8F23A7E2F9005B5162 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 6921FF9323A7E2F9005B5162 /* SPTPersistentCacheResponse.h in Headers */,
- 6921FF9523A7E2F9005B5162 /* SPTPersistentCache.h in Headers */,
- 6921FF9623A7E2F9005B5162 /* SPTPersistentCacheHeader.h in Headers */,
- 6921FF9923A7E2F9005B5162 /* SPTPersistentCacheRecord.h in Headers */,
- 6921FFA823A7E422005B5162 /* SPTPersistentCacheImplementation.h in Headers */,
- 6921FF9F23A7E2F9005B5162 /* SPTPersistentCacheOptions.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
- 0520219B1C737DBE003A4FB4 /* SPTPersistentCache-iOS */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 052021A41C737DBE003A4FB4 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-iOS" */;
- buildPhases = (
- 052021971C737DBE003A4FB4 /* Sources */,
- 052021981C737DBE003A4FB4 /* Frameworks */,
- 052021991C737DBE003A4FB4 /* Headers */,
- 0520219A1C737DBE003A4FB4 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "SPTPersistentCache-iOS";
- productName = SPTPersistentCacheFramework;
- productReference = 0520219C1C737DBE003A4FB4 /* SPTPersistentCache.framework */;
- productType = "com.apple.product-type.framework";
- };
- 052021F11C738048003A4FB4 /* SPTPersistentCache-OSX */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 052021F71C738048003A4FB4 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-OSX" */;
- buildPhases = (
- 052021ED1C738048003A4FB4 /* Sources */,
- 052021EE1C738048003A4FB4 /* Frameworks */,
- 052021EF1C738048003A4FB4 /* Headers */,
- 052021F01C738048003A4FB4 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "SPTPersistentCache-OSX";
- productName = SPTPersistentCacheOSXFramework;
- productReference = 052021F21C738048003A4FB4 /* SPTPersistentCache.framework */;
- productType = "com.apple.product-type.framework";
- };
- 6921FF5823A7E1D7005B5162 /* SPTPersistentCache-TV */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 6921FF7A23A7E1D7005B5162 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-TV" */;
- buildPhases = (
- 6921FF5923A7E1D7005B5162 /* Sources */,
- 6921FF6723A7E1D7005B5162 /* Frameworks */,
- 6921FF6823A7E1D7005B5162 /* Headers */,
- 6921FF7923A7E1D7005B5162 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "SPTPersistentCache-TV";
- productName = SPTPersistentCacheFramework;
- productReference = 6921FF7D23A7E1D7005B5162 /* SPTPersistentCache.framework */;
- productType = "com.apple.product-type.framework";
- };
- 6921FF7F23A7E2F9005B5162 /* SPTPersistentCache-Watch */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 6921FFA123A7E2F9005B5162 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-Watch" */;
- buildPhases = (
- 6921FF8023A7E2F9005B5162 /* Sources */,
- 6921FF8E23A7E2F9005B5162 /* Frameworks */,
- 6921FF8F23A7E2F9005B5162 /* Headers */,
- 6921FFA023A7E2F9005B5162 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "SPTPersistentCache-Watch";
- productName = SPTPersistentCacheFramework;
- productReference = 6921FFA423A7E2F9005B5162 /* SPTPersistentCache.framework */;
- productType = "com.apple.product-type.framework";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 052021931C737DBD003A4FB4 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- CLASSPREFIX = SPTPersistentCache;
- LastUpgradeCheck = 1300;
- ORGANIZATIONNAME = Spotify;
- TargetAttributes = {
- 0520219B1C737DBE003A4FB4 = {
- CreatedOnToolsVersion = 7.2.1;
- };
- 052021F11C738048003A4FB4 = {
- CreatedOnToolsVersion = 7.2.1;
- };
- };
- };
- buildConfigurationList = 052021961C737DBD003A4FB4 /* Build configuration list for PBXProject "SPTPersistentCacheFramework" */;
- compatibilityVersion = "Xcode 6.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 052021921C737DBD003A4FB4;
- productRefGroup = 0520219D1C737DBE003A4FB4 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 0520219B1C737DBE003A4FB4 /* SPTPersistentCache-iOS */,
- 052021F11C738048003A4FB4 /* SPTPersistentCache-OSX */,
- 6921FF5823A7E1D7005B5162 /* SPTPersistentCache-TV */,
- 6921FF7F23A7E2F9005B5162 /* SPTPersistentCache-Watch */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 0520219A1C737DBE003A4FB4 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 245889142B502A8000E63287 /* PrivacyInfo.xcprivacy in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 052021F01C738048003A4FB4 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 245889152B502A8100E63287 /* PrivacyInfo.xcprivacy in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FF7923A7E1D7005B5162 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 245889162B502A8100E63287 /* PrivacyInfo.xcprivacy in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FFA023A7E2F9005B5162 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 245889172B502A8200E63287 /* PrivacyInfo.xcprivacy in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 052021971C737DBE003A4FB4 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- C4EA65081C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m in Sources */,
- DD1D23AA1C7785A900D0477A /* SPTPersistentCacheRecord.m in Sources */,
- DD1D23A21C7785A900D0477A /* crc32iso3309.c in Sources */,
- DD1D23AF1C7785A900D0477A /* SPTPersistentCacheGarbageCollector.m in Sources */,
- 050076B41C7A4354000819B5 /* SPTPersistentCachePosixWrapper.m in Sources */,
- 9C9E707B1C790F0B00E1CBE6 /* SPTPersistentCacheObjectDescription.m in Sources */,
- DD1D23A71C7785A900D0477A /* SPTPersistentCacheFileManager.m in Sources */,
- DD1D239F1C7785A900D0477A /* NSError+SPTPersistentCacheDomainErrors.m in Sources */,
- DD1D23A81C7785A900D0477A /* SPTPersistentCacheHeader.m in Sources */,
- C45526B61C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m in Sources */,
- DD1D23A41C7785A900D0477A /* SPTPersistentCache.m in Sources */,
- DD1D23AC1C7785A900D0477A /* SPTPersistentCacheResponse.m in Sources */,
- DD1D23A91C7785A900D0477A /* SPTPersistentCacheOptions.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 052021ED1C738048003A4FB4 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- DD1D23BF1C7785AE00D0477A /* SPTPersistentCacheGarbageCollector.m in Sources */,
- DD1D23B21C7785AE00D0477A /* crc32iso3309.c in Sources */,
- DD1D23B81C7785AE00D0477A /* SPTPersistentCacheHeader.m in Sources */,
- DD1D23BC1C7785AE00D0477A /* SPTPersistentCacheResponse.m in Sources */,
- DD1D23BA1C7785AE00D0477A /* SPTPersistentCacheRecord.m in Sources */,
- C4EA65091C7A547000A6091A /* SPTPersistentCacheDebugUtilities.m in Sources */,
- DD1D23B71C7785AE00D0477A /* SPTPersistentCacheFileManager.m in Sources */,
- DD1D23B91C7785AE00D0477A /* SPTPersistentCacheOptions.m in Sources */,
- DD1D23B41C7785AE00D0477A /* SPTPersistentCache.m in Sources */,
- C45526B71C77DCCC008D5570 /* SPTPersistentCacheTypeUtilities.m in Sources */,
- 9C9E707D1C790F3700E1CBE6 /* SPTPersistentCacheObjectDescription.m in Sources */,
- 050076B51C7A4DC7000819B5 /* SPTPersistentCachePosixWrapper.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FF5923A7E1D7005B5162 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 6921FF5A23A7E1D7005B5162 /* SPTPersistentCacheDebugUtilities.m in Sources */,
- 6921FF5B23A7E1D7005B5162 /* SPTPersistentCacheRecord.m in Sources */,
- 6921FF5C23A7E1D7005B5162 /* crc32iso3309.c in Sources */,
- 6921FF5D23A7E1D7005B5162 /* SPTPersistentCacheGarbageCollector.m in Sources */,
- 6921FF5E23A7E1D7005B5162 /* SPTPersistentCachePosixWrapper.m in Sources */,
- 6921FF5F23A7E1D7005B5162 /* SPTPersistentCacheObjectDescription.m in Sources */,
- 6921FF6023A7E1D7005B5162 /* SPTPersistentCacheFileManager.m in Sources */,
- 6921FF6123A7E1D7005B5162 /* NSError+SPTPersistentCacheDomainErrors.m in Sources */,
- 6921FF6223A7E1D7005B5162 /* SPTPersistentCacheHeader.m in Sources */,
- 6921FF6323A7E1D7005B5162 /* SPTPersistentCacheTypeUtilities.m in Sources */,
- 6921FF6423A7E1D7005B5162 /* SPTPersistentCache.m in Sources */,
- 6921FF6523A7E1D7005B5162 /* SPTPersistentCacheResponse.m in Sources */,
- 6921FF6623A7E1D7005B5162 /* SPTPersistentCacheOptions.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 6921FF8023A7E2F9005B5162 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 6921FF8123A7E2F9005B5162 /* SPTPersistentCacheDebugUtilities.m in Sources */,
- 6921FF8223A7E2F9005B5162 /* SPTPersistentCacheRecord.m in Sources */,
- 6921FF8323A7E2F9005B5162 /* crc32iso3309.c in Sources */,
- 6921FF8423A7E2F9005B5162 /* SPTPersistentCacheGarbageCollector.m in Sources */,
- 6921FF8523A7E2F9005B5162 /* SPTPersistentCachePosixWrapper.m in Sources */,
- 6921FF8623A7E2F9005B5162 /* SPTPersistentCacheObjectDescription.m in Sources */,
- 6921FF8723A7E2F9005B5162 /* SPTPersistentCacheFileManager.m in Sources */,
- 6921FF8823A7E2F9005B5162 /* NSError+SPTPersistentCacheDomainErrors.m in Sources */,
- 6921FF8923A7E2F9005B5162 /* SPTPersistentCacheHeader.m in Sources */,
- 6921FF8A23A7E2F9005B5162 /* SPTPersistentCacheTypeUtilities.m in Sources */,
- 6921FF8B23A7E2F9005B5162 /* SPTPersistentCache.m in Sources */,
- 6921FF8C23A7E2F9005B5162 /* SPTPersistentCacheResponse.m in Sources */,
- 6921FF8D23A7E2F9005B5162 /* SPTPersistentCacheOptions.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 052021A21C737DBE003A4FB4 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 052022061C738600003A4FB4 /* project.xcconfig */;
- buildSettings = {
- APPLICATION_EXTENSION_API_ONLY = YES;
- DEAD_CODE_STRIPPING = NO;
- DEFINES_MODULE = YES;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- HEADER_SEARCH_PATHS = ../include;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "@rpath";
- LD_DYLIB_INSTALL_NAME = "@rpath/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)/$(PRODUCT_NAME)";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = "com.spotify.$(TARGET_NAME)";
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Debug;
- };
- 052021A31C737DBE003A4FB4 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 052022061C738600003A4FB4 /* project.xcconfig */;
- buildSettings = {
- APPLICATION_EXTENSION_API_ONLY = YES;
- DEAD_CODE_STRIPPING = NO;
- DEFINES_MODULE = YES;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- HEADER_SEARCH_PATHS = ../include;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "@rpath";
- LD_DYLIB_INSTALL_NAME = "@rpath/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)/$(PRODUCT_NAME)";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = "com.spotify.$(TARGET_NAME)";
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Release;
- };
- 052021A51C737DBE003A4FB4 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
- };
- name = Debug;
- };
- 052021A61C737DBE003A4FB4 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
- };
- name = Release;
- };
- 052021F81C738048003A4FB4 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_IDENTITY = "-";
- FRAMEWORK_VERSION = A;
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = macosx;
- SUPPORTED_PLATFORMS = macosx;
- };
- name = Debug;
- };
- 052021F91C738048003A4FB4 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_IDENTITY = "-";
- FRAMEWORK_VERSION = A;
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = macosx;
- SUPPORTED_PLATFORMS = macosx;
- };
- name = Release;
- };
- 6921FF7B23A7E1D7005B5162 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = appletvos;
- SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
- };
- name = Debug;
- };
- 6921FF7C23A7E1D7005B5162 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = appletvos;
- SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
- };
- name = Release;
- };
- 6921FFA223A7E2F9005B5162 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = watchos;
- SUPPORTED_PLATFORMS = "watchsimulator watchos";
- };
- name = Debug;
- };
- 6921FFA323A7E2F9005B5162 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = SPTPersistentCache;
- SDKROOT = watchos;
- SUPPORTED_PLATFORMS = "watchsimulator watchos";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 052021961C737DBD003A4FB4 /* Build configuration list for PBXProject "SPTPersistentCacheFramework" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 052021A21C737DBE003A4FB4 /* Debug */,
- 052021A31C737DBE003A4FB4 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 052021A41C737DBE003A4FB4 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-iOS" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 052021A51C737DBE003A4FB4 /* Debug */,
- 052021A61C737DBE003A4FB4 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 052021F71C738048003A4FB4 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-OSX" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 052021F81C738048003A4FB4 /* Debug */,
- 052021F91C738048003A4FB4 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 6921FF7A23A7E1D7005B5162 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-TV" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 6921FF7B23A7E1D7005B5162 /* Debug */,
- 6921FF7C23A7E1D7005B5162 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 6921FFA123A7E2F9005B5162 /* Build configuration list for PBXNativeTarget "SPTPersistentCache-Watch" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 6921FFA223A7E2F9005B5162 /* Debug */,
- 6921FFA323A7E2F9005B5162 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 052021931C737DBD003A4FB4 /* Project object */;
-}
diff --git a/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache-OSX.xcscheme b/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache-OSX.xcscheme
deleted file mode 100644
index 957023b..0000000
--- a/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache-OSX.xcscheme
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache-iOS.xcscheme b/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache-iOS.xcscheme
deleted file mode 100644
index f50f53d..0000000
--- a/SPTPersistentCacheFramework/SPTPersistentCacheFramework.xcodeproj/xcshareddata/xcschemes/SPTPersistentCache-iOS.xcscheme
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SPTPersistentCacheViewer.png b/SPTPersistentCacheViewer.png
deleted file mode 100644
index 7fc89f4..0000000
Binary files a/SPTPersistentCacheViewer.png and /dev/null differ
diff --git a/Sources/NSError+SPTPersistentCacheDomainErrors.h b/Sources/NSError+SPTPersistentCacheDomainErrors.h
index 13c39d5..a181e77 100644
--- a/Sources/NSError+SPTPersistentCacheDomainErrors.h
+++ b/Sources/NSError+SPTPersistentCacheDomainErrors.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
#import
diff --git a/Sources/NSError+SPTPersistentCacheDomainErrors.m b/Sources/NSError+SPTPersistentCacheDomainErrors.m
index b952bd7..6408d43 100644
--- a/Sources/NSError+SPTPersistentCacheDomainErrors.m
+++ b/Sources/NSError+SPTPersistentCacheDomainErrors.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import "NSError+SPTPersistentCacheDomainErrors.h"
@implementation NSError (SPTPersistentCacheDomainErrors)
diff --git a/Resources/PrivacyInfo.xcprivacy b/Sources/Resources/PrivacyInfo.xcprivacy
similarity index 100%
rename from Resources/PrivacyInfo.xcprivacy
rename to Sources/Resources/PrivacyInfo.xcprivacy
diff --git a/Sources/SPTPersistentCache+Private.h b/Sources/SPTPersistentCache+Private.h
index 58dbfa7..0d55a07 100644
--- a/Sources/SPTPersistentCache+Private.h
+++ b/Sources/SPTPersistentCache+Private.h
@@ -1,23 +1,5 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
#import
diff --git a/Sources/SPTPersistentCache.m b/Sources/SPTPersistentCache.m
index 3dc480c..cd2f231 100644
--- a/Sources/SPTPersistentCache.m
+++ b/Sources/SPTPersistentCache.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import "SPTPersistentCache+Private.h"
#import
diff --git a/Sources/SPTPersistentCacheDebugUtilities.h b/Sources/SPTPersistentCacheDebugUtilities.h
index 9d15e90..52bc3fe 100644
--- a/Sources/SPTPersistentCacheDebugUtilities.h
+++ b/Sources/SPTPersistentCacheDebugUtilities.h
@@ -1,23 +1,5 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
#import
diff --git a/Sources/SPTPersistentCacheDebugUtilities.m b/Sources/SPTPersistentCacheDebugUtilities.m
index 470e72b..88cfe8d 100644
--- a/Sources/SPTPersistentCacheDebugUtilities.m
+++ b/Sources/SPTPersistentCacheDebugUtilities.m
@@ -1,23 +1,5 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import "SPTPersistentCacheDebugUtilities.h"
diff --git a/Sources/SPTPersistentCacheFileManager+Private.h b/Sources/SPTPersistentCacheFileManager+Private.h
index 5c2c810..e0d0236 100644
--- a/Sources/SPTPersistentCacheFileManager+Private.h
+++ b/Sources/SPTPersistentCacheFileManager+Private.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import "SPTPersistentCacheFileManager.h"
#import
diff --git a/Sources/SPTPersistentCacheFileManager.h b/Sources/SPTPersistentCacheFileManager.h
index b4f6093..1ccaa7e 100644
--- a/Sources/SPTPersistentCacheFileManager.h
+++ b/Sources/SPTPersistentCacheFileManager.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
typedef long long SPTPersistentCacheDiskSize;
diff --git a/Sources/SPTPersistentCacheFileManager.m b/Sources/SPTPersistentCacheFileManager.m
index 63f5f26..9feea06 100644
--- a/Sources/SPTPersistentCacheFileManager.m
+++ b/Sources/SPTPersistentCacheFileManager.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import "SPTPersistentCacheFileManager+Private.h"
#import "SPTPersistentCacheDebugUtilities.h"
#import
diff --git a/Sources/SPTPersistentCacheGarbageCollector.h b/Sources/SPTPersistentCacheGarbageCollector.h
index 3266da6..9c14f61 100644
--- a/Sources/SPTPersistentCacheGarbageCollector.h
+++ b/Sources/SPTPersistentCacheGarbageCollector.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
@class SPTPersistentCache;
diff --git a/Sources/SPTPersistentCacheGarbageCollector.m b/Sources/SPTPersistentCacheGarbageCollector.m
index f2c59fe..e981fd8 100644
--- a/Sources/SPTPersistentCacheGarbageCollector.m
+++ b/Sources/SPTPersistentCacheGarbageCollector.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import "SPTPersistentCacheGarbageCollector.h"
#import "SPTPersistentCacheDebugUtilities.h"
#import "SPTPersistentCache+Private.h"
diff --git a/Sources/SPTPersistentCacheHeader.m b/Sources/SPTPersistentCacheHeader.m
index 49a3dc0..e52f6f9 100644
--- a/Sources/SPTPersistentCacheHeader.m
+++ b/Sources/SPTPersistentCacheHeader.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#import "NSError+SPTPersistentCacheDomainErrors.h"
diff --git a/Sources/SPTPersistentCacheObjectDescription.h b/Sources/SPTPersistentCacheObjectDescription.h
index a60e9d9..75f1e77 100644
--- a/Sources/SPTPersistentCacheObjectDescription.h
+++ b/Sources/SPTPersistentCacheObjectDescription.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
/// The termination sentinel that must be used toghether with `SPTPersistentCacheObjectDescription()`.
diff --git a/Sources/SPTPersistentCacheObjectDescription.m b/Sources/SPTPersistentCacheObjectDescription.m
index 3c1f4fc..5388d12 100644
--- a/Sources/SPTPersistentCacheObjectDescription.m
+++ b/Sources/SPTPersistentCacheObjectDescription.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import "SPTPersistentCacheObjectDescription.h"
id const SPTPersistentCacheObjectDescriptionTerminationSentinel = @"0xDEADC0DE";
diff --git a/Sources/SPTPersistentCacheOptions.m b/Sources/SPTPersistentCacheOptions.m
index a0961ec..85698f0 100644
--- a/Sources/SPTPersistentCacheOptions.m
+++ b/Sources/SPTPersistentCacheOptions.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#import "SPTPersistentCacheObjectDescription.h"
#import "SPTPersistentCacheDebugUtilities.h"
diff --git a/Sources/SPTPersistentCachePosixWrapper.h b/Sources/SPTPersistentCachePosixWrapper.h
index 0108719..573b3d4 100644
--- a/Sources/SPTPersistentCachePosixWrapper.h
+++ b/Sources/SPTPersistentCachePosixWrapper.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
#include
diff --git a/Sources/SPTPersistentCachePosixWrapper.m b/Sources/SPTPersistentCachePosixWrapper.m
index 4fd265e..d0edfcc 100644
--- a/Sources/SPTPersistentCachePosixWrapper.m
+++ b/Sources/SPTPersistentCachePosixWrapper.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import "SPTPersistentCachePosixWrapper.h"
@implementation SPTPersistentCachePosixWrapper
diff --git a/Sources/SPTPersistentCacheRecord+Private.h b/Sources/SPTPersistentCacheRecord+Private.h
index a38c7d9..15ec2d5 100644
--- a/Sources/SPTPersistentCacheRecord+Private.h
+++ b/Sources/SPTPersistentCacheRecord+Private.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
@interface SPTPersistentCacheRecord (Private)
diff --git a/Sources/SPTPersistentCacheRecord.m b/Sources/SPTPersistentCacheRecord.m
index 7d14ea5..c7468ad 100644
--- a/Sources/SPTPersistentCacheRecord.m
+++ b/Sources/SPTPersistentCacheRecord.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#import "SPTPersistentCacheObjectDescription.h"
diff --git a/Sources/SPTPersistentCacheResponse+Private.h b/Sources/SPTPersistentCacheResponse+Private.h
index 9058d18..1a90c4d 100644
--- a/Sources/SPTPersistentCacheResponse+Private.h
+++ b/Sources/SPTPersistentCacheResponse+Private.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
extern NSString *NSStringFromSPTPersistentCacheResponseCode(SPTPersistentCacheResponseCode code);
diff --git a/Sources/SPTPersistentCacheResponse.m b/Sources/SPTPersistentCacheResponse.m
index 7233804..0a05153 100644
--- a/Sources/SPTPersistentCacheResponse.m
+++ b/Sources/SPTPersistentCacheResponse.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
#import
#import "SPTPersistentCacheObjectDescription.h"
diff --git a/Sources/SPTPersistentCacheTypeUtilities.h b/Sources/SPTPersistentCacheTypeUtilities.h
index 9e2ea59..6fb0cca 100644
--- a/Sources/SPTPersistentCacheTypeUtilities.h
+++ b/Sources/SPTPersistentCacheTypeUtilities.h
@@ -1,23 +1,5 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
diff --git a/Sources/SPTPersistentCacheTypeUtilities.m b/Sources/SPTPersistentCacheTypeUtilities.m
index 8716572..b0b9d56 100644
--- a/Sources/SPTPersistentCacheTypeUtilities.m
+++ b/Sources/SPTPersistentCacheTypeUtilities.m
@@ -1,27 +1,8 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import "SPTPersistentCacheTypeUtilities.h"
-
uint64_t spt_uint64rint(double value)
{
return (uint64_t)llrint(value);
diff --git a/Sources/crc32iso3309.c b/Sources/crc32iso3309.c
index 436cd73..11aa89b 100644
--- a/Sources/crc32iso3309.c
+++ b/Sources/crc32iso3309.c
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#include "crc32iso3309.h"
/**
diff --git a/Sources/crc32iso3309.h b/Sources/crc32iso3309.h
index e64c972..18388a3 100644
--- a/Sources/crc32iso3309.h
+++ b/Sources/crc32iso3309.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#ifndef CRC32ISO3309_H
#define CRC32ISO3309_H
diff --git a/Sources/include/SPTPersistentCache/SPTPersistentCache.h b/Sources/include/SPTPersistentCache/SPTPersistentCache.h
new file mode 100644
index 0000000..85df3f4
--- /dev/null
+++ b/Sources/include/SPTPersistentCache/SPTPersistentCache.h
@@ -0,0 +1,8 @@
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
+#import
+#import
+#import
+#import
+#import
diff --git a/include/SPTPersistentCache/SPTPersistentCacheHeader.h b/Sources/include/SPTPersistentCache/SPTPersistentCacheHeader.h
similarity index 78%
rename from include/SPTPersistentCache/SPTPersistentCacheHeader.h
rename to Sources/include/SPTPersistentCache/SPTPersistentCacheHeader.h
index ca7fb15..f6bd1ca 100644
--- a/include/SPTPersistentCache/SPTPersistentCacheHeader.h
+++ b/Sources/include/SPTPersistentCache/SPTPersistentCacheHeader.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
/**
diff --git a/include/SPTPersistentCache/SPTPersistentCacheImplementation.h b/Sources/include/SPTPersistentCache/SPTPersistentCacheImplementation.h
similarity index 93%
rename from include/SPTPersistentCache/SPTPersistentCacheImplementation.h
rename to Sources/include/SPTPersistentCache/SPTPersistentCacheImplementation.h
index a1b537b..70e157b 100644
--- a/include/SPTPersistentCache/SPTPersistentCacheImplementation.h
+++ b/Sources/include/SPTPersistentCache/SPTPersistentCacheImplementation.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
@class SPTPersistentCacheOptions;
diff --git a/include/SPTPersistentCache/SPTPersistentCacheOptions.h b/Sources/include/SPTPersistentCache/SPTPersistentCacheOptions.h
similarity index 91%
rename from include/SPTPersistentCache/SPTPersistentCacheOptions.h
rename to Sources/include/SPTPersistentCache/SPTPersistentCacheOptions.h
index 050f1ef..446292a 100644
--- a/include/SPTPersistentCache/SPTPersistentCacheOptions.h
+++ b/Sources/include/SPTPersistentCache/SPTPersistentCacheOptions.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/include/SPTPersistentCache/SPTPersistentCacheRecord.h b/Sources/include/SPTPersistentCache/SPTPersistentCacheRecord.h
similarity index 57%
rename from include/SPTPersistentCache/SPTPersistentCacheRecord.h
rename to Sources/include/SPTPersistentCache/SPTPersistentCacheRecord.h
index bf535a9..1e9e580 100644
--- a/include/SPTPersistentCache/SPTPersistentCacheRecord.h
+++ b/Sources/include/SPTPersistentCache/SPTPersistentCacheRecord.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/include/SPTPersistentCache/SPTPersistentCacheResponse.h b/Sources/include/SPTPersistentCache/SPTPersistentCacheResponse.h
similarity index 67%
rename from include/SPTPersistentCache/SPTPersistentCacheResponse.h
rename to Sources/include/SPTPersistentCache/SPTPersistentCacheResponse.h
index 6669ca3..c2cfbc1 100644
--- a/include/SPTPersistentCache/SPTPersistentCacheResponse.h
+++ b/Sources/include/SPTPersistentCache/SPTPersistentCacheResponse.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
@class SPTPersistentCacheRecord;
diff --git a/Tests/NSError+SPTPersistentCacheDomainErrorsTests.m b/Tests/NSError+SPTPersistentCacheDomainErrorsTests.m
index 08282ce..0f6a422 100644
--- a/Tests/NSError+SPTPersistentCacheDomainErrorsTests.m
+++ b/Tests/NSError+SPTPersistentCacheDomainErrorsTests.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#import "NSError+SPTPersistentCacheDomainErrors.h"
diff --git a/Tests/NSFileManagerMock.h b/Tests/NSFileManagerMock.h
index 53346ff..20c091e 100644
--- a/Tests/NSFileManagerMock.h
+++ b/Tests/NSFileManagerMock.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
/**
diff --git a/Tests/NSFileManagerMock.m b/Tests/NSFileManagerMock.m
index 720adb9..358a567 100644
--- a/Tests/NSFileManagerMock.m
+++ b/Tests/NSFileManagerMock.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import "NSFileManagerMock.h"
@implementation NSFileManagerMock
diff --git a/Tests/SPTPersistentCacheDebugUtilitiesTests.m b/Tests/SPTPersistentCacheDebugUtilitiesTests.m
index 99de6a0..1d6bc3c 100644
--- a/Tests/SPTPersistentCacheDebugUtilitiesTests.m
+++ b/Tests/SPTPersistentCacheDebugUtilitiesTests.m
@@ -1,28 +1,9 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
#import "SPTPersistentCacheDebugUtilities.h"
-
@interface SPTPersistentCacheDebugUtilitiesTests : XCTestCase
@end
diff --git a/Tests/SPTPersistentCacheFileManagerTests.m b/Tests/SPTPersistentCacheFileManagerTests.m
index f7efa96..8643474 100644
--- a/Tests/SPTPersistentCacheFileManagerTests.m
+++ b/Tests/SPTPersistentCacheFileManagerTests.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#import "SPTPersistentCacheFileManager+Private.h"
diff --git a/Tests/SPTPersistentCacheGarbageCollectorTests.m b/Tests/SPTPersistentCacheGarbageCollectorTests.m
index ad79b3b..b858bad 100644
--- a/Tests/SPTPersistentCacheGarbageCollectorTests.m
+++ b/Tests/SPTPersistentCacheGarbageCollectorTests.m
@@ -1,23 +1,5 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
#import "SPTPersistentCacheGarbageCollector.h"
diff --git a/Tests/SPTPersistentCacheHeaderTests.m b/Tests/SPTPersistentCacheHeaderTests.m
index 3588e23..e57946e 100644
--- a/Tests/SPTPersistentCacheHeaderTests.m
+++ b/Tests/SPTPersistentCacheHeaderTests.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
#import
diff --git a/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.h b/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.h
index 6916015..e42930a 100644
--- a/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.h
+++ b/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import
/**
diff --git a/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.m b/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.m
index da1b268..6a393ad 100644
--- a/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.m
+++ b/Tests/SPTPersistentCacheObjectDescriptionStyleValidator.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import "SPTPersistentCacheObjectDescriptionStyleValidator.h"
@interface SPTPersistentCacheObjectDescriptionStyleValidator ()
diff --git a/Tests/SPTPersistentCacheObjectDescriptionTests.m b/Tests/SPTPersistentCacheObjectDescriptionTests.m
index 329fcaf..070ae87 100644
--- a/Tests/SPTPersistentCacheObjectDescriptionTests.m
+++ b/Tests/SPTPersistentCacheObjectDescriptionTests.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#import "SPTPersistentCacheObjectDescription.h"
diff --git a/Tests/SPTPersistentCacheOptionsTests.m b/Tests/SPTPersistentCacheOptionsTests.m
index d5bcd07..72ded66 100644
--- a/Tests/SPTPersistentCacheOptionsTests.m
+++ b/Tests/SPTPersistentCacheOptionsTests.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#import
diff --git a/Tests/SPTPersistentCachePerformanceTests.m b/Tests/SPTPersistentCachePerformanceTests.m
index c8b5219..e258b6c 100644
--- a/Tests/SPTPersistentCachePerformanceTests.m
+++ b/Tests/SPTPersistentCachePerformanceTests.m
@@ -1,28 +1,11 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
#import
#import
+#import "SPTTestBundle.h"
double convertMachToMilliSeconds(uint64_t mach_time);
static const int SPTPersistentCachePerformanceIterationCount = 200;
@@ -98,7 +81,7 @@ - (void)setUp
NSLog(@"%@", self.cachePath);
- NSBundle *bundle = [NSBundle bundleForClass:[self class]];
+ NSBundle *bundle = SPTTestBundle();
for (NSString *fileName in fileNames) {
NSString *filePath = [bundle pathForResource:fileName ofType:@"dat"];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
diff --git a/Tests/SPTPersistentCachePosixWrapperMock.h b/Tests/SPTPersistentCachePosixWrapperMock.h
index 9a41317..36e1de5 100644
--- a/Tests/SPTPersistentCachePosixWrapperMock.h
+++ b/Tests/SPTPersistentCachePosixWrapperMock.h
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
#import "SPTPersistentCachePosixWrapper.h"
/**
diff --git a/Tests/SPTPersistentCachePosixWrapperMock.m b/Tests/SPTPersistentCachePosixWrapperMock.m
index 552dcd3..ea284b0 100644
--- a/Tests/SPTPersistentCachePosixWrapperMock.m
+++ b/Tests/SPTPersistentCachePosixWrapperMock.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import "SPTPersistentCachePosixWrapperMock.h"
@implementation SPTPersistentCachePosixWrapperMock
diff --git a/Tests/SPTPersistentCacheRecordTests.m b/Tests/SPTPersistentCacheRecordTests.m
index c20db03..84c28db 100644
--- a/Tests/SPTPersistentCacheRecordTests.m
+++ b/Tests/SPTPersistentCacheRecordTests.m
@@ -1,23 +1,5 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
#import
diff --git a/Tests/SPTPersistentCacheResponseTests.m b/Tests/SPTPersistentCacheResponseTests.m
index aa3a68b..053f743 100644
--- a/Tests/SPTPersistentCacheResponseTests.m
+++ b/Tests/SPTPersistentCacheResponseTests.m
@@ -1,23 +1,5 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
#import
#import "SPTPersistentCacheRecord+Private.h"
diff --git a/Tests/SPTPersistentCacheTests.m b/Tests/SPTPersistentCacheTests.m
index ad297af..87ff54a 100644
--- a/Tests/SPTPersistentCacheTests.m
+++ b/Tests/SPTPersistentCacheTests.m
@@ -1,23 +1,6 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
#import
#if TARGET_OS_IPHONE
@@ -38,6 +21,7 @@ Licensed to the Apache Software Foundation (ASF) under one
#import "SPTPersistentCacheFileManager.h"
#import "NSFileManagerMock.h"
#import "SPTPersistentCachePosixWrapperMock.h"
+#import "SPTTestBundle.h"
#include
#include
@@ -225,7 +209,7 @@ - (void)setUp
} expirationTime:SPTPersistentCacheDefaultExpirationTimeSec];
SPTPersistentCacheFileManager *fileManager = [[SPTPersistentCacheFileManager alloc] initWithOptions:self.cache.options];
- self.thisBundle = [NSBundle bundleForClass:[self class]];
+ self.thisBundle = SPTTestBundle();
const NSUInteger count = self.imageNames.count;
diff --git a/Tests/SPTTestBundle.h b/Tests/SPTTestBundle.h
new file mode 100644
index 0000000..5418fad
--- /dev/null
+++ b/Tests/SPTTestBundle.h
@@ -0,0 +1,14 @@
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
+
+#import
+#import "NSFileManagerMock.h"
+
+NS_INLINE NSBundle *SPTTestBundle(void)
+{
+#ifdef SWIFTPM_MODULE_BUNDLE
+ return SWIFTPM_MODULE_BUNDLE;
+#else
+ return [NSBundle bundleForClass:[NSFileManagerMock class]];
+#endif
+}
diff --git a/Viewer/AppDelegate.h b/Viewer/AppDelegate.h
deleted file mode 100644
index a078941..0000000
--- a/Viewer/AppDelegate.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import
-
-@interface AppDelegate : NSObject
-
-
-@end
-
diff --git a/Viewer/AppDelegate.m b/Viewer/AppDelegate.m
deleted file mode 100644
index c87cd8b..0000000
--- a/Viewer/AppDelegate.m
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import "AppDelegate.h"
-#import "MainWindowController.h"
-
-@interface AppDelegate ()
-
-//@property (weak) IBOutlet NSWindow *window;
-@property (nonatomic, strong) MainWindowController *mainWindowController;
-@end
-
-@implementation AppDelegate
-
-- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
- // Insert code here to initialize your application
- // load the app's main window from an external nib for display
- _mainWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainWindowController"];
- [self.mainWindowController showWindow:self];
-}
-
-- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
-{
- return YES;
-}
-
-- (void)applicationWillTerminate:(NSNotification *)aNotification {
- // Insert code here to tear down your application
-}
-
-@end
diff --git a/Viewer/Base.lproj/MainMenu.xib b/Viewer/Base.lproj/MainMenu.xib
deleted file mode 100644
index 91b729c..0000000
--- a/Viewer/Base.lproj/MainMenu.xib
+++ /dev/null
@@ -1,636 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Viewer/Images.xcassets/AppIcon.appiconset/Contents.json b/Viewer/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 2db2b1c..0000000
--- a/Viewer/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "mac",
- "size" : "16x16",
- "scale" : "1x"
- },
- {
- "idiom" : "mac",
- "size" : "16x16",
- "scale" : "2x"
- },
- {
- "idiom" : "mac",
- "size" : "32x32",
- "scale" : "1x"
- },
- {
- "idiom" : "mac",
- "size" : "32x32",
- "scale" : "2x"
- },
- {
- "idiom" : "mac",
- "size" : "128x128",
- "scale" : "1x"
- },
- {
- "idiom" : "mac",
- "size" : "128x128",
- "scale" : "2x"
- },
- {
- "idiom" : "mac",
- "size" : "256x256",
- "scale" : "1x"
- },
- {
- "idiom" : "mac",
- "size" : "256x256",
- "scale" : "2x"
- },
- {
- "idiom" : "mac",
- "size" : "512x512",
- "scale" : "1x"
- },
- {
- "idiom" : "mac",
- "size" : "512x512",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/Viewer/Info.plist b/Viewer/Info.plist
deleted file mode 100644
index af19b13..0000000
--- a/Viewer/Info.plist
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIconFile
-
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- LSMinimumSystemVersion
- $(MACOSX_DEPLOYMENT_TARGET)
- NSHumanReadableCopyright
- Copyright © 2020 Spotify. All rights reserved.
- NSMainNibFile
- MainMenu
- NSPrincipalClass
- NSApplication
-
-
diff --git a/Viewer/MainWindowController.h b/Viewer/MainWindowController.h
deleted file mode 100644
index 009d0bc..0000000
--- a/Viewer/MainWindowController.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import
-
-@interface MainWindowController : NSWindowController
-
-@end
diff --git a/Viewer/MainWindowController.m b/Viewer/MainWindowController.m
deleted file mode 100644
index a54088a..0000000
--- a/Viewer/MainWindowController.m
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import "MainWindowController.h"
-#import
-
-@interface MainWindowController ()
-@property (nonatomic, strong) NSMutableArray *cacheFiles;
-
-@property (nonatomic, strong) NSString *magic;
-@property (nonatomic, strong) NSString *headerSize;
-@property (nonatomic, strong) NSString *payloadSize;
-@property (nonatomic, strong) NSString *crc;
-@property (nonatomic, strong) NSString *updateTime;
-@property (nonatomic, strong) NSString *ttl;
-@property (nonatomic, strong) NSString *refCount;
-@property (nonatomic, strong) NSString *hrUpdateTime;
-@property (nonatomic, strong) NSString *imageSize;
-
-@property (nonatomic, strong) NSURL *cacheURL;
-@property (nonatomic, strong) NSData *payload;
-@property (nonatomic, strong) id object;
-@property (nonatomic, strong) NSImageView *imageView;
-
-@property (nonatomic, weak) IBOutlet NSTableView *tableView;
-@property (nonatomic, weak) IBOutlet NSView *containerView;
-
-@end
-
-@implementation MainWindowController
-{
- SPTPersistentCacheRecordHeader _currHeader;
- BOOL _crcValid;
-}
-
-- (void)windowDidLoad {
- [super windowDidLoad];
-
- self.tableView.delegate = self;
- self.tableView.dataSource = self;
-
- if (self.imageView == nil) {
- self.imageView = [[NSImageView alloc] initWithFrame:CGRectMake(319, 20, 357, 357)];
- self.imageView.imageFrameStyle = NSImageFramePhoto;
- [self.containerView addSubview:self.imageView];
- }
-}
-
-- (void)dealloc
-{
-}
-
-#pragma mark - Menu items
-- (void)openDocument:(id)sender
-{
- NSWindow *window = self.window;
- if (window == nil) {
- return;
- }
-
- NSOpenPanel *panel = [NSOpenPanel openPanel];
- panel.allowsMultipleSelection = NO;
- panel.canChooseDirectories = YES;
- panel.canChooseFiles = NO;
- panel.canCreateDirectories = NO;
- panel.showsHiddenFiles = YES;
- panel.message = @"Select cache folder";
- panel.directoryURL = self.cacheURL;
-
- [panel beginSheetModalForWindow:window completionHandler:^(NSInteger result) {
- if (NSFileHandlingPanelCancelButton == result) {
- return;
- }
-
- [panel orderOut:self.window];
-
- self.cacheURL = panel.URL;
- [self loadFilesAtURL:panel.URL];
- }];
-}
-
-- (void)reload:(id)sender
-{
- [self loadFilesAtURL:self.cacheURL];
-}
-
--(BOOL)validateMenuItem:(NSMenuItem *)menuItem
-{
- if (menuItem.tag == 2)
- return self.cacheURL != nil;
-
- return YES;
-}
-
-- (void)loadFilesAtURL:(NSURL *)url
-{
- NSError *error = nil;
- NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:url
- includingPropertiesForKeys:nil
- options:NSDirectoryEnumerationSkipsHiddenFiles
- error:&error];
- if (files == nil) {
- [NSApp presentError:error];
- return;
- }
-
- self.cacheFiles = [files mutableCopy];
- [self.tableView reloadData];
-}
-
-#pragma mark - TableView datasource
-- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
-{
- return (NSInteger)[self.cacheFiles count];
-}
-
-- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
-{
- return [[[self.cacheFiles objectAtIndex:(NSUInteger)row] pathComponents] lastObject];
-}
-
-- (void)tableViewSelectionDidChange:(NSNotification *)aNotification
-{
- NSInteger idx = [self.tableView selectedRow];
- if (idx == -1) {
- // TODO: clear fields
- return;
- }
-
- NSURL *fileURL = [self.cacheFiles objectAtIndex:(NSUInteger)idx];
- NSData *rawData = [NSData dataWithContentsOfURL:fileURL];
-
- SPTPersistentCacheRecordHeader *h = SPTPersistentCacheGetHeaderFromData(__DECONST(void*, [rawData bytes]), [rawData length]);
-
- if (h == NULL) {
- // TODO: error
- return;
- }
-
- if (-1 != SPTPersistentCacheValidateHeader(h)) {
- // TODO: error
- return;
- }
-
- memcpy(&_currHeader, h, SPTPersistentCacheRecordHeaderSize);
-
- self.magic = [NSString stringWithFormat:@"0x%X", _currHeader.magic];
- self.headerSize = [NSString stringWithFormat:@"%u", _currHeader.headerSize];
- self.payloadSize = [NSString stringWithFormat:@"%llu", _currHeader.payloadSizeBytes];
- self.crc = [NSString stringWithFormat:@"0x%X", _currHeader.crc];
- self.updateTime = [NSString stringWithFormat:@"%llu", _currHeader.updateTimeSec];
- self.ttl = [NSString stringWithFormat:@"%llu", _currHeader.ttl];
- self.refCount = [NSString stringWithFormat:@"%d", _currHeader.refCount];
- self.hrUpdateTime = [NSDateFormatter localizedStringFromDate:[NSDate dateWithTimeIntervalSince1970:_currHeader.updateTimeSec]
- dateStyle:NSDateFormatterMediumStyle
- timeStyle:NSDateFormatterLongStyle];
-
- NSRange payloadRange = NSMakeRange(SPTPersistentCacheRecordHeaderSize, _currHeader.payloadSizeBytes);
- self.payload = [rawData subdataWithRange:payloadRange];
-
- self.object = [[NSImage alloc] initWithData:self.payload];
-
- NSImage *image = self.object;
- self.imageView.image = image;
- self.imageSize = NSStringFromSize([image size]);
-}
-
-@end
diff --git a/Viewer/MainWindowController.xib b/Viewer/MainWindowController.xib
deleted file mode 100644
index ca05b7b..0000000
--- a/Viewer/MainWindowController.xib
+++ /dev/null
@@ -1,283 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Viewer/SPTPersistentCacheViewer.xcodeproj/project.pbxproj b/Viewer/SPTPersistentCacheViewer.xcodeproj/project.pbxproj
deleted file mode 100644
index 90933f4..0000000
--- a/Viewer/SPTPersistentCacheViewer.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,312 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 47;
- objects = {
-
-/* Begin PBXBuildFile section */
- 696CD79E1C4708ED0071DD18 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 696CD79D1C4708ED0071DD18 /* AppDelegate.m */; };
- 696CD7A11C4708ED0071DD18 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 696CD7A01C4708ED0071DD18 /* main.m */; };
- 696CD7A31C4708ED0071DD18 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 696CD7A21C4708ED0071DD18 /* Images.xcassets */; };
- 696CD7A61C4708ED0071DD18 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 696CD7A41C4708ED0071DD18 /* MainMenu.xib */; };
- 69A726AE1C470B56005FC024 /* MainWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 69A726AC1C470B56005FC024 /* MainWindowController.m */; };
- 69A726AF1C470B56005FC024 /* MainWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 69A726AD1C470B56005FC024 /* MainWindowController.xib */; };
- C48AE7AD1C76152200814D7D /* libSPTPersistentCache.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C48AE7AC1C76152200814D7D /* libSPTPersistentCache.a */; };
- DDBCF5F41C68E2A300693038 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDBCF5F31C68E2A300693038 /* Cocoa.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 69FD59DD1C4F0CA80052626E /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 69FD59D81C4F0CA70052626E /* SPTPersistentCache.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 0510FF131BA2FF7A00ED0766;
- remoteInfo = SPTPersistentCache;
- };
- 69FD59DF1C4F0CA80052626E /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 69FD59D81C4F0CA70052626E /* SPTPersistentCache.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 0510FF1E1BA2FF7A00ED0766;
- remoteInfo = SPTPersistentCacheTests;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 6931DA7D255081C800AF4AF8 /* project.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = project.xcconfig; path = ../project.xcconfig; sourceTree = ""; };
- 696CD79A1C4708ED0071DD18 /* SPTPersistentCacheViewer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SPTPersistentCacheViewer.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 696CD79C1C4708ED0071DD18 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- 696CD79D1C4708ED0071DD18 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- 696CD7A01C4708ED0071DD18 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- 696CD7A21C4708ED0071DD18 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
- 696CD7A51C4708ED0071DD18 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
- 696CD7A71C4708ED0071DD18 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 69A726AB1C470B56005FC024 /* MainWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainWindowController.h; sourceTree = ""; };
- 69A726AC1C470B56005FC024 /* MainWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainWindowController.m; sourceTree = ""; };
- 69A726AD1C470B56005FC024 /* MainWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainWindowController.xib; sourceTree = ""; };
- 69FD59D81C4F0CA70052626E /* SPTPersistentCache.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SPTPersistentCache.xcodeproj; path = ../SPTPersistentCache.xcodeproj; sourceTree = ""; };
- C48AE7AC1C76152200814D7D /* libSPTPersistentCache.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSPTPersistentCache.a; path = "/Library/Developer/Xcode/DerivedData/SPTPersistentCache-baozpsdxvsedctakhrddpkmkyjzd/Build/Products/Debug/libSPTPersistentCache.a"; sourceTree = ""; };
- DDBCF5F31C68E2A300693038 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 696CD7971C4708ED0071DD18 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- C48AE7AD1C76152200814D7D /* libSPTPersistentCache.a in Frameworks */,
- DDBCF5F41C68E2A300693038 /* Cocoa.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 0510FF0A1BA2FF7A00ED0766 = {
- isa = PBXGroup;
- children = (
- 696CD79B1C4708ED0071DD18 /* Sources */,
- 69FD59D71C4F0C970052626E /* Dependencies */,
- 0510FF141BA2FF7A00ED0766 /* Products */,
- );
- sourceTree = "";
- };
- 0510FF141BA2FF7A00ED0766 /* Products */ = {
- isa = PBXGroup;
- children = (
- 696CD79A1C4708ED0071DD18 /* SPTPersistentCacheViewer.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 696CD79B1C4708ED0071DD18 /* Sources */ = {
- isa = PBXGroup;
- children = (
- 696CD79C1C4708ED0071DD18 /* AppDelegate.h */,
- 696CD79D1C4708ED0071DD18 /* AppDelegate.m */,
- 69A726AB1C470B56005FC024 /* MainWindowController.h */,
- 69A726AC1C470B56005FC024 /* MainWindowController.m */,
- 69A726AD1C470B56005FC024 /* MainWindowController.xib */,
- 696CD7A21C4708ED0071DD18 /* Images.xcassets */,
- 696CD7A41C4708ED0071DD18 /* MainMenu.xib */,
- 696CD7A71C4708ED0071DD18 /* Info.plist */,
- 696CD79F1C4708ED0071DD18 /* Supporting Files */,
- );
- name = Sources;
- sourceTree = "";
- };
- 696CD79F1C4708ED0071DD18 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 696CD7A01C4708ED0071DD18 /* main.m */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 69FD59D71C4F0C970052626E /* Dependencies */ = {
- isa = PBXGroup;
- children = (
- 6931DA7D255081C800AF4AF8 /* project.xcconfig */,
- DDBCF5F31C68E2A300693038 /* Cocoa.framework */,
- C48AE7AC1C76152200814D7D /* libSPTPersistentCache.a */,
- 69FD59D81C4F0CA70052626E /* SPTPersistentCache.xcodeproj */,
- );
- name = Dependencies;
- sourceTree = "";
- };
- 69FD59D91C4F0CA70052626E /* Products */ = {
- isa = PBXGroup;
- children = (
- 69FD59DE1C4F0CA80052626E /* libSPTPersistentCache.a */,
- 69FD59E01C4F0CA80052626E /* SPTPersistentCacheTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 696CD7991C4708ED0071DD18 /* SPTPersistentCacheViewer */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 696CD7AA1C4708ED0071DD18 /* Build configuration list for PBXNativeTarget "SPTPersistentCacheViewer" */;
- buildPhases = (
- 696CD7961C4708ED0071DD18 /* Sources */,
- 696CD7981C4708ED0071DD18 /* Resources */,
- 696CD7971C4708ED0071DD18 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = SPTPersistentCacheViewer;
- productName = PersistentDataCacheViewer;
- productReference = 696CD79A1C4708ED0071DD18 /* SPTPersistentCacheViewer.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 0510FF0B1BA2FF7A00ED0766 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- CLASSPREFIX = SPTPersistentCache;
- LastUpgradeCheck = 1210;
- ORGANIZATIONNAME = Spotify;
- TargetAttributes = {
- 696CD7991C4708ED0071DD18 = {
- CreatedOnToolsVersion = 7.2;
- };
- };
- };
- buildConfigurationList = 0510FF0E1BA2FF7A00ED0766 /* Build configuration list for PBXProject "SPTPersistentCacheViewer" */;
- compatibilityVersion = "Xcode 6.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 0510FF0A1BA2FF7A00ED0766;
- productRefGroup = 0510FF141BA2FF7A00ED0766 /* Products */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 69FD59D91C4F0CA70052626E /* Products */;
- ProjectRef = 69FD59D81C4F0CA70052626E /* SPTPersistentCache.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 696CD7991C4708ED0071DD18 /* SPTPersistentCacheViewer */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 69FD59DE1C4F0CA80052626E /* libSPTPersistentCache.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libSPTPersistentCache.a;
- remoteRef = 69FD59DD1C4F0CA80052626E /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 69FD59E01C4F0CA80052626E /* SPTPersistentCacheTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = SPTPersistentCacheTests.xctest;
- remoteRef = 69FD59DF1C4F0CA80052626E /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 696CD7981C4708ED0071DD18 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 696CD7A31C4708ED0071DD18 /* Images.xcassets in Resources */,
- 69A726AF1C470B56005FC024 /* MainWindowController.xib in Resources */,
- 696CD7A61C4708ED0071DD18 /* MainMenu.xib in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 696CD7961C4708ED0071DD18 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 69A726AE1C470B56005FC024 /* MainWindowController.m in Sources */,
- 696CD7A11C4708ED0071DD18 /* main.m in Sources */,
- 696CD79E1C4708ED0071DD18 /* AppDelegate.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- 696CD7A41C4708ED0071DD18 /* MainMenu.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 696CD7A51C4708ED0071DD18 /* Base */,
- );
- name = MainMenu.xib;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 0510FF251BA2FF7A00ED0766 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6931DA7D255081C800AF4AF8 /* project.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = "$(YES_FOR_RELEASE)";
- SDKROOT = macosx;
- SUPPORTED_PLATFORMS = macosx;
- };
- name = Debug;
- };
- 0510FF261BA2FF7A00ED0766 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6931DA7D255081C800AF4AF8 /* project.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = "$(YES_FOR_RELEASE)";
- SDKROOT = macosx;
- SUPPORTED_PLATFORMS = macosx;
- };
- name = Release;
- };
- 696CD7A81C4708ED0071DD18 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "-";
- HEADER_SEARCH_PATHS = "$(SRCROOT)/../include";
- INFOPLIST_FILE = Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.spotify.PersistentDataCacheViewer;
- PRODUCT_NAME = SPTPersistentCacheViewer;
- };
- name = Debug;
- };
- 696CD7A91C4708ED0071DD18 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "-";
- HEADER_SEARCH_PATHS = "$(SRCROOT)/../include";
- INFOPLIST_FILE = Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.spotify.PersistentDataCacheViewer;
- PRODUCT_NAME = SPTPersistentCacheViewer;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 0510FF0E1BA2FF7A00ED0766 /* Build configuration list for PBXProject "SPTPersistentCacheViewer" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 0510FF251BA2FF7A00ED0766 /* Debug */,
- 0510FF261BA2FF7A00ED0766 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 696CD7AA1C4708ED0071DD18 /* Build configuration list for PBXNativeTarget "SPTPersistentCacheViewer" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 696CD7A81C4708ED0071DD18 /* Debug */,
- 696CD7A91C4708ED0071DD18 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 0510FF0B1BA2FF7A00ED0766 /* Project object */;
-}
diff --git a/Viewer/SPTPersistentCacheViewer.xcodeproj/xcshareddata/xcschemes/SPTPersistentCacheViewer.xcscheme b/Viewer/SPTPersistentCacheViewer.xcodeproj/xcshareddata/xcschemes/SPTPersistentCacheViewer.xcscheme
deleted file mode 100644
index fc0d43a..0000000
--- a/Viewer/SPTPersistentCacheViewer.xcodeproj/xcshareddata/xcschemes/SPTPersistentCacheViewer.xcscheme
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Viewer/main.m b/Viewer/main.m
deleted file mode 100644
index 540b543..0000000
--- a/Viewer/main.m
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-#import
-
-int main(int argc, const char * argv[]) {
- return NSApplicationMain(argc, argv);
-}
diff --git a/ci/expected_license_header.txt b/ci/expected_license_header.txt
index b512f59..b1a4b14 100644
--- a/ci/expected_license_header.txt
+++ b/ci/expected_license_header.txt
@@ -1,20 +1,2 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
+// Copyright Spotify AB.
+// SPDX-License-Identifier: Apache-2.0
diff --git a/ci/run.sh b/ci/run.sh
index 0b9da7e..9ee7150 100755
--- a/ci/run.sh
+++ b/ci/run.sh
@@ -1,123 +1,120 @@
#!/bin/bash
+set -e
-heading() {
- echo ""
- echo -e "\033[0;35m** ${*} **\033[0m"
- echo ""
-}
+if [[ -n "$TRAVIS_BUILD_ID" || -n "$GITHUB_WORKFLOW" ]]; then
+ export IS_CI=1
+fi
+
+DERIVED_DATA_COMMON="build/DerivedData/common"
+DERIVED_DATA_TEST="build/DerivedData/test"
-fail() {
- >&2 echo "error: $@"
- exit 1
+groupify() {
+ echo "::group::$1"
+ shift
+ (
+ trap 'echo "::endgroup::"' EXIT
+ "$@"
+ )
}
xcb() {
- LOG="$1"
- heading "$LOG"
- shift
- export NSUnbufferedIO=YES
- set -o pipefail && xcodebuild \
- -workspace SPTPersistentCache.xcworkspace \
+ set -o pipefail && NSUnbufferedIO=YES xcodebuild \
-UseSanitizedBuildSystemEnvironment=YES \
CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= \
- "$@" | xcbeautify || fail "$LOG failed"
+ "$@" | xcbeautify
}
build_target() {
- xcb "Build Target [$1] [$2]" build \
- -scheme "$1" \
- -destination "$2" \
+ groupify "Build for $1" xcb build \
+ -scheme SPTPersistentCache \
+ -destination "$1" \
-configuration Release \
-derivedDataPath "$DERIVED_DATA_COMMON"
}
-DERIVED_DATA_COMMON="build/DerivedData/common"
-DERIVED_DATA_TEST="build/DerivedData/test"
-
-if [[ -n "$TRAVIS_BUILD_ID" || -n "$GITHUB_WORKFLOW" ]]; then
- heading "Installing Tools"
+install_tools() {
gem install cocoapods
brew install xcbeautify
- export IS_CI=1
-fi
+}
-heading "Linting Podspec"
-pod spec lint SPTPersistentCache.podspec --quick || \
- fail "Podspec lint failed"
+validate_license_conformance() {
+ git ls-files | egrep "\\.(h|m|mm)$" | \
+ xargs ci/validate_license_conformance.sh ci/expected_license_header.txt
+}
-heading "Validating License Conformance"
-git ls-files | egrep "\\.(h|m|mm)$" | \
- xargs ci/validate_license_conformance.sh ci/expected_license_header.txt || \
- fail "License Validation Failed"
+if [[ "$IS_CI" == "1" ]]; then
+ groupify "Install Tools" install_tools
+fi
-#
-# BUILD LIBRARIES
-#
+groupify "Lint Podspec" \
+ pod spec lint SPTPersistentCache.podspec --quick
-build_target SPTPersistentCache "generic/platform=macOS"
-build_target SPTPersistentCache "generic/platform=iOS"
-build_target SPTPersistentCache "generic/platform=iOS Simulator"
-build_target SPTPersistentCache "generic/platform=tvOS"
-build_target SPTPersistentCache "generic/platform=tvOS Simulator"
-build_target SPTPersistentCache "generic/platform=watchOS"
-build_target SPTPersistentCache "generic/platform=watchOS Simulator"
+groupify "Validate License Conformance" validate_license_conformance
#
-# BUILD FRAMEWORKS
+# RUN TESTS (spm + macos)
#
-build_target SPTPersistentCache-OSX "generic/platform=macOS"
-build_target SPTPersistentCache-iOS "generic/platform=iOS"
-build_target SPTPersistentCache-iOS "generic/platform=iOS Simulator"
-build_target SPTPersistentCache-TV "generic/platform=tvOS"
-build_target SPTPersistentCache-TV "generic/platform=tvOS Simulator"
-build_target SPTPersistentCache-Watch "generic/platform=watchOS"
-build_target SPTPersistentCache-Watch "generic/platform=watchOS Simulator"
+groupify "macOS SPM tests" swift test
#
-# BUILD DEMO APP
+# BUILD LIBRARIES (xcodebuild)
#
-xcb "Build Demo App for Simulator" \
- build -scheme "SPTPersistentCacheDemo" \
- -destination "generic/platform=iOS Simulator" \
- -configuration Release \
- -derivedDataPath "$DERIVED_DATA_COMMON" \
- CODE_SIGNING_ALLOWED=NO \
- CODE_SIGNING_REQUIRED=NO
+build_target "generic/platform=macOS"
+build_target "generic/platform=iOS"
+build_target "generic/platform=iOS Simulator"
+build_target "generic/platform=tvOS"
+build_target "generic/platform=tvOS Simulator"
+build_target "generic/platform=watchOS"
+build_target "generic/platform=watchOS Simulator"
#
-# RUN TESTS
+# RUN TESTS (Xcode)
#
-xcb "Run tests for macOS" test \
- -scheme "SPTPersistentCache" \
- -enableCodeCoverage YES \
- -destination "platform=macOS" \
- -derivedDataPath "$DERIVED_DATA_TEST/macos"
+test_macos() {
+ xcb test \
+ -scheme "SPTPersistentCache" \
+ -enableCodeCoverage YES \
+ -destination "platform=macOS" \
+ -derivedDataPath "$DERIVED_DATA_TEST/macos"
+}
-LATEST_IOS_RUNTIME=`xcrun simctl list runtimes | egrep "^iOS" | sort | tail -n 1 | awk '{print $NF}'`
-IOS_UDID=`xcrun simctl create ios-tester com.apple.CoreSimulator.SimDeviceType.iPhone-8 "$LATEST_IOS_RUNTIME"`
+test_ios() {
+ LATEST_IOS_RUNTIME=`xcrun simctl list runtimes | egrep "^iOS" | sort | tail -n 1 | awk '{print $NF}'`
+ IOS_UDID=`xcrun simctl create sptpc-ios-tester com.apple.CoreSimulator.SimDeviceType.iPhone-13 "$LATEST_IOS_RUNTIME"`
-xcb "Run tests for iOS" test \
- -scheme "SPTPersistentCache" \
- -enableCodeCoverage YES \
- -destination "platform=iOS Simulator,id=$IOS_UDID" \
- -derivedDataPath "$DERIVED_DATA_TEST/ios"
+ xcb test \
+ -scheme "SPTPersistentCache" \
+ -enableCodeCoverage YES \
+ -destination "platform=iOS Simulator,id=$IOS_UDID" \
+ -derivedDataPath "$DERIVED_DATA_TEST/ios"
+}
+
+test_tvos() {
+ LATEST_TVOS_RUNTIME=`xcrun simctl list runtimes | egrep "^tvOS" | sort | tail -n 1 | awk '{print $NF}'`
+ TVOS_UDID=`xcrun simctl create sptpc-tvos-tester com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p "$LATEST_TVOS_RUNTIME"`
-LATEST_TVOS_RUNTIME=`xcrun simctl list runtimes | egrep "^tvOS" | sort | tail -n 1 | awk '{print $NF}'`
-TVOS_UDID=`xcrun simctl create tvos-tester com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p "$LATEST_TVOS_RUNTIME"`
+ xcb test \
+ -scheme "SPTPersistentCache" \
+ -enableCodeCoverage YES \
+ -destination "platform=tvOS Simulator,id=$TVOS_UDID" \
+ -derivedDataPath "$DERIVED_DATA_TEST/tvos"
+}
-xcb "Run tests for tvOS" test \
- -scheme "SPTPersistentCache" \
- -enableCodeCoverage YES \
- -destination "platform=tvOS Simulator,id=$TVOS_UDID" \
- -derivedDataPath "$DERIVED_DATA_TEST/tvos"
+groupify "Run tests for macOS" test_macos
+groupify "Run tests for iOS" test_ios
+groupify "Run tests for tvOS" test_tvos
#
# CODECOV
#
+if [[ "$NO_COVERAGE" == "1" ]]; then
+ exit 0
+fi
+
# output a bunch of stuff that codecov might recognize
if [[ -n "$GITHUB_WORKFLOW" ]]; then
PR_CANDIDATE=`echo "$GITHUB_REF" | egrep -o "pull/\d+" | egrep -o "\d+"`
@@ -132,11 +129,13 @@ if [[ -n "$GITHUB_WORKFLOW" ]]; then
export VCS_SLUG="$GITHUB_REPOSITORY"
fi
-curl -sfL https://codecov.io/bash > build/codecov.sh
-chmod +x build/codecov.sh
-[[ "$IS_CI" == "1" ]] || CODECOV_EXTRA="-d"
+coverage_prepare() {
+ curl -sfL https://codecov.io/bash > build/codecov.sh
+ chmod +x build/codecov.sh
+}
coverage_report() {
+ [[ "$IS_CI" == "1" ]] || CODECOV_EXTRA="-d"
build/codecov.sh -F "$1" -D "$DERIVED_DATA_TEST/$1" -X xcodellvm $CODECOV_EXTRA
if [[ "$IS_CI" == "1" ]]; then
# clean up coverage files so they don't leak into the next processing run
@@ -148,6 +147,7 @@ coverage_report() {
fi
}
-coverage_report macos
-coverage_report tvos
-coverage_report ios
+groupify "Coverage preparation" coverage_prepare
+groupify "Coverage for macOS" coverage_report macos
+groupify "Coverage for tvOS" coverage_report tvos
+groupify "Coverage for iOS" coverage_report ios
diff --git a/ci/spotify_os.xcconfig b/ci/spotify_os.xcconfig
deleted file mode 100644
index 73793e7..0000000
--- a/ci/spotify_os.xcconfig
+++ /dev/null
@@ -1,183 +0,0 @@
-// Copyright (c) 2015-2021 Spotify AB.
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-// A set of configurations used for Spotify Objective-C Open Source Projects
-
-IPHONEOS_DEPLOYMENT_TARGET = 12.0
-WATCHOS_DEPLOYMENT_TARGET = 3.0
-TVOS_DEPLOYMENT_TARGET = 12.0
-MACOSX_DEPLOYMENT_TARGET = 10.12
-
-ENABLE_NS_ASSERTIONS = $(YES_FOR_DEBUG)
-ENABLE_TESTABILITY = $(YES_FOR_DEBUG)
-ONLY_ACTIVE_ARCH = $(YES_FOR_DEBUG)
-VALIDATE_PRODUCT = $(YES_FOR_RELEASE)
-
-SKIP_INSTALL = YES
-COPY_PHASE_STRIP = NO
-
-DEBUG_INFORMATION_FORMAT_Debug = dwarf
-DEBUG_INFORMATION_FORMAT_Release = dwarf-with-dsym
-DEBUG_INFORMATION_FORMAT = $(DEBUG_INFORMATION_FORMAT_$(CONFIGURATION))
-
-SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator watchsimulator appletvsimulator watchos appletvos
-
-CLANG_ENABLE_MODULES = YES
-CLANG_MODULES_AUTOLINK = NO
-CLANG_ENABLE_OBJC_ARC = YES
-ENABLE_STRICT_OBJC_MSGSEND = YES
-GCC_DYNAMIC_NO_PIC = NO
-GCC_NO_COMMON_BLOCKS = YES
-GCC_OPTIMIZATION_LEVEL_Debug = 0
-GCC_OPTIMIZATION_LEVEL_Release = s
-GCC_OPTIMIZATION_LEVEL = $(GCC_OPTIMIZATION_LEVEL_$(CONFIGURATION))
-GCC_SYMBOLS_PRIVATE_EXTERN = NO
-
-ALWAYS_SEARCH_USER_PATHS = NO
-
-// Spotify language and std-library standards
-GCC_C_LANGUAGE_STANDARD = gnu11
-CLANG_CXX_LANGUAGE_STANDARD = c++11
-CLANG_CXX_LIBRARY = libc++
-
-SPOTIFY_OS_CONFIG_PREPROCESSOR_DEFINITIONS_Debug = DEBUG=1 _DEBUG=1
-SPOTIFY_OS_CONFIG_PREPROCESSOR_DEFINITIONS_Release =
-SPOTIFY_OS_CONFIG_PREPROCESSOR_DEFINITIONS = $(SPOTIFY_OS_CONFIG_PREPROCESSOR_DEFINITIONS_$(CONFIGURATION))
-
-GCC_PREPROCESSOR_DEFINITIONS = $SPOTIFY_OS_CONFIG_PREPROCESSOR_DEFINITIONS
-
-OTHER_LDFLAGS = -ObjC
-
-// Simplify booleans for debug/release
-YES_FOR_DEBUG_Debug = YES
-YES_FOR_DEBUG_Release = NO
-YES_FOR_DEBUG = $(YES_FOR_DEBUG_$(CONFIGURATION))
-
-YES_FOR_RELEASE_Debug = NO
-YES_FOR_RELEASE_Release = YES
-YES_FOR_RELEASE = $(YES_FOR_RELEASE_$(CONFIGURATION))
-
-// Warnings:
-// Attribution: https://github.com/jonreid/XcodeWarnings
-
-WARNING_CFLAGS = -Weverything -Wno-error=deprecated -Wno-objc-missing-property-synthesis -Wno-gnu-conditional-omitted-operand -Wno-gnu -Wno-documentation-unknown-command -Wno-reserved-id-macro -Wno-auto-import -Wno-missing-variable-declarations -Wno-c++98-compat -Werror -Wno-direct-ivar-access -Wno-padded -Wno-declaration-after-statement
-
-// Warnings
-CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES
-CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
-CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES
-CLANG_WARN_ASSIGN_ENUM = YES
-CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
-CLANG_WARN_BOOL_CONVERSION = YES
-CLANG_WARN_COMMA = YES
-CLANG_WARN_CONSTANT_CONVERSION = YES
-CLANG_WARN_CXX0X_EXTENSIONS = YES
-CLANG_WARN_DELETE_NON_VIRTUAL_DTOR = YES
-CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
-CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
-CLANG_WARN_DOCUMENTATION_COMMENTS = YES
-CLANG_WARN_EMPTY_BODY = YES
-CLANG_WARN_ENUM_CONVERSION = YES
-CLANG_WARN_FLOAT_CONVERSION = YES
-CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES
-CLANG_WARN_INFINITE_RECURSION = YES
-CLANG_WARN_INT_CONVERSION = YES
-CLANG_WARN_MISSING_NOESCAPE = YES
-CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
-CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE = YES
-CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES
-CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
-CLANG_WARN_OBJC_INTERFACE_IVARS = YES
-CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
-CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES
-CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
-CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
-CLANG_WARN_PRAGMA_PACK = YES
-CLANG_WARN_PRIVATE_MODULE = YES
-CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES
-CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
-CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY = YES
-CLANG_WARN_STRICT_PROTOTYPES = YES
-CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES
-CLANG_WARN_SUSPICIOUS_MOVE = YES
-CLANG_WARN_UNGUARDED_AVAILABILITY = YES
-CLANG_WARN_UNREACHABLE_CODE = YES
-CLANG_WARN_VEXING_PARSE = YES
-GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES
-GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES
-GCC_TREAT_WARNINGS_AS_ERRORS = YES
-GCC_WARN_64_TO_32_BIT_CONVERSION = YES
-GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES
-GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
-GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
-GCC_WARN_ABOUT_MISSING_NEWLINE = YES
-GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES
-GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES
-GCC_WARN_ABOUT_RETURN_TYPE = YES
-GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES
-GCC_WARN_CHECK_SWITCH_STATEMENTS = YES
-GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES
-GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES
-GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
-GCC_WARN_MISSING_PARENTHESES = YES
-GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES
-GCC_WARN_PEDANTIC = YES
-GCC_WARN_SHADOW = YES
-GCC_WARN_SIGN_COMPARE = YES
-GCC_WARN_STRICT_SELECTOR_MATCH = YES
-GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES
-GCC_WARN_UNDECLARED_SELECTOR = YES
-GCC_WARN_UNINITIALIZED_AUTOS = YES
-GCC_WARN_UNKNOWN_PRAGMAS = YES
-GCC_WARN_UNUSED_FUNCTION = YES
-GCC_WARN_UNUSED_LABEL = YES
-GCC_WARN_UNUSED_PARAMETER = NO
-GCC_WARN_UNUSED_VALUE = YES
-GCC_WARN_UNUSED_VARIABLE = YES
-
-// Static Analyzer - Analysis Policy
-RUN_CLANG_STATIC_ANALYZER = YES
-CLANG_STATIC_ANALYZER_MODE_ON_ANALYZE_ACTION = Deep
-CLANG_STATIC_ANALYZER_MODE = Deep
-
-// Static Analyzer - Issues
-CLANG_ANALYZER_DEADCODE_DEADSTORES = YES
-CLANG_ANALYZER_GCD = YES
-CLANG_ANALYZER_GCD_PERFORMANCE = YES
-CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO
-CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO
-CLANG_ANALYZER_MEMORY_MANAGEMENT = YES
-CLANG_ANALYZER_NONNULL = YES
-CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES
-CLANG_ANALYZER_OBJC_ATSYNC = YES
-CLANG_ANALYZER_OBJC_COLLECTIONS = YES
-CLANG_ANALYZER_OBJC_DEALLOC = YES
-CLANG_ANALYZER_OBJC_GENERICS = YES
-CLANG_ANALYZER_OBJC_INCOMP_METHOD_TYPES = YES
-CLANG_ANALYZER_OBJC_NSCFERROR = YES
-CLANG_ANALYZER_OBJC_RETAIN_COUNT = YES
-CLANG_ANALYZER_OBJC_SELF_INIT = YES
-CLANG_ANALYZER_OBJC_UNUSED_IVARS = YES
-CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
-CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS = YES
-CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP = YES
-CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
-CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
-CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN = YES
-CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK = YES
-CLANG_ANALYZER_SECURITY_KEYCHAIN_API = YES
diff --git a/ci/validate_license_conformance.sh b/ci/validate_license_conformance.sh
index fc51dbc..44c69e6 100755
--- a/ci/validate_license_conformance.sh
+++ b/ci/validate_license_conformance.sh
@@ -1,22 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2015-2021 Spotify AB.
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
+# Copyright Spotify AB.
+# SPDX-License-Identifier: Apache-2.0
set -uo pipefail
diff --git a/codecov.yml b/codecov.yml
index 04aeb30..bc44df7 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -3,7 +3,6 @@ coverage:
- Pods/.*
- Applications/Xcode.app/.*
- ci/.*
- - Carthage/.*
- build/.*
- Tests/.*
- .*Tests.m
diff --git a/include/SPTPersistentCache/SPTPersistentCache.h b/include/SPTPersistentCache/SPTPersistentCache.h
deleted file mode 100644
index 0cc4d5a..0000000
--- a/include/SPTPersistentCache/SPTPersistentCache.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- Copyright (c) 2015-2021 Spotify AB.
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import
-#import
-#import
-#import
-#import
diff --git a/include/SPTPersistentCache/module.modulemap b/include/SPTPersistentCache/module.modulemap
deleted file mode 100644
index 6b089c7..0000000
--- a/include/SPTPersistentCache/module.modulemap
+++ /dev/null
@@ -1,4 +0,0 @@
-module SPTPersistentCache {
- umbrella header "SPTPersistentCache.h"
- export *
-}
diff --git a/project.xcconfig b/project.xcconfig
deleted file mode 100644
index db5e2ca..0000000
--- a/project.xcconfig
+++ /dev/null
@@ -1 +0,0 @@
-#include "ci/spotify_os.xcconfig"