diff --git a/Example/Podfile.lock b/Example/Podfile.lock new file mode 100644 index 0000000..d3d37ed --- /dev/null +++ b/Example/Podfile.lock @@ -0,0 +1,12 @@ +PODS: + - ErrorKing (0.1.2) + +DEPENDENCIES: + - ErrorKing + +SPEC CHECKSUMS: + ErrorKing: e4907c135a939e976a86dd722471bd27e5b00cb1 + +PODFILE CHECKSUM: 180674213e14b2a43958c7655af172991e76e6c1 + +COCOAPODS: 1.0.1 diff --git a/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/AppIcon.appiconset/Contents.json b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..4a05111 --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,108 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "1x" + }, + { + "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" : "57x57", + "scale" : "1x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "2x" + }, + { + "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" : "50x50", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/Contents.json b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/no_connection.imageset/Contents.json b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/no_connection.imageset/Contents.json new file mode 100644 index 0000000..6c51b6a --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/no_connection.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "no_connection.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/no_connection.imageset/no_connection.png b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/no_connection.imageset/no_connection.png new file mode 100644 index 0000000..e4ab945 Binary files /dev/null and b/Example/Pods/ErrorKing/ErrorKing/Assets/EKAssets.xcassets/no_connection.imageset/no_connection.png differ diff --git a/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorKingAlertController.swift b/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorKingAlertController.swift new file mode 100644 index 0000000..a45ee7d --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorKingAlertController.swift @@ -0,0 +1,28 @@ +// +// OLErrorController.swift +// ClaroSports +// +// Created by Bruno Rocha on 7/13/16. +// Copyright © 2016 Movile. All rights reserved. +// + +import UIKit + +typealias ErrorKingVoidHandler = (() -> Void) +typealias ErrorKingActionHandler = ((UIAlertAction) -> Void) + +final class ErrorKingAlertController { + let alert: UIAlertController + + init(title: String, message: String) { + alert = UIAlertController(title: title, message: message, preferredStyle: .Alert) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func addButtonAndHandler(handler: ErrorKingActionHandler?) { + alert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: handler)) + } +} diff --git a/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorKingNibLoadeable.swift b/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorKingNibLoadeable.swift new file mode 100644 index 0000000..7bccd86 --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorKingNibLoadeable.swift @@ -0,0 +1,31 @@ +// +// ErrorKingNibLoadeable.swift +// ErrorKingExample +// +// Created by Bruno Rocha on 8/13/16. +// Copyright © 2016 Bruno Rocha. All rights reserved. +// + +import UIKit + +protocol ErrorKingNibLoadable {} + +extension ErrorKingNibLoadable where Self: UIView { + static func loadFromNib() -> Self { + // The view class should have the same name as the xib filename, e.g.: MyView and MyView.xib + if let nibName = nibName() { + let nib = UINib(nibName: nibName, bundle: NSBundle(forClass: Self.self)) + if let view = nib.instantiateWithOwner(self, options: nil).first as? Self { + return view + } + } + + fatalError("\(self) does not have a nib with the same name!") + } + + static func nibName() -> String? { + // self can print the module, e.g.: Module.MyView + // we extract the last piece to make sure we are using the correct name + return "\(self)".characters.split{$0 == "."}.map(String.init).last + } +} diff --git a/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorProne.swift b/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorProne.swift new file mode 100644 index 0000000..1f303c9 --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Classes/Model/ErrorProne.swift @@ -0,0 +1,190 @@ +// +// ErrorProne.swift +// ErrorKing +// +// Created by Bruno Rocha on 8/13/16. +// Copyright © 2016 Bruno Rocha. All rights reserved. +// + +import Foundation +import UIKit + +protocol ErrorKingEmptyStateType: class { + func reloadData() +} + +extension ErrorKing: ErrorKingEmptyStateType { + final func reloadData() { + (originalVC as? ErrorProne)?.errorKingEmptyStateReloadButtonTouched() + } +} + +public class ErrorKing { + private weak var originalVC: UIViewController? + private var storedData: ErrorKingStoredData = ErrorKingStoredData() + private var emptyStateView: ErrorKingEmptyStateView? + + private struct ErrorKingStoredData { + private var title = "" + private var description = "" + private var emptyStateText = "" + private var shouldDisplayError = false + } + + private init () {} + + final private func setup(owner: UIViewController) { + originalVC = owner + setEmptyStateView(toView: ErrorKingEmptyStateView.loadFromNib()) + } + + final public func setEmptyStateView(toView view: ErrorKingEmptyStateView) { + guard let originalVC = originalVC else { + return + } + let emptyStateView = view + emptyStateView.coordinator = self + emptyStateView.frame = originalVC.view.frame + emptyStateView.layoutIfNeeded() + emptyStateView.hidden = true + emptyStateView.removeFromSuperview() + originalVC.view.addSubview(emptyStateView) + self.emptyStateView = emptyStateView + } + + final public func setEmptyStateFrame(rect: CGRect) { + emptyStateView?.frame = rect + } + + final public func setError(title title: String, description: String, emptyStateText: String) { + storedData.shouldDisplayError = true + storedData.title = title + storedData.description = description + storedData.emptyStateText = emptyStateText + displayErrorIfNeeded() + } + + final private func displayErrorIfNeeded() { + guard storedData.shouldDisplayError else { return } + displayError(storedData.title, description: storedData.description) + } + + final private func displayError(title: String, description: String) { + guard originalVC?.isVisible == true else { + return + } + emptyStateView?.errorLabel?.text = storedData.emptyStateText + storedData.shouldDisplayError = false + dispatch_async(dispatch_get_main_queue(), { + let alertController = ErrorKingAlertController(title: title, message: description) + let handler: ErrorKingVoidHandler = { _ in + self.prepareEmptyState() + } + alertController.addButtonAndHandler(nil) + self.originalVC?.presentViewController(alertController.alert, animated: true, completion: handler) + }) + } + + final private func prepareEmptyState() { + (originalVC as? ErrorProne)?.actionBeforeDisplayingErrorKingEmptyState() + } + + final public func actionBeforeDisplayingErrorKingEmptyState() { + displayEmptyState() + } + + final private func displayEmptyState() { + guard let originalVC = originalVC else { + return + } + originalVC.view.userInteractionEnabled = true + emptyStateView?.alpha = 0 + emptyStateView?.hidden = false + UIView.animateWithDuration(0.5) { + self.emptyStateView?.alpha = 1.0 + } + } + + final public func errorKingEmptyStateReloadButtonTouched() { + emptyStateView?.hidden = true + } +} + +extension UIViewController { + var isVisible: Bool { + return self.isViewLoaded() && self.view.window != nil + } +} + +//MARK: ErrorProne Protocol + +public protocol ErrorProne: class { + var errorKing: ErrorKing? { get } + func actionBeforeDisplayingErrorKingEmptyState() + func errorKingEmptyStateReloadButtonTouched() +} + +private extension UIViewController { + private struct AssociatedKeys { + static var EKDescriptiveName = "ek_DescriptiveName" + } +} + +public extension ErrorProne where Self: UIViewController { + var errorKing: ErrorKing? { + return objc_getAssociatedObject(self, &Self.AssociatedKeys.EKDescriptiveName) as? ErrorKing + } + + func actionBeforeDisplayingErrorKingEmptyState() { + errorKing?.actionBeforeDisplayingErrorKingEmptyState() + } + + func errorKingEmptyStateReloadButtonTouched() { + errorKing?.errorKingEmptyStateReloadButtonTouched() + } +} + +extension UIViewController { + override public class func initialize() { + guard self === UIViewController.self else { + return + } + //I can't check for protocol conformance on initialize() without losing the ability to provide default implementations. For now, all view controllers get swizzled, although only ErrorProne ones do anything at all. + struct Static { + static var loadToken: dispatch_once_t = 0 + static var appearToken: dispatch_once_t = 0 + } + swizzle(#selector(UIViewController.viewDidLoad), new: #selector(UIViewController.ek_viewDidLoad), token: &Static.loadToken) + swizzle(#selector(UIViewController.viewDidAppear(_:)), new: #selector(UIViewController.ek_viewDidAppear(_:)), token: &Static.appearToken) + } + + private class func swizzle(original: Selector, new: Selector, inout token: dispatch_once_t) { + dispatch_once(&token) { + let originalMethod = class_getInstanceMethod(self, original) + let swizzledMethod = class_getInstanceMethod(self, new) + let didAddMethod = class_addMethod(self, original, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)) + guard didAddMethod else { + return method_exchangeImplementations(originalMethod, swizzledMethod) + } + class_replaceMethod(self, new, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)) + } + } + + @objc private func ek_viewDidLoad() { + self.ek_viewDidLoad() + guard let _ = self as? ErrorProne else { + return + } + let errorKing = ErrorKing() + errorKing.setup(self) + objc_setAssociatedObject(self, &AssociatedKeys.EKDescriptiveName, errorKing, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + + @objc private func ek_viewDidAppear(animated: Bool) { + self.ek_viewDidAppear(animated) + guard let errorProneController = self as? ErrorProne else { + return + } + errorProneController.errorKing?.displayErrorIfNeeded() + } +} diff --git a/Example/Pods/ErrorKing/ErrorKing/Classes/View/ErrorKingEmptyStateView.swift b/Example/Pods/ErrorKing/ErrorKing/Classes/View/ErrorKingEmptyStateView.swift new file mode 100644 index 0000000..1e44f44 --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Classes/View/ErrorKingEmptyStateView.swift @@ -0,0 +1,20 @@ +// +// OLEmptyStateView.swift +// ClaroSports +// +// Created by Bruno Rocha on 7/13/16. +// Copyright © 2016 Movile. All rights reserved. +// + +import UIKit + +public class ErrorKingEmptyStateView: UIView { + @IBOutlet weak var errorLabel: UILabel? + weak var coordinator: ErrorKingEmptyStateType? + + @IBAction func tryAgain(sender: AnyObject) { + coordinator?.reloadData() + } +} + +extension ErrorKingEmptyStateView: ErrorKingNibLoadable {} diff --git a/Example/Pods/ErrorKing/ErrorKing/Classes/View/ErrorKingEmptyStateView.xib b/Example/Pods/ErrorKing/ErrorKing/Classes/View/ErrorKingEmptyStateView.xib new file mode 100644 index 0000000..15d840f --- /dev/null +++ b/Example/Pods/ErrorKing/ErrorKing/Classes/View/ErrorKingEmptyStateView.xib @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Pods/ErrorKing/LICENSE b/Example/Pods/ErrorKing/LICENSE new file mode 100644 index 0000000..7e82599 --- /dev/null +++ b/Example/Pods/ErrorKing/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 bruno-rocha-movile + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Example/Pods/ErrorKing/README.md b/Example/Pods/ErrorKing/README.md new file mode 100644 index 0000000..a7cac50 --- /dev/null +++ b/Example/Pods/ErrorKing/README.md @@ -0,0 +1,84 @@ +# ErrorKing + +[![CI Status](http://img.shields.io/travis/bruno-rocha-movile/ErrorKing.svg?style=flat)](https://travis-ci.org/bruno-rocha-movile/ErrorKing) +[![Version](https://img.shields.io/cocoapods/v/ErrorKing.svg?style=flat)](http://cocoapods.org/pods/ErrorKing) +[![License](https://img.shields.io/cocoapods/l/ErrorKing.svg?style=flat)](http://cocoapods.org/pods/ErrorKing) +[![Platform](https://img.shields.io/cocoapods/p/ErrorKing.svg?style=flat)](http://cocoapods.org/pods/ErrorKing) + +Add the ability of displaying smart error alerts and empty state views on your ViewControllers just by inheriting the ErrorProne protocol. No setup needed - Error King uses Method Swizzling to do the setup for you. + +ErrorProne adds the errorKing variable to your ViewController. By calling it's setError() method, ErrorKing will store the error data and display an AlertView the next time your ViewController is visible - and an EmptyState view that does whatever you want after the reload button is touched. + +```swift +self.errorKing?.setError(title: "Damn!", description: "Sorry for that.", emptyStateText: "Something happened :(") +``` + +The next time the ViewController is visible (if the user triggered a load but pushed another screen, for example), the user will be greeted with: + +[![Error](http://i.imgur.com/VloOTJY.png)](http://cocoapods.org/pods/ErrorKing) +[![EmptyState](http://i.imgur.com/vQV99sP.png)](http://cocoapods.org/pods/ErrorKing) + +# Instructions +To add ErrorKing to your ViewController, add the ErrorProne protocol: + +```swift +extension MyViewController: ErrorProne { +} +``` + +That's it! You can now call the errorKing?.setError() method and see it's effects. + +To program what happens when the Empty State's reload button is touched, add this protocol method to your extension: + +```swift +extension MyViewController: ErrorProne { +func errorKingEmptyStateReloadButtonTouched() { +//load my stuff again +errorKing?.errorKingEmptyStateReloadButtonTouched() +} +} +``` + +Additionally, you can further customize ErrorKing by telling what happens before the empty state screen is displayed: + +```swift +func actionBeforeDisplayingErrorKingEmptyState() { +//do something before displaying the empty state screen, like disabling your tableView's scrolling +errorKing?.actionBeforeDisplayingErrorKingEmptyState() +} +``` + +Also, by changing the Empty state view's frame: + +```swift +self.errorKing?.setEmptyStateFrame(rect: aFrame) +``` + +## Providing your own EmptyState screen + +To add your own Empty State view, simply make a .xib that has ErrorKingEmptyStateView as it's class or superclass, link the corresponding outlets and then call + +```swift +self.errorKing?.setEmptyStateView(toView: myCustomEmptyState) +``` + +You can see it in action on the Example project. + +[![ExampleEmptyState](http://i.imgur.com/Ge4BctQ.png)](http://cocoapods.org/pods/ErrorKing) + +## Installation + +ErrorKing is available through [CocoaPods](http://cocoapods.org). To install +it, simply add the following line to your Podfile: + +```ruby +pod "ErrorKing" +``` + +## Author + +kingrocha, brunorochaesilva@movile.com + +## License + +ErrorKing is available under the MIT license. See the LICENSE file for more info. diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock new file mode 100644 index 0000000..d3d37ed --- /dev/null +++ b/Example/Pods/Manifest.lock @@ -0,0 +1,12 @@ +PODS: + - ErrorKing (0.1.2) + +DEPENDENCIES: + - ErrorKing + +SPEC CHECKSUMS: + ErrorKing: e4907c135a939e976a86dd722471bd27e5b00cb1 + +PODFILE CHECKSUM: 180674213e14b2a43958c7655af172991e76e6c1 + +COCOAPODS: 1.0.1 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..17dfff0 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,660 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0090EA52B6C2C55F4AF64B3695A5C27A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + 096A5771BE161A141A2E6A0AE5303408 /* ErrorProne.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FAE40A8F27172ED52F9AD66D54BF7A /* ErrorProne.swift */; }; + 0E969B30CC2CED56952C2F533C960000 /* ErrorKing-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F2FC407F754D59194C2EADCF288393D /* ErrorKing-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20BA29EC2E7BCC19F1AAD2D0C45FD6E7 /* Pods-ErrorKingExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 88627E1964A2BD2A947BF69771D52692 /* Pods-ErrorKingExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D9FC629509D9EA968C64D2E049E06D4 /* EKAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CB97A7A1BADA97F86B6E3CEB6C5B5AF7 /* EKAssets.xcassets */; }; + 40C1924A221FD009833892143F587171 /* ErrorKingEmptyStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CC0041DC25C84D3687B0B3B7606D9E6 /* ErrorKingEmptyStateView.swift */; }; + 482B807EE9550DFC98F431D8E17BC8DB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + 5A709EA4255A7D422F61A00CD7E609A6 /* ErrorKing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DDF52FDB40918079396816E5FB0C2638 /* ErrorKing.bundle */; }; + 8AC786700465FA23769B5B09B369CAB0 /* ErrorKingAlertController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA874C9866F93AE076F8023DA2F3036D /* ErrorKingAlertController.swift */; }; + 93DE81F79F0E1DE8C5368A1A4AA8D295 /* ErrorKingEmptyStateView.xib in Sources */ = {isa = PBXBuildFile; fileRef = 7A2A2DC9F8E6E4C53CAC80371BC03DAF /* ErrorKingEmptyStateView.xib */; }; + A82C5F4485233C4034400AFF5C511016 /* Pods-ErrorKingExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A21F24E0D808BCA17A2427F51206FF60 /* Pods-ErrorKingExample-dummy.m */; }; + A93BEBC95ACF7AE65F0B4FE211A25B85 /* ErrorKingNibLoadeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C180DDCDF24D8066F0616AD18EAEE11 /* ErrorKingNibLoadeable.swift */; }; + E72B3EE431D47B6B330993600D0B5640 /* ErrorKing-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF596BC0B94A1585DE21142D383BB426 /* ErrorKing-dummy.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 190ACD4A297395F92F0DF18533812BC6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 82BE704B68BD4FD3D41C6A3F05394947; + remoteInfo = ErrorKing; + }; + A074C01141663330155B644FB9D1A0CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 61C5E564B6E9B06768CDD62A5276F508; + remoteInfo = "ErrorKing-ErrorKing"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1CC0041DC25C84D3687B0B3B7606D9E6 /* ErrorKingEmptyStateView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorKingEmptyStateView.swift; path = ErrorKing/Classes/View/ErrorKingEmptyStateView.swift; sourceTree = ""; }; + 210FA513BCA267488812DE60B0ECF811 /* Pods-ErrorKingExample-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ErrorKingExample-resources.sh"; sourceTree = ""; }; + 291DDCF0D0A9CC60B73E1C47A27A181E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3377980CE6A94828D39ED77D3F649610 /* Pods-ErrorKingExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ErrorKingExample-acknowledgements.plist"; sourceTree = ""; }; + 45FAE40A8F27172ED52F9AD66D54BF7A /* ErrorProne.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorProne.swift; path = ErrorKing/Classes/Model/ErrorProne.swift; sourceTree = ""; }; + 5C180DDCDF24D8066F0616AD18EAEE11 /* ErrorKingNibLoadeable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorKingNibLoadeable.swift; path = ErrorKing/Classes/Model/ErrorKingNibLoadeable.swift; sourceTree = ""; }; + 6F2FC407F754D59194C2EADCF288393D /* ErrorKing-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ErrorKing-umbrella.h"; sourceTree = ""; }; + 7A2A2DC9F8E6E4C53CAC80371BC03DAF /* ErrorKingEmptyStateView.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = ErrorKingEmptyStateView.xib; path = ErrorKing/Classes/View/ErrorKingEmptyStateView.xib; sourceTree = ""; }; + 832F7C2DCFD649A2DD90CD1E8E0304E5 /* ErrorKing-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ErrorKing-prefix.pch"; sourceTree = ""; }; + 849EA1873669688C47C743B241B4E810 /* ErrorKing.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ErrorKing.xcconfig; sourceTree = ""; }; + 86EE2654E169A9D7013ABC072E36AF70 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 879444343799C2A7B26B755AF31B36FD /* ResourceBundle-ErrorKing-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-ErrorKing-Info.plist"; sourceTree = ""; }; + 88627E1964A2BD2A947BF69771D52692 /* Pods-ErrorKingExample-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ErrorKingExample-umbrella.h"; sourceTree = ""; }; + 8F1CA90EFFF972489AD3603A6BD03C84 /* Pods-ErrorKingExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ErrorKingExample.debug.xcconfig"; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 982F89A7119072F562C3CC5D437C7D68 /* ErrorKing.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ErrorKing.modulemap; sourceTree = ""; }; + 992EF9ED96F88D6ACFFB31BDD9427CA7 /* Pods_ErrorKingExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ErrorKingExample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A21F24E0D808BCA17A2427F51206FF60 /* Pods-ErrorKingExample-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ErrorKingExample-dummy.m"; sourceTree = ""; }; + A63ADDAE506AFBDCCCAEDDE7E9D22D9D /* Pods-ErrorKingExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ErrorKingExample.release.xcconfig"; sourceTree = ""; }; + A6E3306FFF108248C575F897DC872A9A /* Pods-ErrorKingExample-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ErrorKingExample-frameworks.sh"; sourceTree = ""; }; + AF596BC0B94A1585DE21142D383BB426 /* ErrorKing-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ErrorKing-dummy.m"; sourceTree = ""; }; + BA874C9866F93AE076F8023DA2F3036D /* ErrorKingAlertController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorKingAlertController.swift; path = ErrorKing/Classes/Model/ErrorKingAlertController.swift; sourceTree = ""; }; + CB97A7A1BADA97F86B6E3CEB6C5B5AF7 /* EKAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = EKAssets.xcassets; path = ErrorKing/Assets/EKAssets.xcassets; sourceTree = ""; }; + CD49342D204181B12545A17F9A1DE5A8 /* Pods-ErrorKingExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ErrorKingExample.modulemap"; sourceTree = ""; }; + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D2938E733459D459742529DAD10AC393 /* ErrorKing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ErrorKing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DDF52FDB40918079396816E5FB0C2638 /* ErrorKing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ErrorKing.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + F4C071FC67A93E765EDA0F53D3F16310 /* Pods-ErrorKingExample-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ErrorKingExample-acknowledgements.markdown"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7CCB3993A0661B205E85F251695D81BA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 482B807EE9550DFC98F431D8E17BC8DB /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B24B61A56D310B1150CE8308180534EC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3132910EF76EA96E9FDFFBDD9D25456 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0090EA52B6C2C55F4AF64B3695A5C27A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1081A5B72EDBEC899E216418BFA4E37A /* Support Files */ = { + isa = PBXGroup; + children = ( + 982F89A7119072F562C3CC5D437C7D68 /* ErrorKing.modulemap */, + 849EA1873669688C47C743B241B4E810 /* ErrorKing.xcconfig */, + AF596BC0B94A1585DE21142D383BB426 /* ErrorKing-dummy.m */, + 832F7C2DCFD649A2DD90CD1E8E0304E5 /* ErrorKing-prefix.pch */, + 6F2FC407F754D59194C2EADCF288393D /* ErrorKing-umbrella.h */, + 86EE2654E169A9D7013ABC072E36AF70 /* Info.plist */, + 879444343799C2A7B26B755AF31B36FD /* ResourceBundle-ErrorKing-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/ErrorKing"; + sourceTree = ""; + }; + 22BD39BCAE72F93E7733E1F4F63C6608 /* Pods-ErrorKingExample */ = { + isa = PBXGroup; + children = ( + 291DDCF0D0A9CC60B73E1C47A27A181E /* Info.plist */, + CD49342D204181B12545A17F9A1DE5A8 /* Pods-ErrorKingExample.modulemap */, + F4C071FC67A93E765EDA0F53D3F16310 /* Pods-ErrorKingExample-acknowledgements.markdown */, + 3377980CE6A94828D39ED77D3F649610 /* Pods-ErrorKingExample-acknowledgements.plist */, + A21F24E0D808BCA17A2427F51206FF60 /* Pods-ErrorKingExample-dummy.m */, + A6E3306FFF108248C575F897DC872A9A /* Pods-ErrorKingExample-frameworks.sh */, + 210FA513BCA267488812DE60B0ECF811 /* Pods-ErrorKingExample-resources.sh */, + 88627E1964A2BD2A947BF69771D52692 /* Pods-ErrorKingExample-umbrella.h */, + 8F1CA90EFFF972489AD3603A6BD03C84 /* Pods-ErrorKingExample.debug.xcconfig */, + A63ADDAE506AFBDCCCAEDDE7E9D22D9D /* Pods-ErrorKingExample.release.xcconfig */, + ); + name = "Pods-ErrorKingExample"; + path = "Target Support Files/Pods-ErrorKingExample"; + sourceTree = ""; + }; + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = { + isa = PBXGroup; + children = ( + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 51C01E974DB73F6F6D8997291CDF199A /* ErrorKing */ = { + isa = PBXGroup; + children = ( + BA874C9866F93AE076F8023DA2F3036D /* ErrorKingAlertController.swift */, + 1CC0041DC25C84D3687B0B3B7606D9E6 /* ErrorKingEmptyStateView.swift */, + 7A2A2DC9F8E6E4C53CAC80371BC03DAF /* ErrorKingEmptyStateView.xib */, + 5C180DDCDF24D8066F0616AD18EAEE11 /* ErrorKingNibLoadeable.swift */, + 45FAE40A8F27172ED52F9AD66D54BF7A /* ErrorProne.swift */, + 6B053C75D866181E651B46B5C98A5090 /* Resources */, + 1081A5B72EDBEC899E216418BFA4E37A /* Support Files */, + ); + path = ErrorKing; + sourceTree = ""; + }; + 6B053C75D866181E651B46B5C98A5090 /* Resources */ = { + isa = PBXGroup; + children = ( + CB97A7A1BADA97F86B6E3CEB6C5B5AF7 /* EKAssets.xcassets */, + ); + name = Resources; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + B14586A3FB1946068889844FD4A04D03 /* Pods */, + EF45444E880AC93353DC66B2F45FF02E /* Products */, + 80D1050BD8482BC6A84C3650E63B2EA6 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 80D1050BD8482BC6A84C3650E63B2EA6 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 22BD39BCAE72F93E7733E1F4F63C6608 /* Pods-ErrorKingExample */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + B14586A3FB1946068889844FD4A04D03 /* Pods */ = { + isa = PBXGroup; + children = ( + 51C01E974DB73F6F6D8997291CDF199A /* ErrorKing */, + ); + name = Pods; + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + EF45444E880AC93353DC66B2F45FF02E /* Products */ = { + isa = PBXGroup; + children = ( + DDF52FDB40918079396816E5FB0C2638 /* ErrorKing.bundle */, + D2938E733459D459742529DAD10AC393 /* ErrorKing.framework */, + 992EF9ED96F88D6ACFFB31BDD9427CA7 /* Pods_ErrorKingExample.framework */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 6534A221F9BF985FD2BC9658F3F73845 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 20BA29EC2E7BCC19F1AAD2D0C45FD6E7 /* Pods-ErrorKingExample-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C5F76AD42DC4AF99A129BDCB598BEE37 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E969B30CC2CED56952C2F533C960000 /* ErrorKing-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 61C5E564B6E9B06768CDD62A5276F508 /* ErrorKing-ErrorKing */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2B8202350C2654121B82E93C72318B80 /* Build configuration list for PBXNativeTarget "ErrorKing-ErrorKing" */; + buildPhases = ( + EE31B005EADB8393631A2F174052BCD9 /* Sources */, + B24B61A56D310B1150CE8308180534EC /* Frameworks */, + AB72F0AA3C1B5CFFB8797042BCB744A9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ErrorKing-ErrorKing"; + productName = "ErrorKing-ErrorKing"; + productReference = DDF52FDB40918079396816E5FB0C2638 /* ErrorKing.bundle */; + productType = "com.apple.product-type.bundle"; + }; + 82BE704B68BD4FD3D41C6A3F05394947 /* ErrorKing */ = { + isa = PBXNativeTarget; + buildConfigurationList = B12D20AE8B7F4D01F9753B839B61C036 /* Build configuration list for PBXNativeTarget "ErrorKing" */; + buildPhases = ( + BA9EF4E1E6E757A2DD239738F248FC89 /* Sources */, + F3132910EF76EA96E9FDFFBDD9D25456 /* Frameworks */, + B5C2F7EA47001C99C30122ACC103D7B8 /* Resources */, + C5F76AD42DC4AF99A129BDCB598BEE37 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 2D2426511B145DC3AFCF01EE8BD2D72F /* PBXTargetDependency */, + ); + name = ErrorKing; + productName = ErrorKing; + productReference = D2938E733459D459742529DAD10AC393 /* ErrorKing.framework */; + productType = "com.apple.product-type.framework"; + }; + C573167EE030581109F58DABEA8219E1 /* Pods-ErrorKingExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = DFDA6E9AB795540C8460FCFE565BC5C9 /* Build configuration list for PBXNativeTarget "Pods-ErrorKingExample" */; + buildPhases = ( + EE361F8ABA08B614959971F61CD0D56D /* Sources */, + 7CCB3993A0661B205E85F251695D81BA /* Frameworks */, + 6534A221F9BF985FD2BC9658F3F73845 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 323C3DFFAE7B5B826342648983C9B998 /* PBXTargetDependency */, + ); + name = "Pods-ErrorKingExample"; + productName = "Pods-ErrorKingExample"; + productReference = 992EF9ED96F88D6ACFFB31BDD9427CA7 /* Pods_ErrorKingExample.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = EF45444E880AC93353DC66B2F45FF02E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 82BE704B68BD4FD3D41C6A3F05394947 /* ErrorKing */, + 61C5E564B6E9B06768CDD62A5276F508 /* ErrorKing-ErrorKing */, + C573167EE030581109F58DABEA8219E1 /* Pods-ErrorKingExample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + AB72F0AA3C1B5CFFB8797042BCB744A9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D9FC629509D9EA968C64D2E049E06D4 /* EKAssets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B5C2F7EA47001C99C30122ACC103D7B8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5A709EA4255A7D422F61A00CD7E609A6 /* ErrorKing.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BA9EF4E1E6E757A2DD239738F248FC89 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E72B3EE431D47B6B330993600D0B5640 /* ErrorKing-dummy.m in Sources */, + 8AC786700465FA23769B5B09B369CAB0 /* ErrorKingAlertController.swift in Sources */, + 40C1924A221FD009833892143F587171 /* ErrorKingEmptyStateView.swift in Sources */, + 93DE81F79F0E1DE8C5368A1A4AA8D295 /* ErrorKingEmptyStateView.xib in Sources */, + A93BEBC95ACF7AE65F0B4FE211A25B85 /* ErrorKingNibLoadeable.swift in Sources */, + 096A5771BE161A141A2E6A0AE5303408 /* ErrorProne.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EE31B005EADB8393631A2F174052BCD9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EE361F8ABA08B614959971F61CD0D56D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A82C5F4485233C4034400AFF5C511016 /* Pods-ErrorKingExample-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 2D2426511B145DC3AFCF01EE8BD2D72F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "ErrorKing-ErrorKing"; + target = 61C5E564B6E9B06768CDD62A5276F508 /* ErrorKing-ErrorKing */; + targetProxy = A074C01141663330155B644FB9D1A0CB /* PBXContainerItemProxy */; + }; + 323C3DFFAE7B5B826342648983C9B998 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ErrorKing; + target = 82BE704B68BD4FD3D41C6A3F05394947 /* ErrorKing */; + targetProxy = 190ACD4A297395F92F0DF18533812BC6 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 072114BC0B8642362A6006C66FD8ADC2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 849EA1873669688C47C743B241B4E810 /* ErrorKing.xcconfig */; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ErrorKing"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/ErrorKing/ResourceBundle-ErrorKing-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = ErrorKing; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 3FA451D268613890FA8A5A03801E11D5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 4E67A80F9009584E73BBC844932D7A0B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 849EA1873669688C47C743B241B4E810 /* ErrorKing.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/ErrorKing/ErrorKing-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ErrorKing/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/ErrorKing/ErrorKing.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = ErrorKing; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 5E62115DE8C09934BF8D2FE5D15FED1E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + ONLY_ACTIVE_ARCH = YES; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 855564D2B44D516FF7FFD62677F5706D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A63ADDAE506AFBDCCCAEDDE7E9D22D9D /* Pods-ErrorKingExample.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-ErrorKingExample/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_ErrorKingExample; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BA65D26AFAAAE6438C99A5D1495EAC7C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 849EA1873669688C47C743B241B4E810 /* ErrorKing.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/ErrorKing/ErrorKing-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ErrorKing/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/ErrorKing/ErrorKing.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = ErrorKing; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + BCF486B311A3F2F4C8606275FAAF4C3D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8F1CA90EFFF972489AD3603A6BD03C84 /* Pods-ErrorKingExample.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-ErrorKingExample/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_ErrorKingExample; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C0A3AD8B166600B2F42B9BCBAAF98635 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 849EA1873669688C47C743B241B4E810 /* ErrorKing.xcconfig */; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ErrorKing"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/ErrorKing/ResourceBundle-ErrorKing-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = ErrorKing; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2B8202350C2654121B82E93C72318B80 /* Build configuration list for PBXNativeTarget "ErrorKing-ErrorKing" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C0A3AD8B166600B2F42B9BCBAAF98635 /* Debug */, + 072114BC0B8642362A6006C66FD8ADC2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5E62115DE8C09934BF8D2FE5D15FED1E /* Debug */, + 3FA451D268613890FA8A5A03801E11D5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B12D20AE8B7F4D01F9753B839B61C036 /* Build configuration list for PBXNativeTarget "ErrorKing" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BA65D26AFAAAE6438C99A5D1495EAC7C /* Debug */, + 4E67A80F9009584E73BBC844932D7A0B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DFDA6E9AB795540C8460FCFE565BC5C9 /* Build configuration list for PBXNativeTarget "Pods-ErrorKingExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BCF486B311A3F2F4C8606275FAAF4C3D /* Debug */, + 855564D2B44D516FF7FFD62677F5706D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Example/Pods/Target Support Files/ErrorKing/ErrorKing-dummy.m b/Example/Pods/Target Support Files/ErrorKing/ErrorKing-dummy.m new file mode 100644 index 0000000..ae0fdf9 --- /dev/null +++ b/Example/Pods/Target Support Files/ErrorKing/ErrorKing-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_ErrorKing : NSObject +@end +@implementation PodsDummy_ErrorKing +@end diff --git a/Example/Pods/Target Support Files/ErrorKing/ErrorKing-prefix.pch b/Example/Pods/Target Support Files/ErrorKing/ErrorKing-prefix.pch new file mode 100644 index 0000000..aa992a4 --- /dev/null +++ b/Example/Pods/Target Support Files/ErrorKing/ErrorKing-prefix.pch @@ -0,0 +1,4 @@ +#ifdef __OBJC__ +#import +#endif + diff --git a/Example/Pods/Target Support Files/ErrorKing/ErrorKing-umbrella.h b/Example/Pods/Target Support Files/ErrorKing/ErrorKing-umbrella.h new file mode 100644 index 0000000..d9b559d --- /dev/null +++ b/Example/Pods/Target Support Files/ErrorKing/ErrorKing-umbrella.h @@ -0,0 +1,6 @@ +#import + + +FOUNDATION_EXPORT double ErrorKingVersionNumber; +FOUNDATION_EXPORT const unsigned char ErrorKingVersionString[]; + diff --git a/Example/Pods/Target Support Files/ErrorKing/ErrorKing.modulemap b/Example/Pods/Target Support Files/ErrorKing/ErrorKing.modulemap new file mode 100644 index 0000000..c3e7d5e --- /dev/null +++ b/Example/Pods/Target Support Files/ErrorKing/ErrorKing.modulemap @@ -0,0 +1,6 @@ +framework module ErrorKing { + umbrella header "ErrorKing-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/ErrorKing/ErrorKing.xcconfig b/Example/Pods/Target Support Files/ErrorKing/ErrorKing.xcconfig new file mode 100644 index 0000000..8076d4f --- /dev/null +++ b/Example/Pods/Target Support Files/ErrorKing/ErrorKing.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/ErrorKing +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/ErrorKing/Info.plist b/Example/Pods/Target Support Files/ErrorKing/Info.plist new file mode 100644 index 0000000..7c241fa --- /dev/null +++ b/Example/Pods/Target Support Files/ErrorKing/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.1.2 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/ErrorKing/ResourceBundle-ErrorKing-Info.plist b/Example/Pods/Target Support Files/ErrorKing/ResourceBundle-ErrorKing-Info.plist new file mode 100644 index 0000000..1c9272a --- /dev/null +++ b/Example/Pods/Target Support Files/ErrorKing/ResourceBundle-ErrorKing-Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 0.1.2 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Info.plist b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-acknowledgements.markdown new file mode 100644 index 0000000..e603efe --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-acknowledgements.markdown @@ -0,0 +1,26 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## ErrorKing + +Copyright (c) 2016 bruno-rocha-movile + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-acknowledgements.plist new file mode 100644 index 0000000..3ebfa21 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-acknowledgements.plist @@ -0,0 +1,56 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2016 bruno-rocha-movile <bruno.rocha@movile.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + Title + ErrorKing + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-dummy.m b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-dummy.m new file mode 100644 index 0000000..82aaaa9 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ErrorKingExample : NSObject +@end +@implementation PodsDummy_Pods_ErrorKingExample +@end diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-frameworks.sh b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-frameworks.sh new file mode 100755 index 0000000..c35ee85 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-frameworks.sh @@ -0,0 +1,91 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "$BUILT_PRODUCTS_DIR/ErrorKing/ErrorKing.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "$BUILT_PRODUCTS_DIR/ErrorKing/ErrorKing.framework" +fi diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-resources.sh b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-resources.sh new file mode 100755 index 0000000..0a15615 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-resources.sh @@ -0,0 +1,102 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +realpath() { + DIRECTORY="$(cd "${1%/*}" && pwd)" + FILENAME="${1##*/}" + echo "$DIRECTORY/$FILENAME" +} + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "`realpath $PODS_ROOT`*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-umbrella.h b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-umbrella.h new file mode 100644 index 0000000..4d84463 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample-umbrella.h @@ -0,0 +1,6 @@ +#import + + +FOUNDATION_EXPORT double Pods_ErrorKingExampleVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ErrorKingExampleVersionString[]; + diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.debug.xcconfig b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.debug.xcconfig new file mode 100644 index 0000000..27126be --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.debug.xcconfig @@ -0,0 +1,10 @@ +EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ErrorKing" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ErrorKing/ErrorKing.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "ErrorKing" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.modulemap b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.modulemap new file mode 100644 index 0000000..b883679 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.modulemap @@ -0,0 +1,6 @@ +framework module Pods_ErrorKingExample { + umbrella header "Pods-ErrorKingExample-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.release.xcconfig b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.release.xcconfig new file mode 100644 index 0000000..27126be --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ErrorKingExample/Pods-ErrorKingExample.release.xcconfig @@ -0,0 +1,10 @@ +EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ErrorKing" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ErrorKing/ErrorKing.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "ErrorKing" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods