diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 0000000..5eec115 --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,33 @@ +name: Build + +on: + push: + branches: [ master ] + pull_request: + branches: '*' + +env: + DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer + +jobs: + iOS: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Build + run: xcodebuild -scheme "Rswift-iOS" + tvOS: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Build + run: xcodebuild -scheme "Rswift-tvOS" + watchOS: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Build + run: xcodebuild -scheme "Rswift-watchOS" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..ebf96c1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,22 @@ +name: Release + +on: + release: + types: created + +env: + DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer + +jobs: + publish: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Publish to Cocoapods + run: | + export POD_VERSION=$(echo $TAG_NAME | cut -c2-) + pod trunk push + env: + TAG_NAME: ${{ github.event.release.tag_name }} + COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} diff --git a/.gitignore b/.gitignore index 3b8e2bf..53a07cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ .DS_Store xcuserdata *.xccheckout +fastlane/README.md +fastlane/report.xml +fastlane/test_output +fastlane/settoken.sh +/build +Carthage/Build +.swiftpm \ No newline at end of file diff --git a/Library/Core/ColorResource.swift b/Library/Core/ColorResource.swift index 5d87016..0f67b4e 100644 --- a/Library/Core/ColorResource.swift +++ b/Library/Core/ColorResource.swift @@ -3,62 +3,31 @@ // R.swift.Library // // Created by Tom Lokhorst on 2016-03-13. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // -import UIKit +import Foundation public protocol ColorResourceType { + /// Bundle this color is in + var bundle: Bundle { get } + /// Name of the color var name: String { get } - - /// Red componenent of color - var red: CGFloat { get } - - /// Green componenent of color - var green: CGFloat { get } - - /// Blue componenent of color - var blue: CGFloat { get } - - /// Alpha componenent of color - var alpha: CGFloat { get } -} - -public extension ColorResourceType { - /** - Returns the a UIColor - - - returns: A UIColor for this color resource - */ - func color() -> UIColor { - return UIColor(red: red, green: green, blue: blue, alpha: alpha) - } } public struct ColorResource: ColorResourceType { + /// Bundle this color is in + public let bundle: Bundle + /// Name of the color public let name: String - /// Red componenent of color - public let red: CGFloat - - /// Green componenent of color - public let green: CGFloat - - /// Blue componenent of color - public let blue: CGFloat - - /// Alpha componenent of color - public let alpha: CGFloat - - public init(name: String, red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) { + public init(bundle: Bundle, name: String) { + self.bundle = bundle self.name = name - self.red = red - self.green = green - self.blue = blue - self.alpha = alpha } } diff --git a/Library/Core/FileResource.swift b/Library/Core/FileResource.swift index 3dee398..093ee0b 100644 --- a/Library/Core/FileResource.swift +++ b/Library/Core/FileResource.swift @@ -1,9 +1,10 @@ // // FileResource.swift -// Pods +// R.swift.Library // // Created by Mathijs Kadijk on 06-01-16. -// +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation @@ -11,7 +12,7 @@ import Foundation public protocol FileResourceType { /// Bundle this file is in - var bundle: NSBundle { get } + var bundle: Bundle { get } /// Name of the file file on disk var name: String { get } @@ -21,13 +22,18 @@ public protocol FileResourceType { } public extension FileResourceType { + /// Name of the file on disk with the pathExtension + var fullName: String { + return [name, pathExtension].joined(separator: ".") + } + /** Returns the full pathname for this resource. - returns: The full pathname for this resource or nil if the file could not be located. */ func path() -> String? { - return bundle.pathForResource(self) + return bundle.path(forResource: self) } /** @@ -35,22 +41,22 @@ public extension FileResourceType { - returns: The file URL for this resource or nil if the file could not be located. */ - func url() -> NSURL? { - return bundle.URLForResource(self) + func url() -> URL? { + return bundle.url(forResource: self) } } public struct FileResource: FileResourceType { /// Bundle this file is in - public let bundle: NSBundle + public let bundle: Bundle - /// Name of the file file on disk + /// Name of the file on disk, without the pathExtension public let name: String /// Extension of the file on disk public let pathExtension: String - public init(bundle: NSBundle, name: String, pathExtension: String) { + public init(bundle: Bundle, name: String, pathExtension: String) { self.bundle = bundle self.name = name self.pathExtension = pathExtension diff --git a/Library/Core/FontResource.swift b/Library/Core/FontResource.swift index 7a7fbae..6ce96a7 100644 --- a/Library/Core/FontResource.swift +++ b/Library/Core/FontResource.swift @@ -3,7 +3,8 @@ // R.swift.Library // // Created by Mathijs Kadijk on 06-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation diff --git a/Library/Core/Identifier.swift b/Library/Core/Identifier.swift index 0da396a..17e7365 100644 --- a/Library/Core/Identifier.swift +++ b/Library/Core/Identifier.swift @@ -3,7 +3,8 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation diff --git a/Library/Core/ImageResource.swift b/Library/Core/ImageResource.swift index 1c295d2..6fd3d8a 100644 --- a/Library/Core/ImageResource.swift +++ b/Library/Core/ImageResource.swift @@ -3,7 +3,8 @@ // R.swift.Library // // Created by Mathijs Kadijk on 11-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation @@ -11,7 +12,7 @@ import Foundation public protocol ImageResourceType { /// Bundle this image is in - var bundle: NSBundle { get } + var bundle: Bundle { get } /// Name of the image var name: String { get } @@ -20,12 +21,12 @@ public protocol ImageResourceType { public struct ImageResource: ImageResourceType { /// Bundle this image is in - public let bundle: NSBundle + public let bundle: Bundle /// Name of the image public let name: String - public init(bundle: NSBundle, name: String) { + public init(bundle: Bundle, name: String) { self.bundle = bundle self.name = name } diff --git a/Library/Core/NibResource.swift b/Library/Core/NibResource.swift index b6d39fc..3a5e904 100644 --- a/Library/Core/NibResource.swift +++ b/Library/Core/NibResource.swift @@ -3,7 +3,8 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation @@ -12,7 +13,7 @@ import Foundation public protocol NibResourceType { /// Bundle this nib is in or nil for main bundle - var bundle: NSBundle { get } + var bundle: Bundle { get } /// Name of the nib file on disk var name: String { get } diff --git a/Library/Core/ReuseIdentifierProtocol.swift b/Library/Core/ReuseIdentifierProtocol.swift index e32db59..9637e01 100644 --- a/Library/Core/ReuseIdentifierProtocol.swift +++ b/Library/Core/ReuseIdentifierProtocol.swift @@ -3,7 +3,8 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation diff --git a/Library/Core/StoryboardResource.swift b/Library/Core/StoryboardResource.swift index ae96351..46a0e35 100644 --- a/Library/Core/StoryboardResource.swift +++ b/Library/Core/StoryboardResource.swift @@ -3,7 +3,8 @@ // R.swift.Library // // Created by Mathijs Kadijk on 07-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation @@ -11,7 +12,7 @@ import Foundation public protocol StoryboardResourceType { /// Bundle this storyboard is in - var bundle: NSBundle { get } + var bundle: Bundle { get } /// Name of the storyboard file on disk var name: String { get } diff --git a/Library/Core/StoryboardSegueIdentifierProtocol.swift b/Library/Core/StoryboardSegueIdentifierProtocol.swift index 0d026b0..9b51797 100644 --- a/Library/Core/StoryboardSegueIdentifierProtocol.swift +++ b/Library/Core/StoryboardSegueIdentifierProtocol.swift @@ -3,7 +3,8 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation @@ -44,10 +45,10 @@ public struct StoryboardSegueIdentifier<Segue, Source, Destination>: StoryboardS } /// Create a new StoryboardSegue based on the identifier and source view controller - public func storyboardSegueWithSource(sourceViewController: Source) + public func storyboardSegue(withSource source: Source) -> StoryboardSegue<Segue, Source, Destination> { - return StoryboardSegue(identifier: self, sourceViewController: sourceViewController) + return StoryboardSegue(identifier: self, source: source) } } @@ -63,7 +64,7 @@ public struct TypedStoryboardSegueInfo<Segue, Source, Destination>: StoryboardSe public typealias DestinationType = Destination /// Segue destination view controller - public let destinationViewController: Destination + public let destination: Destination /// Segue identifier public let identifier: String @@ -72,7 +73,7 @@ public struct TypedStoryboardSegueInfo<Segue, Source, Destination>: StoryboardSe public let segue: Segue /// Segue source view controller - public let sourceViewController: Source + public let source: Source } /// Segue with identifier and source view controller @@ -81,15 +82,15 @@ public struct StoryboardSegue<Segue, Source, Destination> { public let identifier: StoryboardSegueIdentifier<Segue, Source, Destination> /// Segue source view controller - public let sourceViewController: Source + public let source: Source /** Create a new segue based on the identifier and source view controller - returns: A new StoryboardSegue */ - public init(identifier: StoryboardSegueIdentifier<Segue, Source, Destination>, sourceViewController: Source) { + public init(identifier: StoryboardSegueIdentifier<Segue, Source, Destination>, source: Source) { self.identifier = identifier - self.sourceViewController = sourceViewController + self.source = source } } diff --git a/Library/Core/StoryboardViewControllerResource.swift b/Library/Core/StoryboardViewControllerResource.swift index 3cb45ef..4a29d91 100644 --- a/Library/Core/StoryboardViewControllerResource.swift +++ b/Library/Core/StoryboardViewControllerResource.swift @@ -3,7 +3,8 @@ // R.swift.Library // // Created by Mathijs Kadijk on 13-03-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation @@ -22,4 +23,3 @@ public struct StoryboardViewControllerResource<ViewController>: StoryboardViewCo self.identifier = identifier } } - diff --git a/Library/Core/StringResource.swift b/Library/Core/StringResource.swift new file mode 100644 index 0000000..56e1193 --- /dev/null +++ b/Library/Core/StringResource.swift @@ -0,0 +1,54 @@ +// +// StringResource.swift +// R.swift.Library +// +// Created by Tom Lokhorst on 2016-04-23. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License +// + +import Foundation + +public protocol StringResourceType { + + /// Key for the string + var key: String { get } + + /// File in containing the string + var tableName: String { get } + + /// Bundle this string is in + var bundle: Bundle { get } + + /// Locales of the a localizable string + var locales: [String] { get } + + /// Comment directly before and/or after the string, if any + var comment: String? { get } +} + +public struct StringResource: StringResourceType { + + /// Key for the string + public let key: String + + /// File in containing the string + public let tableName: String + + /// Bundle this string is in + public let bundle: Bundle + + /// Locales of the a localizable string + public let locales: [String] + + /// Comment directly before and/or after the string, if any + public let comment: String? + + public init(key: String, tableName: String, bundle: Bundle, locales: [String], comment: String?) { + self.key = key + self.tableName = tableName + self.bundle = bundle + self.locales = locales + self.comment = comment + } +} diff --git a/Library/Core/Validatable.swift b/Library/Core/Validatable.swift index 764d486..f965a6c 100644 --- a/Library/Core/Validatable.swift +++ b/Library/Core/Validatable.swift @@ -3,13 +3,14 @@ // R.swift.Library // // Created by Mathijs Kadijk on 17-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation /// Error thrown during validation -public struct ValidationError: ErrorType, CustomStringConvertible { +public struct ValidationError: Error, CustomStringConvertible { /// Human readable description public let description: String @@ -20,28 +21,9 @@ public struct ValidationError: ErrorType, CustomStringConvertible { public protocol Validatable { /** - Validates this entity and throws if it encounters a invalid situation, a validatable should also validate it sub-validatables if it has any. + Validates this entity and throws if it encounters an invalid situation, a validatable should also validate it sub-validatables if it has any. - throws: If there the configuration error a ValidationError is thrown */ static func validate() throws } - -extension Validatable { - /** - Validates this entity and asserts if it encounters a invalid situation, a validatable should also validate it sub-validatables if it has any. In -O builds (the default for Xcode's Release configuration), validation is not evaluated, and there are no effects. - */ - public static func assertValid() { - assert( theRealAssert() ) - } - - private static func theRealAssert() -> Bool { - do { - try validate() - } catch { - assertionFailure("Validation of \(self.dynamicType) failed with error: \(error)") - } - - return true - } -} diff --git a/Library/Foundation/NSBundle+FileResource.swift b/Library/Foundation/Bundle+FileResource.swift similarity index 58% rename from Library/Foundation/NSBundle+FileResource.swift rename to Library/Foundation/Bundle+FileResource.swift index 64d9090..d632c8d 100644 --- a/Library/Foundation/NSBundle+FileResource.swift +++ b/Library/Foundation/Bundle+FileResource.swift @@ -1,14 +1,15 @@ // -// NSBundle+FileResource.swift +// Bundle+FileResource.swift // R.swift.Library // // Created by Mathijs Kadijk on 10-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation -public extension NSBundle { +public extension Bundle { /** Returns the file URL for the given resource (R.file.*). @@ -16,8 +17,8 @@ public extension NSBundle { - returns: The file URL for the resource file (R.file.*) or nil if the file could not be located. */ - public func URLForResource(resource: FileResourceType) -> NSURL? { - return URLForResource(resource.name, withExtension: resource.pathExtension) + func url(forResource resource: FileResourceType) -> URL? { + return url(forResource: resource.name, withExtension: resource.pathExtension) } /** @@ -27,7 +28,7 @@ public extension NSBundle { - returns: The full pathname for the resource file (R.file.*) or nil if the file could not be located. */ - public func pathForResource(resource: FileResourceType) -> String? { - return pathForResource(resource.name, ofType: resource.pathExtension) + func path(forResource resource: FileResourceType) -> String? { + return path(forResource: resource.name, ofType: resource.pathExtension) } } diff --git a/Library/Foundation/Data+FileResource.swift b/Library/Foundation/Data+FileResource.swift new file mode 100644 index 0000000..36a0a36 --- /dev/null +++ b/Library/Foundation/Data+FileResource.swift @@ -0,0 +1,27 @@ +// +// Data+FileResource.swift +// R.swift.Library +// +// Created by Tom Lokhorst on 2016-03-11. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License +// + +import Foundation + +public struct NoUrlForResourceError: Error {} + +public extension Data { + + /** + Creates and returns NSData with the contents of the specified file resource (R.file.*). + + - parameter resource: The file resource (R.file.*) + + - returns: A NSData object with the contents of the specified file. + */ + init(resource: FileResourceType) throws { + guard let url = resource.url() else { throw NoUrlForResourceError() } + try self.init(contentsOf: url) + } +} diff --git a/Library/Foundation/NSData+FileResource.swift b/Library/Foundation/NSData+FileResource.swift deleted file mode 100644 index 0aef3a4..0000000 --- a/Library/Foundation/NSData+FileResource.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// NSData+FileResource.swift -// R.swift.Library -// -// Created by Tom Lokhorst on 2016-03-11. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. -// - -import Foundation - -public extension NSData { - - /** - Creates and returns NSData with the contents of the specified file resource (R.file.*). - - - parameter resource: The file resource (R.file.*) - - - returns: A NSData object with the contents of the specified file. - */ - public convenience init?(resource: FileResourceType) { - guard let url = resource.url() else { return nil } - self.init(contentsOfURL: url) - } -} diff --git a/Library/Rswift.h b/Library/Rswift.h index 9b7482f..b77027e 100644 --- a/Library/Rswift.h +++ b/Library/Rswift.h @@ -3,7 +3,8 @@ // Rswift // // Created by Mathijs Kadijk on 04-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // #import <UIKit/UIKit.h> diff --git a/Library/UIKit/NibResource+UIKit.swift b/Library/UIKit/NibResource+UIKit.swift index e6e22e7..2875cc5 100644 --- a/Library/UIKit/NibResource+UIKit.swift +++ b/Library/UIKit/NibResource+UIKit.swift @@ -3,9 +3,11 @@ // R.swift.Library // // Created by Mathijs Kadijk on 06-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit @@ -18,7 +20,8 @@ public extension NibResourceType { - returns: An array containing the top-level objects from the NIB */ - public func instantiateWithOwner(ownerOrNil: AnyObject?, options optionsOrNil: [NSObject : AnyObject]? = nil) -> [AnyObject] { - return UINib(resource: self).instantiateWithOwner(ownerOrNil, options: optionsOrNil) + func instantiate(withOwner ownerOrNil: Any?, options optionsOrNil: [UINib.OptionsKey : Any]? = [:]) -> [Any] { + return UINib(resource: self).instantiate(withOwner: ownerOrNil, options: optionsOrNil) } } +#endif diff --git a/Library/UIKit/StoryboardResourceWithInitialController+UIKit.swift b/Library/UIKit/StoryboardResourceWithInitialController+UIKit.swift index c6e7cfa..4ba1902 100644 --- a/Library/UIKit/StoryboardResourceWithInitialController+UIKit.swift +++ b/Library/UIKit/StoryboardResourceWithInitialController+UIKit.swift @@ -3,9 +3,11 @@ // R.swift.Library // // Created by Mathijs Kadijk on 07-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit @@ -15,7 +17,8 @@ public extension StoryboardResourceWithInitialControllerType { - returns: The initial view controller in the storyboard. */ - public func initialViewController() -> InitialController? { + func instantiateInitialViewController() -> InitialController? { return UIStoryboard(resource: self).instantiateInitialViewController() as? InitialController } } +#endif diff --git a/Library/UIKit/TypedStoryboardSegueInfo+UIStoryboardSegue.swift b/Library/UIKit/TypedStoryboardSegueInfo+UIStoryboardSegue.swift index aa5104b..894c8c2 100644 --- a/Library/UIKit/TypedStoryboardSegueInfo+UIStoryboardSegue.swift +++ b/Library/UIKit/TypedStoryboardSegueInfo+UIStoryboardSegue.swift @@ -3,9 +3,11 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit @@ -15,19 +17,21 @@ extension TypedStoryboardSegueInfo { - returns: A newly initialized TypedStoryboardSegueInfo object or nil. */ - public init?<SegueIdentifier: StoryboardSegueIdentifierType where SegueIdentifier.SegueType == Segue, SegueIdentifier.SourceType == Source, SegueIdentifier.DestinationType == Destination>(segueIdentifier: SegueIdentifier, segue: UIStoryboardSegue) { + public init?<SegueIdentifier: StoryboardSegueIdentifierType>(segueIdentifier: SegueIdentifier, segue: UIStoryboardSegue) + where SegueIdentifier.SegueType == Segue, SegueIdentifier.SourceType == Source, SegueIdentifier.DestinationType == Destination + { guard let identifier = segue.identifier, - sourceViewController = segue.sourceViewController as? SegueIdentifier.SourceType, - destinationViewController = segue.destinationViewController as? SegueIdentifier.DestinationType, - segue = segue as? SegueIdentifier.SegueType - where identifier == segueIdentifier.identifier - else { - return nil + let source = segue.source as? SegueIdentifier.SourceType, + let destination = segue.destination as? SegueIdentifier.DestinationType, + let segue = segue as? SegueIdentifier.SegueType, identifier == segueIdentifier.identifier + else { + return nil } self.segue = segue self.identifier = identifier - self.sourceViewController = sourceViewController - self.destinationViewController = destinationViewController + self.source = source + self.destination = destination } } +#endif diff --git a/Library/UIKit/UICollectionView+ReuseIdentifierProtocol.swift b/Library/UIKit/UICollectionView+ReuseIdentifierProtocol.swift index 9362e0a..ebac685 100644 --- a/Library/UIKit/UICollectionView+ReuseIdentifierProtocol.swift +++ b/Library/UIKit/UICollectionView+ReuseIdentifierProtocol.swift @@ -3,9 +3,11 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit @@ -18,8 +20,10 @@ public extension UICollectionView { - returns: A subclass of UICollectionReusableView or nil if the cast fails. */ - public func dequeueReusableCellWithReuseIdentifier<Identifier: ReuseIdentifierType where Identifier.ReusableType: UICollectionReusableView>(identifier: Identifier, forIndexPath indexPath: NSIndexPath) -> Identifier.ReusableType? { - return dequeueReusableCellWithReuseIdentifier(identifier.identifier, forIndexPath: indexPath) as? Identifier.ReusableType + func dequeueReusableCell<Identifier: ReuseIdentifierType>(withReuseIdentifier identifier: Identifier, for indexPath: IndexPath) -> Identifier.ReusableType? + where Identifier.ReusableType: UICollectionReusableView + { + return dequeueReusableCell(withReuseIdentifier: identifier.identifier, for: indexPath) as? Identifier.ReusableType } /** @@ -31,17 +35,10 @@ public extension UICollectionView { - returns: A subclass of UICollectionReusableView or nil if the cast fails. */ - public func dequeueReusableSupplementaryViewOfKind<Identifier: ReuseIdentifierType where Identifier.ReusableType: UICollectionReusableView>(elementKind: String, withReuseIdentifier identifier: Identifier, forIndexPath indexPath: NSIndexPath) -> Identifier.ReusableType? { - return dequeueReusableSupplementaryViewOfKind(elementKind, withReuseIdentifier: identifier.identifier, forIndexPath: indexPath) as? Identifier.ReusableType - } - - /** - Register a serie of R.nib.* for use in creating new collection view cells. - - - parameter nibResources: An array of nib resources (R.nib.*) each containing a object of type UICollectionViewCell that has a reuse identifier - */ - public func registerNibs<Resource: NibResourceType where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionViewCell>(nibResources: [Resource]) { - nibResources.forEach(registerNib) + func dequeueReusableSupplementaryView<Identifier: ReuseIdentifierType>(ofKind elementKind: String, withReuseIdentifier identifier: Identifier, for indexPath: IndexPath) -> Identifier.ReusableType? + where Identifier.ReusableType: UICollectionReusableView + { + return dequeueReusableSupplementaryView(ofKind: elementKind, withReuseIdentifier: identifier.identifier, for: indexPath) as? Identifier.ReusableType } /** @@ -49,17 +46,10 @@ public extension UICollectionView { - parameter nibResource: A nib resource (R.nib.*) containing a object of type UICollectionViewCell that has a reuse identifier */ - public func registerNib<Resource: NibResourceType where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionViewCell>(nibResource: Resource) { - registerNib(UINib(resource: nibResource), forCellWithReuseIdentifier: nibResource.identifier) - } - - /** - Register a serie of R.nib.* for use in creating supplementary views for the collection view. - - - parameter nibResources: An array of nib resources (R.nib.*) each containing a object of type UICollectionReusableView. that has a reuse identifier - */ - public func registerNibs<Resource: NibResourceType where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionReusableView>(nibResources: [Resource], forSupplementaryViewOfKind kind: String) { - nibResources.forEach { self.registerNib($0, forSupplementaryViewOfKind: kind) } + func register<Resource: NibResourceType & ReuseIdentifierType>(_ nibResource: Resource) + where Resource.ReusableType: UICollectionViewCell + { + register(UINib(resource: nibResource), forCellWithReuseIdentifier: nibResource.identifier) } /** @@ -67,7 +57,10 @@ public extension UICollectionView { - parameter nibResource: A nib resource (R.nib.*) containing a object of type UICollectionReusableView. that has a reuse identifier */ - public func registerNib<Resource: NibResourceType where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionReusableView>(nibResource: Resource, forSupplementaryViewOfKind kind: String) { - registerNib(UINib(resource: nibResource), forSupplementaryViewOfKind: kind, withReuseIdentifier: nibResource.identifier) + func register<Resource: NibResourceType & ReuseIdentifierType>(_ nibResource: Resource, forSupplementaryViewOfKind kind: String) + where Resource.ReusableType: UICollectionReusableView + { + register(UINib(resource: nibResource), forSupplementaryViewOfKind: kind, withReuseIdentifier: nibResource.identifier) } } +#endif diff --git a/Library/UIKit/UIColor+ColorResource.swift b/Library/UIKit/UIColor+ColorResource.swift new file mode 100644 index 0000000..6ee764d --- /dev/null +++ b/Library/UIKit/UIColor+ColorResource.swift @@ -0,0 +1,43 @@ +// +// UIColor+ColorResource.swift +// R.swift.Library +// +// Created by Tom Lokhorst on 2017-06-06. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License +// + +import UIKit + +@available(iOS 11.0, *) +@available(tvOS 11.0, *) +public extension UIColor { + + #if os(iOS) || os(tvOS) + /** + Returns the color from this resource (R.color.*) that is compatible with the trait collection. + + - parameter resource: The resource you want the image of (R.color.*) + - parameter traitCollection: Traits that describe the desired color to retrieve, pass nil to use traits that describe the main screen. + + - returns: A color that exactly or best matches the desired traits with the given resource (R.color.*), or nil if no suitable color was found. + */ + convenience init?(resource: ColorResourceType, compatibleWith traitCollection: UITraitCollection? = nil) { + self.init(named: resource.name, in: resource.bundle, compatibleWith: traitCollection) + } + #endif + + #if os(watchOS) + /** + Returns the color from this resource (R.color.*) that is compatible with the trait collection. + + - parameter resource: The resource you want the image of (R.color.*) + + - returns: A color that exactly or best matches the desired traits with the given resource (R.color.*), or nil if no suitable color was found. + */ + @available(watchOSApplicationExtension 4.0, *) + convenience init?(resource: ColorResourceType) { + self.init(named: resource.name) + } + #endif +} diff --git a/Library/UIKit/UIFont+FontResource.swift b/Library/UIKit/UIFont+FontResource.swift index c644c0b..cadc6c9 100644 --- a/Library/UIKit/UIFont+FontResource.swift +++ b/Library/UIKit/UIFont+FontResource.swift @@ -3,7 +3,8 @@ // R.swift.Library // // Created by Mathijs Kadijk on 06-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import Foundation @@ -18,7 +19,7 @@ public extension UIFont { - returns: A font object of the specified font resource and size. */ - public convenience init?(resource: FontResourceType, size: CGFloat) { + convenience init?(resource: FontResourceType, size: CGFloat) { self.init(name: resource.fontName, size: size) } } diff --git a/Library/UIKit/UIImage+ImageResource.swift b/Library/UIKit/UIImage+ImageResource.swift index cac64dc..c764814 100644 --- a/Library/UIKit/UIImage+ImageResource.swift +++ b/Library/UIKit/UIImage+ImageResource.swift @@ -3,12 +3,15 @@ // R.swift.Library // // Created by Mathijs Kadijk on 11-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // import UIKit public extension UIImage { + + #if os(iOS) || os(tvOS) /** Returns the image from this resource (R.image.*) that is compatible with the trait collection. @@ -17,7 +20,21 @@ public extension UIImage { - returns: An image that exactly or best matches the desired traits with the given resource (R.image.*), or nil if no suitable image was found. */ - public convenience init?(resource: ImageResourceType, compatibleWithTraitCollection traitCollection: UITraitCollection? = nil) { - self.init(named: resource.name, inBundle: resource.bundle, compatibleWithTraitCollection: traitCollection) + convenience init?(resource: ImageResourceType, compatibleWith traitCollection: UITraitCollection? = nil) { + self.init(named: resource.name, in: resource.bundle, compatibleWith: traitCollection) + } + #endif + + #if os(watchOS) + /** + Returns the image from this resource (R.image.*) that is compatible with the trait collection. + + - parameter resource: The resource you want the image of (R.image.*) + + - returns: An image that exactly or best matches the desired traits with the given resource (R.image.*), or nil if no suitable image was found. + */ + convenience init?(resource: ImageResourceType) { + self.init(named: resource.name) } + #endif } diff --git a/Library/UIKit/UINib+NibResource.swift b/Library/UIKit/UINib+NibResource.swift index 3e73baa..8aaa0fd 100644 --- a/Library/UIKit/UINib+NibResource.swift +++ b/Library/UIKit/UINib+NibResource.swift @@ -3,9 +3,11 @@ // R.swift.Library // // Created by Mathijs Kadijk on 08-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import UIKit public extension UINib { @@ -16,7 +18,8 @@ public extension UINib { - returns: The initialized UINib object. An exception is thrown if there were errors during initialization or the nib file could not be located. */ - public convenience init(resource: NibResourceType) { + convenience init(resource: NibResourceType) { self.init(nibName: resource.name, bundle: resource.bundle) } } +#endif diff --git a/Library/UIKit/UIStoryboard+StoryboardResource.swift b/Library/UIKit/UIStoryboard+StoryboardResource.swift index 8252eea..1ed8015 100644 --- a/Library/UIKit/UIStoryboard+StoryboardResource.swift +++ b/Library/UIKit/UIStoryboard+StoryboardResource.swift @@ -3,9 +3,11 @@ // R.swift.Library // // Created by Mathijs Kadijk on 07-01-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import UIKit public extension UIStoryboard { @@ -16,7 +18,8 @@ public extension UIStoryboard { - returns: A storyboard object for the specified file. If no storyboard resource file matching name exists, an exception is thrown with description: `Could not find a storyboard named 'XXXXXX' in bundle....` */ - public convenience init(resource: StoryboardResourceType) { + convenience init(resource: StoryboardResourceType) { self.init(name: resource.name, bundle: resource.bundle) } } +#endif diff --git a/Library/UIKit/UIStoryboard+StoryboardViewControllerResource.swift b/Library/UIKit/UIStoryboard+StoryboardViewControllerResource.swift index ac754ed..75c61f0 100644 --- a/Library/UIKit/UIStoryboard+StoryboardViewControllerResource.swift +++ b/Library/UIKit/UIStoryboard+StoryboardViewControllerResource.swift @@ -3,9 +3,11 @@ // R.swift.Library // // Created by Mathijs Kadijk on 13-03-16. -// Copyright © 2016 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit @@ -17,7 +19,8 @@ public extension UIStoryboard { - returns: The view controller corresponding to the specified resource (R.storyboard.*.*). If no view controller is associated, this method throws an exception. */ - public func instantiateViewController<ViewControllerResource: StoryboardViewControllerResourceType>(resource: ViewControllerResource) -> ViewControllerResource.ViewControllerType? { - return instantiateViewControllerWithIdentifier(resource.identifier) as? ViewControllerResource.ViewControllerType + func instantiateViewController<ViewControllerResource: StoryboardViewControllerResourceType>(withResource resource: ViewControllerResource) -> ViewControllerResource.ViewControllerType? { + return self.instantiateViewController(withIdentifier: resource.identifier) as? ViewControllerResource.ViewControllerType } } +#endif diff --git a/Library/UIKit/UITableView+ReuseIdentifierProtocol.swift b/Library/UIKit/UITableView+ReuseIdentifierProtocol.swift index 5334939..aa6589e 100644 --- a/Library/UIKit/UITableView+ReuseIdentifierProtocol.swift +++ b/Library/UIKit/UITableView+ReuseIdentifierProtocol.swift @@ -3,9 +3,11 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit @@ -20,21 +22,17 @@ public extension UITableView { - precondition: You must register a class or nib file using the registerNib: or registerClass:forCellReuseIdentifier: method before calling this method. */ - public func dequeueReusableCellWithIdentifier<Identifier: ReuseIdentifierType where Identifier.ReusableType: UITableViewCell>(identifier: Identifier, forIndexPath indexPath: NSIndexPath) -> Identifier.ReusableType? { - return dequeueReusableCellWithIdentifier(identifier.identifier, forIndexPath: indexPath) as? Identifier.ReusableType + func dequeueReusableCell<Identifier: ReuseIdentifierType>(withIdentifier identifier: Identifier, for indexPath: IndexPath) -> Identifier.ReusableType? + where Identifier.ReusableType: UITableViewCell + { + return dequeueReusableCell(withIdentifier: identifier.identifier, for: indexPath) as? Identifier.ReusableType } - /** - Returns a typed reusable table-view cell object for the specified reuse identifier and adds it to the table. - - - parameter identifier: A R.reuseIdentifier.* value identifying the cell object to be reused. - - - returns: The UITableViewCell subclass with the associated reuse identifier or nil if it couldn't be casted correctly. - - - precondition: You must register a class or nib file using the registerNib: or registerClass:forCellReuseIdentifier: method before calling this method. - */ - public func dequeueReusableCellWithIdentifier<Identifier: ReuseIdentifierType where Identifier.ReusableType: UITableViewCell>(identifier: Identifier) -> Identifier.ReusableType? { - return dequeueReusableCellWithIdentifier(identifier.identifier) as? Identifier.ReusableType + @available(*, unavailable, message: "Use dequeueReusableCell(withIdentifier:for:) instead") + func dequeueReusableCell<Identifier: ReuseIdentifierType>(withIdentifier identifier: Identifier) -> Identifier.ReusableType? + where Identifier.ReusableType: UITableViewCell + { + fatalError() } /** @@ -44,17 +42,10 @@ public extension UITableView { - returns: A UITableViewHeaderFooterView object with the associated identifier or nil if no such object exists in the reusable view queue or if it couldn't be cast correctly. */ - public func dequeueReusableHeaderFooterViewWithIdentifier<Identifier: ReuseIdentifierType where Identifier.ReusableType: UITableViewCell>(identifier: Identifier) -> Identifier.ReusableType? { - return dequeueReusableHeaderFooterViewWithIdentifier(identifier.identifier) as? Identifier.ReusableType - } - - /** - Register an array of R.nib.*, each containing a cell, with the table view under it's contained identifier. - - - parameter nibResources: Array of nib resources (R.nib.*) each containing a table view cell that has a reuse identifier - */ - public func registerNibs<Resource: NibResourceType where Resource: ReuseIdentifierType, Resource.ReusableType: UITableViewCell>(nibResources: [Resource]) { - nibResources.forEach(registerNib) + func dequeueReusableHeaderFooterView<Identifier: ReuseIdentifierType>(withIdentifier identifier: Identifier) -> Identifier.ReusableType? + where Identifier.ReusableType: UITableViewHeaderFooterView + { + return dequeueReusableHeaderFooterView(withIdentifier: identifier.identifier) as? Identifier.ReusableType } /** @@ -62,8 +53,8 @@ public extension UITableView { - parameter nibResource: A nib resource (R.nib.*) containing a table view cell that has a reuse identifier */ - public func registerNib<Resource: NibResourceType where Resource: ReuseIdentifierType, Resource.ReusableType: UITableViewCell>(nibResource: Resource) { - registerNib(UINib(resource: nibResource), forCellReuseIdentifier: nibResource.identifier) + func register<Resource: NibResourceType & ReuseIdentifierType>(_ nibResource: Resource) where Resource.ReusableType: UITableViewCell { + register(UINib(resource: nibResource), forCellReuseIdentifier: nibResource.identifier) } /** @@ -71,7 +62,8 @@ public extension UITableView { - parameter nibResource: A nib resource (R.nib.*) containing a view that has a reuse identifier */ - public func registerNibForHeaderFooterView<Resource: NibResourceType where Resource: ReuseIdentifierType, Resource.ReusableType: UIView>(nibResource: Resource) { - registerNib(UINib(resource: nibResource), forHeaderFooterViewReuseIdentifier: nibResource.identifier) + func registerHeaderFooterView<Resource: NibResourceType>(_ nibResource: Resource) where Resource: ReuseIdentifierType, Resource.ReusableType: UIView { + register(UINib(resource: nibResource), forHeaderFooterViewReuseIdentifier: nibResource.identifier) } } +#endif diff --git a/Library/UIKit/UIViewController+NibResource.swift b/Library/UIKit/UIViewController+NibResource.swift index 93afbb2..717bd09 100644 --- a/Library/UIKit/UIViewController+NibResource.swift +++ b/Library/UIKit/UIViewController+NibResource.swift @@ -3,9 +3,11 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit @@ -17,7 +19,8 @@ public extension UIViewController { - returns: A newly initialized UIViewController object. */ - public convenience init(nib: NibResourceType) { + convenience init(nib: NibResourceType) { self.init(nibName: nib.name, bundle: nib.bundle) } } +#endif diff --git a/Library/UIKit/UIViewController+StoryboardSegueIdentifierProtocol.swift b/Library/UIKit/UIViewController+StoryboardSegueIdentifierProtocol.swift index f17f9b3..e7aff99 100644 --- a/Library/UIKit/UIViewController+StoryboardSegueIdentifierProtocol.swift +++ b/Library/UIKit/UIViewController+StoryboardSegueIdentifierProtocol.swift @@ -3,17 +3,19 @@ // R.swift Library // // Created by Mathijs Kadijk on 06-12-15. -// Copyright © 2015 Mathijs Kadijk. All rights reserved. +// From: https://github.com/mac-cain13/R.swift.Library +// License: MIT License // +#if !os(watchOS) import Foundation import UIKit public protocol SeguePerformerType { - func performSegueWithIdentifier(identifier: String, sender: AnyObject?) + func performSegue(withIdentifier identifier: String, sender: Any?) } -extension UIViewController: SeguePerformerType { } +extension UIViewController: SeguePerformerType {} public extension SeguePerformerType { /** @@ -22,10 +24,8 @@ public extension SeguePerformerType { - parameter sender: The object that you want to use to initiate the segue. This object is made available for informational purposes during the actual segue. - SeeAlso: Library for typed block based segues: [tomlokhorst/SegueManager](https://github.com/tomlokhorst/SegueManager) */ - public func performSegueWithIdentifier<Segue, Destination>( - identifier: StoryboardSegueIdentifier<Segue, Self, Destination>, - sender: AnyObject?) { - performSegueWithIdentifier(identifier.identifier, sender: sender) + func performSegue<Segue, Destination>(withIdentifier identifier: StoryboardSegueIdentifier<Segue, Self, Destination>, sender: Any?) { + performSegue(withIdentifier: identifier.identifier, sender: sender) } } @@ -34,7 +34,8 @@ public extension StoryboardSegue where Source : UIViewController { Performs this segue on the source view controller - parameter sender: The object that you want to use to initiate the segue. This object is made available for informational purposes during the actual segue. */ - public func performSegue(sender: AnyObject? = nil) { - sourceViewController.performSegueWithIdentifier(identifier.identifier, sender: sender) + func performSegue(sender: Any? = nil) { + source.performSegue(withIdentifier: identifier.identifier, sender: sender) } } +#endif diff --git a/LibraryTests/RswiftTests.swift b/LibraryTests/RswiftTests.swift index 899ff73..d7e734e 100644 --- a/LibraryTests/RswiftTests.swift +++ b/LibraryTests/RswiftTests.swift @@ -28,7 +28,7 @@ class RswiftTests: XCTestCase { func testPerformanceExample() { // This is an example of a performance test case. - self.measureBlock { + self.measure { // Put the code you want to measure the time of here. } } diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..a7e2267 --- /dev/null +++ b/Package.swift @@ -0,0 +1,19 @@ +// swift-tools-version:5.0 + +import PackageDescription + +let package = Package( + name: "R.swift.Library", + platforms: [ + .iOS(.v9), + .tvOS(.v9), + .watchOS(.v2), + ], + products: [ + .library(name: "Rswift", targets: ["Rswift"]), + .library(name: "RswiftDynamic", type: .dynamic, targets: ["Rswift"]) + ], + targets: [ + .target(name: "Rswift", path: "Library") + ] +) diff --git a/R.swift.Library.podspec b/R.swift.Library.podspec index ae933b4..9c9a766 100644 --- a/R.swift.Library.podspec +++ b/R.swift.Library.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "R.swift.Library" - spec.version = "1.2.0" + spec.version = ENV['POD_VERSION'] spec.license = "MIT" spec.summary = "Companion library for R.swift, featuring types used to type resources" @@ -17,11 +17,17 @@ Pod::Spec.new do |spec| spec.requires_arc = true spec.source = { :git => "https://github.com/mac-cain13/R.swift.Library.git", :tag => "v#{spec.version}" } + spec.swift_version = "5.1" - spec.ios.deployment_target = '8.0' - spec.tvos.deployment_target = '9.0' + spec.pod_target_xcconfig = { 'APPLICATION_EXTENSION_API_ONLY' => 'YES' } + + spec.ios.deployment_target = '11.0' + spec.ios.source_files = "Library/**/*.swift" + spec.tvos.deployment_target = '11.0' + spec.tvos.source_files = "Library/**/*.swift" + spec.watchos.deployment_target = '4.0' + spec.watchos.source_files = ["Library/Core/*.swift", "Library/Foundation/*.swift"] spec.module_name = "Rswift" - spec.source_files = "Library/**/*.swift" end diff --git a/R.swift.Library.xcodeproj/project.pbxproj b/R.swift.Library.xcodeproj/project.pbxproj index 7eb9308..b1ea7f0 100644 --- a/R.swift.Library.xcodeproj/project.pbxproj +++ b/R.swift.Library.xcodeproj/project.pbxproj @@ -7,6 +7,23 @@ objects = { /* Begin PBXBuildFile section */ + 2F5FBC4821355AC400A83A69 /* ColorResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E22D43661C95EEA100692FFF /* ColorResource.swift */; }; + 2F5FBC4A21355ADB00A83A69 /* Bundle+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56DC7721C42B65C00623437 /* Bundle+FileResource.swift */; }; + 2F5FBC4B21355ADB00A83A69 /* Data+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20F34A61C92B44100338F81 /* Data+FileResource.swift */; }; + 2F5FBC4C21355ADF00A83A69 /* FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E435AC1C3D00770091090C /* FileResource.swift */; }; + 2F5FBC4D21355ADF00A83A69 /* FontResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57E1EB21C3D762300DDA68F /* FontResource.swift */; }; + 2F5FBC4E21355ADF00A83A69 /* Identifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D543F9BA1C1497EB00D16A0C /* Identifier.swift */; }; + 2F5FBC4F21355ADF00A83A69 /* ImageResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553F5841C44157000885232 /* ImageResource.swift */; }; + 2F5FBC5021355ADF00A83A69 /* NibResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D543F9C01C14984300D16A0C /* NibResource.swift */; }; + 2F5FBC5121355ADF00A83A69 /* ReuseIdentifierProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D543F9BC1C14980600D16A0C /* ReuseIdentifierProtocol.swift */; }; + 2F5FBC5221355ADF00A83A69 /* StoryboardResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57E1EB61C3E482A00DDA68F /* StoryboardResource.swift */; }; + 2F5FBC5321355ADF00A83A69 /* StoryboardSegueIdentifierProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D543F9BE1C14983100D16A0C /* StoryboardSegueIdentifierProtocol.swift */; }; + 2F5FBC5421355ADF00A83A69 /* StoryboardViewControllerResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D51335261C959DF20014C9D4 /* StoryboardViewControllerResource.swift */; }; + 2F5FBC5521355ADF00A83A69 /* StringResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E250BE961CCBF60300CC71DE /* StringResource.swift */; }; + 2F5FBC5621355ADF00A83A69 /* Validatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D53F19231C229D7200AE2FAD /* Validatable.swift */; }; + 2F5FBC5821355B0200A83A69 /* UIColor+ColorResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CA68EE1EE75992009C4DB4 /* UIColor+ColorResource.swift */; }; + 2F5FBC5921355B0200A83A69 /* UIFont+FontResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57E1EB41C3D774000DDA68F /* UIFont+FontResource.swift */; }; + 2F5FBC5A21355B0200A83A69 /* UIImage+ImageResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553F5861C44170E00885232 /* UIImage+ImageResource.swift */; }; 806E699C1C42BD9C00DE3A8B /* Rswift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 806E69921C42BD9C00DE3A8B /* Rswift.framework */; }; 806E69A91C42BDDA00DE3A8B /* FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E435AC1C3D00770091090C /* FileResource.swift */; }; 806E69AA1C42BDDA00DE3A8B /* FontResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57E1EB21C3D762300DDA68F /* FontResource.swift */; }; @@ -31,7 +48,7 @@ D51335291C95A79B0014C9D4 /* UIStoryboard+StoryboardViewControllerResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D51335281C95A79B0014C9D4 /* UIStoryboard+StoryboardViewControllerResource.swift */; }; D513352A1C95B7510014C9D4 /* StoryboardViewControllerResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D51335261C959DF20014C9D4 /* StoryboardViewControllerResource.swift */; }; D513352B1C95B7620014C9D4 /* UIStoryboard+StoryboardViewControllerResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D51335281C95A79B0014C9D4 /* UIStoryboard+StoryboardViewControllerResource.swift */; }; - D513352C1C95C61E0014C9D4 /* NSData+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20F34A61C92B44100338F81 /* NSData+FileResource.swift */; }; + D513352C1C95C61E0014C9D4 /* Data+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20F34A61C92B44100338F81 /* Data+FileResource.swift */; }; D53F19241C229D7200AE2FAD /* Validatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D53F19231C229D7200AE2FAD /* Validatable.swift */; }; D543F9BB1C1497EB00D16A0C /* Identifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D543F9BA1C1497EB00D16A0C /* Identifier.swift */; }; D543F9BD1C14980600D16A0C /* ReuseIdentifierProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D543F9BC1C14980600D16A0C /* ReuseIdentifierProtocol.swift */; }; @@ -45,9 +62,9 @@ D553F5851C44157000885232 /* ImageResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553F5841C44157000885232 /* ImageResource.swift */; }; D553F5871C44170E00885232 /* UIImage+ImageResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553F5861C44170E00885232 /* UIImage+ImageResource.swift */; }; D5588CAB1C3F9DBE00912F97 /* UINib+NibResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5588CAA1C3F9DBE00912F97 /* UINib+NibResource.swift */; }; - D56DC7731C42B65C00623437 /* NSBundle+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56DC7721C42B65C00623437 /* NSBundle+FileResource.swift */; }; + D56DC7731C42B65C00623437 /* Bundle+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56DC7721C42B65C00623437 /* Bundle+FileResource.swift */; }; D5728B311C4D541200E38168 /* ImageResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553F5841C44157000885232 /* ImageResource.swift */; }; - D5728B321C4D541500E38168 /* NSBundle+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56DC7721C42B65C00623437 /* NSBundle+FileResource.swift */; }; + D5728B321C4D541500E38168 /* Bundle+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56DC7721C42B65C00623437 /* Bundle+FileResource.swift */; }; D5728B331C4D541D00E38168 /* UIImage+ImageResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553F5861C44170E00885232 /* UIImage+ImageResource.swift */; }; D5728B341C4D542300E38168 /* Rswift.h in Headers */ = {isa = PBXBuildFile; fileRef = D59246511C117A55007F94C7 /* Rswift.h */; settings = {ATTRIBUTES = (Public, ); }; }; D57E1EB31C3D762300DDA68F /* FontResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57E1EB21C3D762300DDA68F /* FontResource.swift */; }; @@ -60,9 +77,13 @@ D592465E1C117A55007F94C7 /* RswiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D592465D1C117A55007F94C7 /* RswiftTests.swift */; }; D5E435A91C3CFB460091090C /* NibResource+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E435A81C3CFB460091090C /* NibResource+UIKit.swift */; }; D5E435AD1C3D00770091090C /* FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E435AC1C3D00770091090C /* FileResource.swift */; }; - E20F34A71C92B44100338F81 /* NSData+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20F34A61C92B44100338F81 /* NSData+FileResource.swift */; }; + E20F34A71C92B44100338F81 /* Data+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20F34A61C92B44100338F81 /* Data+FileResource.swift */; }; E22D43671C95EEA100692FFF /* ColorResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E22D43661C95EEA100692FFF /* ColorResource.swift */; }; E24720CA1C96B4D100DF291D /* ColorResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E22D43661C95EEA100692FFF /* ColorResource.swift */; }; + E250BE971CCBF60300CC71DE /* StringResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E250BE961CCBF60300CC71DE /* StringResource.swift */; }; + E250BE991CCBF7E900CC71DE /* StringResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E250BE961CCBF60300CC71DE /* StringResource.swift */; }; + E2CA68EF1EE75992009C4DB4 /* UIColor+ColorResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CA68EE1EE75992009C4DB4 /* UIColor+ColorResource.swift */; }; + E2CA68F21EE75A49009C4DB4 /* UIColor+ColorResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CA68EE1EE75992009C4DB4 /* UIColor+ColorResource.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -83,6 +104,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 2F5FBC4021355A1400A83A69 /* Rswift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Rswift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 806E69921C42BD9C00DE3A8B /* Rswift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Rswift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 806E699B1C42BD9C00DE3A8B /* RswiftTests-tvOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RswiftTests-tvOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; D51335261C959DF20014C9D4 /* StoryboardViewControllerResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardViewControllerResource.swift; sourceTree = "<group>"; }; @@ -100,7 +122,7 @@ D553F5841C44157000885232 /* ImageResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageResource.swift; sourceTree = "<group>"; }; D553F5861C44170E00885232 /* UIImage+ImageResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+ImageResource.swift"; sourceTree = "<group>"; }; D5588CAA1C3F9DBE00912F97 /* UINib+NibResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINib+NibResource.swift"; sourceTree = "<group>"; }; - D56DC7721C42B65C00623437 /* NSBundle+FileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSBundle+FileResource.swift"; sourceTree = "<group>"; }; + D56DC7721C42B65C00623437 /* Bundle+FileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Bundle+FileResource.swift"; sourceTree = "<group>"; }; D57E1EB21C3D762300DDA68F /* FontResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontResource.swift; sourceTree = "<group>"; }; D57E1EB41C3D774000DDA68F /* UIFont+FontResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIFont+FontResource.swift"; sourceTree = "<group>"; }; D57E1EB61C3E482A00DDA68F /* StoryboardResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardResource.swift; sourceTree = "<group>"; }; @@ -114,11 +136,20 @@ D592465F1C117A55007F94C7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; D5E435A81C3CFB460091090C /* NibResource+UIKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NibResource+UIKit.swift"; sourceTree = "<group>"; }; D5E435AC1C3D00770091090C /* FileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileResource.swift; sourceTree = "<group>"; }; - E20F34A61C92B44100338F81 /* NSData+FileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSData+FileResource.swift"; sourceTree = "<group>"; }; + E20F34A61C92B44100338F81 /* Data+FileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+FileResource.swift"; sourceTree = "<group>"; }; E22D43661C95EEA100692FFF /* ColorResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorResource.swift; sourceTree = "<group>"; }; + E250BE961CCBF60300CC71DE /* StringResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringResource.swift; sourceTree = "<group>"; }; + E2CA68EE1EE75992009C4DB4 /* UIColor+ColorResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+ColorResource.swift"; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 2F5FBC3D21355A1400A83A69 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 806E698E1C42BD9C00DE3A8B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -159,14 +190,15 @@ D57E1EB81C3E4C1A00DDA68F /* StoryboardResourceWithInitialController+UIKit.swift */, D543F9CE1C149C0A00D16A0C /* TypedStoryboardSegueInfo+UIStoryboardSegue.swift */, D543F9C51C14992000D16A0C /* UICollectionView+ReuseIdentifierProtocol.swift */, + E2CA68EE1EE75992009C4DB4 /* UIColor+ColorResource.swift */, D57E1EB41C3D774000DDA68F /* UIFont+FontResource.swift */, D553F5861C44170E00885232 /* UIImage+ImageResource.swift */, D5588CAA1C3F9DBE00912F97 /* UINib+NibResource.swift */, D57E1EBA1C3E4C4300DDA68F /* UIStoryboard+StoryboardResource.swift */, + D51335281C95A79B0014C9D4 /* UIStoryboard+StoryboardViewControllerResource.swift */, D543F9C31C1498FB00D16A0C /* UITableView+ReuseIdentifierProtocol.swift */, D543F9C71C14995800D16A0C /* UIViewController+NibResource.swift */, D543F9C91C14998800D16A0C /* UIViewController+StoryboardSegueIdentifierProtocol.swift */, - D51335281C95A79B0014C9D4 /* UIStoryboard+StoryboardViewControllerResource.swift */, ); path = UIKit; sourceTree = "<group>"; @@ -184,6 +216,7 @@ D57E1EB61C3E482A00DDA68F /* StoryboardResource.swift */, D543F9BE1C14983100D16A0C /* StoryboardSegueIdentifierProtocol.swift */, D51335261C959DF20014C9D4 /* StoryboardViewControllerResource.swift */, + E250BE961CCBF60300CC71DE /* StringResource.swift */, D53F19231C229D7200AE2FAD /* Validatable.swift */, ); path = Core; @@ -192,8 +225,8 @@ D56DC7711C42B62E00623437 /* Foundation */ = { isa = PBXGroup; children = ( - D56DC7721C42B65C00623437 /* NSBundle+FileResource.swift */, - E20F34A61C92B44100338F81 /* NSData+FileResource.swift */, + D56DC7721C42B65C00623437 /* Bundle+FileResource.swift */, + E20F34A61C92B44100338F81 /* Data+FileResource.swift */, ); path = Foundation; sourceTree = "<group>"; @@ -205,7 +238,10 @@ D592465C1C117A55007F94C7 /* LibraryTests */, D592464F1C117A55007F94C7 /* Products */, ); + indentWidth = 2; sourceTree = "<group>"; + tabWidth = 2; + usesTabs = 0; }; D592464F1C117A55007F94C7 /* Products */ = { isa = PBXGroup; @@ -214,6 +250,7 @@ D59246581C117A55007F94C7 /* RswiftTests-iOS.xctest */, 806E69921C42BD9C00DE3A8B /* Rswift.framework */, 806E699B1C42BD9C00DE3A8B /* RswiftTests-tvOS.xctest */, + 2F5FBC4021355A1400A83A69 /* Rswift.framework */, ); name = Products; sourceTree = "<group>"; @@ -242,6 +279,13 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + 2F5FBC3B21355A1400A83A69 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 806E698F1C42BD9C00DE3A8B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -261,6 +305,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 2F5FBC3F21355A1400A83A69 /* Rswift-watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2F5FBC4721355A1400A83A69 /* Build configuration list for PBXNativeTarget "Rswift-watchOS" */; + buildPhases = ( + 2F5FBC3B21355A1400A83A69 /* Headers */, + 2F5FBC3C21355A1400A83A69 /* Sources */, + 2F5FBC3D21355A1400A83A69 /* Frameworks */, + 2F5FBC3E21355A1400A83A69 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Rswift-watchOS"; + productName = "Rswift-watchOS"; + productReference = 2F5FBC4021355A1400A83A69 /* Rswift.framework */; + productType = "com.apple.product-type.framework"; + }; 806E69911C42BD9C00DE3A8B /* Rswift-tvOS */ = { isa = PBXNativeTarget; buildConfigurationList = 806E69A31C42BD9C00DE3A8B /* Build configuration list for PBXNativeTarget "Rswift-tvOS" */; @@ -340,20 +402,29 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0710; + LastUpgradeCheck = 1100; ORGANIZATIONNAME = "Mathijs Kadijk"; TargetAttributes = { + 2F5FBC3F21355A1400A83A69 = { + CreatedOnToolsVersion = 10.0; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + }; 806E69911C42BD9C00DE3A8B = { CreatedOnToolsVersion = 7.2; + LastSwiftMigration = 1020; }; 806E699A1C42BD9C00DE3A8B = { CreatedOnToolsVersion = 7.2; + LastSwiftMigration = 1020; }; D592464D1C117A55007F94C7 = { CreatedOnToolsVersion = 7.1.1; + LastSwiftMigration = 1020; }; D59246571C117A55007F94C7 = { CreatedOnToolsVersion = 7.1.1; + LastSwiftMigration = 1020; }; }; }; @@ -362,6 +433,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = D59246441C117A54007F94C7; @@ -373,11 +445,19 @@ D59246571C117A55007F94C7 /* RswiftTests-iOS */, 806E69911C42BD9C00DE3A8B /* Rswift-tvOS */, 806E699A1C42BD9C00DE3A8B /* RswiftTests-tvOS */, + 2F5FBC3F21355A1400A83A69 /* Rswift-watchOS */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 2F5FBC3E21355A1400A83A69 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 806E69901C42BD9C00DE3A8B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -409,14 +489,39 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 2F5FBC3C21355A1400A83A69 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2F5FBC4F21355ADF00A83A69 /* ImageResource.swift in Sources */, + 2F5FBC5421355ADF00A83A69 /* StoryboardViewControllerResource.swift in Sources */, + 2F5FBC4D21355ADF00A83A69 /* FontResource.swift in Sources */, + 2F5FBC5A21355B0200A83A69 /* UIImage+ImageResource.swift in Sources */, + 2F5FBC5921355B0200A83A69 /* UIFont+FontResource.swift in Sources */, + 2F5FBC4821355AC400A83A69 /* ColorResource.swift in Sources */, + 2F5FBC4C21355ADF00A83A69 /* FileResource.swift in Sources */, + 2F5FBC5221355ADF00A83A69 /* StoryboardResource.swift in Sources */, + 2F5FBC5521355ADF00A83A69 /* StringResource.swift in Sources */, + 2F5FBC4B21355ADB00A83A69 /* Data+FileResource.swift in Sources */, + 2F5FBC5021355ADF00A83A69 /* NibResource.swift in Sources */, + 2F5FBC5321355ADF00A83A69 /* StoryboardSegueIdentifierProtocol.swift in Sources */, + 2F5FBC4E21355ADF00A83A69 /* Identifier.swift in Sources */, + 2F5FBC4A21355ADB00A83A69 /* Bundle+FileResource.swift in Sources */, + 2F5FBC5821355B0200A83A69 /* UIColor+ColorResource.swift in Sources */, + 2F5FBC5121355ADF00A83A69 /* ReuseIdentifierProtocol.swift in Sources */, + 2F5FBC5621355ADF00A83A69 /* Validatable.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 806E698D1C42BD9C00DE3A8B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( D5728B311C4D541200E38168 /* ImageResource.swift in Sources */, D513352B1C95B7620014C9D4 /* UIStoryboard+StoryboardViewControllerResource.swift in Sources */, - D513352C1C95C61E0014C9D4 /* NSData+FileResource.swift in Sources */, + D513352C1C95C61E0014C9D4 /* Data+FileResource.swift in Sources */, 806E69AD1C42BDDA00DE3A8B /* ReuseIdentifierProtocol.swift in Sources */, + E2CA68F21EE75A49009C4DB4 /* UIColor+ColorResource.swift in Sources */, 806E69B61C42BDE000DE3A8B /* UINib+NibResource.swift in Sources */, 806E69AA1C42BDDA00DE3A8B /* FontResource.swift in Sources */, 806E69B41C42BDE000DE3A8B /* UICollectionView+ReuseIdentifierProtocol.swift in Sources */, @@ -434,7 +539,8 @@ 806E69AB1C42BDDA00DE3A8B /* Identifier.swift in Sources */, 806E69B01C42BDDA00DE3A8B /* Validatable.swift in Sources */, 806E69B31C42BDE000DE3A8B /* TypedStoryboardSegueInfo+UIStoryboardSegue.swift in Sources */, - D5728B321C4D541500E38168 /* NSBundle+FileResource.swift in Sources */, + E250BE991CCBF7E900CC71DE /* StringResource.swift in Sources */, + D5728B321C4D541500E38168 /* Bundle+FileResource.swift in Sources */, 806E69B91C42BDE000DE3A8B /* UITableView+ReuseIdentifierProtocol.swift in Sources */, 806E69AE1C42BDDA00DE3A8B /* StoryboardResource.swift in Sources */, 806E69A91C42BDDA00DE3A8B /* FileResource.swift in Sources */, @@ -463,8 +569,9 @@ D57E1EB91C3E4C1A00DDA68F /* StoryboardResourceWithInitialController+UIKit.swift in Sources */, D543F9BD1C14980600D16A0C /* ReuseIdentifierProtocol.swift in Sources */, D543F9C11C14984300D16A0C /* NibResource.swift in Sources */, + E2CA68EF1EE75992009C4DB4 /* UIColor+ColorResource.swift in Sources */, D553F5851C44157000885232 /* ImageResource.swift in Sources */, - E20F34A71C92B44100338F81 /* NSData+FileResource.swift in Sources */, + E20F34A71C92B44100338F81 /* Data+FileResource.swift in Sources */, D57E1EB51C3D774000DDA68F /* UIFont+FontResource.swift in Sources */, D5588CAB1C3F9DBE00912F97 /* UINib+NibResource.swift in Sources */, D553F5871C44170E00885232 /* UIImage+ImageResource.swift in Sources */, @@ -474,9 +581,10 @@ D543F9BF1C14983100D16A0C /* StoryboardSegueIdentifierProtocol.swift in Sources */, D543F9C81C14995800D16A0C /* UIViewController+NibResource.swift in Sources */, D5E435A91C3CFB460091090C /* NibResource+UIKit.swift in Sources */, + E250BE971CCBF60300CC71DE /* StringResource.swift in Sources */, D543F9CF1C149C0A00D16A0C /* TypedStoryboardSegueInfo+UIStoryboardSegue.swift in Sources */, D543F9C41C1498FB00D16A0C /* UITableView+ReuseIdentifierProtocol.swift in Sources */, - D56DC7731C42B65C00623437 /* NSBundle+FileResource.swift in Sources */, + D56DC7731C42B65C00623437 /* Bundle+FileResource.swift in Sources */, D53F19241C229D7200AE2FAD /* Validatable.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -505,9 +613,75 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 2F5FBC4521355A1400A83A69 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Library/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.rswift.library; + PRODUCT_NAME = Rswift; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 2.2; + }; + name = Debug; + }; + 2F5FBC4621355A1400A83A69 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Library/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.rswift.library; + PRODUCT_NAME = Rswift; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 2.2; + }; + name = Release; + }; 806E69A41C42BD9C00DE3A8B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -519,6 +693,7 @@ PRODUCT_NAME = Rswift; SDKROOT = appletvos; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 9.0; }; @@ -527,6 +702,8 @@ 806E69A51C42BD9C00DE3A8B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -538,6 +715,7 @@ PRODUCT_NAME = Rswift; SDKROOT = appletvos; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 9.0; }; @@ -551,6 +729,7 @@ PRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.1; }; name = Debug; @@ -563,6 +742,7 @@ PRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.1; }; name = Release; @@ -571,17 +751,28 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -619,17 +810,28 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -649,6 +851,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -659,7 +862,9 @@ D59246631C117A55007F94C7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -672,13 +877,16 @@ PRODUCT_NAME = Rswift; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; }; name = Debug; }; D59246641C117A55007F94C7 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -690,6 +898,7 @@ PRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.rswift.library; PRODUCT_NAME = Rswift; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -700,6 +909,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftTests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -710,12 +920,22 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftTests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 2F5FBC4721355A1400A83A69 /* Build configuration list for PBXNativeTarget "Rswift-watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2F5FBC4521355A1400A83A69 /* Debug */, + 2F5FBC4621355A1400A83A69 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 806E69A31C42BD9C00DE3A8B /* Build configuration list for PBXNativeTarget "Rswift-tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/R.swift.Library.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/R.swift.Library.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/R.swift.Library.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:"> + </FileRef> +</Workspace> diff --git a/R.swift.Library.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/R.swift.Library.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/R.swift.Library.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IDEDidComputeMac32BitWarning</key> + <true/> +</dict> +</plist> diff --git a/R.swift.Library.xcodeproj/project.xcworkspace/xcshareddata/R.swift.Library.xcscmblueprint b/R.swift.Library.xcodeproj/project.xcworkspace/xcshareddata/R.swift.Library.xcscmblueprint new file mode 100644 index 0000000..422543d --- /dev/null +++ b/R.swift.Library.xcodeproj/project.xcworkspace/xcshareddata/R.swift.Library.xcscmblueprint @@ -0,0 +1,30 @@ +{ + "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "E6D66735CE6FC1586FFE099FD28E4FCADA1AAB68", + "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { + + }, + "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { + "768F1F9CC867EF28C17472B184F0AF0781227AAE" : 9223372036854775807, + "E6D66735CE6FC1586FFE099FD28E4FCADA1AAB68" : 9223372036854775807 + }, + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "9B2E86CA-CC78-4635-8917-9F1308E5433E", + "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { + "768F1F9CC867EF28C17472B184F0AF0781227AAE" : "", + "E6D66735CE6FC1586FFE099FD28E4FCADA1AAB68" : "R.swift.Library\/" + }, + "DVTSourceControlWorkspaceBlueprintNameKey" : "R.swift.Library", + "DVTSourceControlWorkspaceBlueprintVersion" : 204, + "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "R.swift.Library.xcodeproj", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:mac-cain13\/R.swift.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "768F1F9CC867EF28C17472B184F0AF0781227AAE" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/mac-cain13\/R.swift.Library.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "E6D66735CE6FC1586FFE099FD28E4FCADA1AAB68" + } + ] +} \ No newline at end of file diff --git a/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-iOS.xcscheme b/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-iOS.xcscheme index d887ce4..5d6d23f 100644 --- a/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-iOS.xcscheme +++ b/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-iOS.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0710" + LastUpgradeVersion = "1100" version = "1.3"> <BuildAction parallelizeBuildables = "YES" @@ -27,6 +27,15 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "D592464D1C117A55007F94C7" + BuildableName = "Rswift.framework" + BlueprintName = "Rswift-iOS" + ReferencedContainer = "container:R.swift.Library.xcodeproj"> + </BuildableReference> + </MacroExpansion> <Testables> <TestableReference skipped = "NO"> @@ -39,17 +48,6 @@ </BuildableReference> </TestableReference> </Testables> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "D592464D1C117A55007F94C7" - BuildableName = "Rswift.framework" - BlueprintName = "Rswift-iOS" - ReferencedContainer = "container:R.swift.Library.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> </TestAction> <LaunchAction buildConfiguration = "Debug" @@ -70,8 +68,6 @@ ReferencedContainer = "container:R.swift.Library.xcodeproj"> </BuildableReference> </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> </LaunchAction> <ProfileAction buildConfiguration = "Release" diff --git a/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-tvOS.xcscheme b/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-tvOS.xcscheme index 4b966db..7e458d0 100644 --- a/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-tvOS.xcscheme +++ b/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-tvOS.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0720" + LastUpgradeVersion = "1100" version = "1.3"> <BuildAction parallelizeBuildables = "YES" @@ -27,6 +27,15 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "806E69911C42BD9C00DE3A8B" + BuildableName = "Rswift.framework" + BlueprintName = "Rswift-tvOS" + ReferencedContainer = "container:R.swift.Library.xcodeproj"> + </BuildableReference> + </MacroExpansion> <Testables> <TestableReference skipped = "NO"> @@ -39,17 +48,6 @@ </BuildableReference> </TestableReference> </Testables> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "806E69911C42BD9C00DE3A8B" - BuildableName = "Rswift.framework" - BlueprintName = "Rswift-tvOS" - ReferencedContainer = "container:R.swift.Library.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> </TestAction> <LaunchAction buildConfiguration = "Debug" @@ -70,8 +68,6 @@ ReferencedContainer = "container:R.swift.Library.xcodeproj"> </BuildableReference> </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> </LaunchAction> <ProfileAction buildConfiguration = "Release" diff --git a/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-watchOS.xcscheme b/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-watchOS.xcscheme new file mode 100644 index 0000000..a5cfc2b --- /dev/null +++ b/R.swift.Library.xcodeproj/xcshareddata/xcschemes/Rswift-watchOS.xcscheme @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "1030" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "2F5FBC3F21355A1400A83A69" + BuildableName = "Rswift.framework" + BlueprintName = "Rswift-watchOS" + ReferencedContainer = "container:R.swift.Library.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + </Testables> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "2F5FBC3F21355A1400A83A69" + BuildableName = "Rswift.framework" + BlueprintName = "Rswift-watchOS" + ReferencedContainer = "container:R.swift.Library.xcodeproj"> + </BuildableReference> + </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "2F5FBC3F21355A1400A83A69" + BuildableName = "Rswift.framework" + BlueprintName = "Rswift-watchOS" + ReferencedContainer = "container:R.swift.Library.xcodeproj"> + </BuildableReference> + </MacroExpansion> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/Readme.md b/Readme.md index 66a5483..4180ed7 100644 --- a/Readme.md +++ b/Readme.md @@ -1,6 +1,8 @@ -# R.swift.Library [](http://cocoapods.org/?q=R.swift.Library) [](https://github.com/Carthage/Carthage) [](blob/master/License)  +# R.swift.Library [](https://cocoapods.org/pods/R.swift) [](https://github.com/Carthage/Carthage) [](blob/master/License)  -_Library containing types supporting code generated by [R.swift](https://github.com/mac-cain13/R.swift)_ +⚠ As of version 7 of [R.swift](https://github.com/mac-cain13/R.swift), this separate library is no longer needed. R.swift is now a self contained library. + +This repository remains for older versions of R.swift. ## Why use this? @@ -20,6 +22,15 @@ _**Be aware:** If you just want to use R.swift follow the [installation instruct 1. Add `github "mac-cain13/R.swift.Library"` to your [Cartfile](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile) 2. Run `carthage` +### Swift Package Manager (Requires Xcode 11) + +1. Open your Xcode project. +2. Select `File > Swift Packages > Add Package Dependency...` +3. Paste `https://github.com/mac-cain13/R.swift.Library` to the text field and click on the `Next` button. +4. Choose appropriate version and click on the `Next` button. (If you need latest one, just click on the `Next` button.) +5. Confirm that `Rswift` in the Package Product column is checked and your app's name is selected in the Add to Target column. +6. Click on the `Next` button. + ### Manually _As an embedded framework using git submodules._