AwesomeSpotlightView is a nice and simple library for iOS written on Swift 4. It's highly customizable and easy-to-use tool. Works perfectly for tutorial or coach in your app.


## Example
To run the example project, clone the repo, and run `pod install` from the Example directory first.
[Swift Example](https://github.com/aleksandrshoshiashvili/AwesomeSpotlightView/tree/master/AwesomeSpotlightViewDemo)
[ObjC Example](https://github.com/aleksandrshoshiashvili/AwesomeSpotlightView/tree/master/AwesomeSpotlightViewDemoObjC)
## Installation
### CocoaPods
AwesomeSpotlightView is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:
```ruby
pod 'AwesomeSpotlightView', '~> 0.1.8'
```
### Manually
* Just drop AwesomeSpotlightView folder in your project.
* You're ready to use AwesomeSpotlightView!
## Usage
```swift
override func viewDidLoad() {
super.viewDidLoad()
let spotlight1 = AwesomeSpotlight(withRect: CGRect(x: 75, y: 75, width: 100, height: 100), shape: .circle, text: "spotlight1", isAllowPassTouchesThroughSpotlight: true)
let spotlight2 = AwesomeSpotlight(withRect: CGRect(x: 20, y: 200, width: 130, height: 25), shape: .rectangle, text: "spotlight2")
let spotlight3 = AwesomeSpotlight(withRect: CGRect(x: 170, y: 50, width: 30, height: 100), shape: .roundRectangle, text: "spotlight3")
let spotlightView = AwesomeSpotlightView(frame: view.frame, spotlight: [spotlight1, spotlight2, spotlight3])
spotlightView.cutoutRadius = 8
spotlightView.delegate = self
view.addSubview(spotlightView)
spotlightView.start()
}
```
You can configure AwesomeSpotlightView before you present it using the `start` method. For example:
```objective-c
spotlightView.continueButtonModel = AwesomeTabButton(title: "Next", font: UIFont.italicSystemFont(ofSize: 16.0), isEnable: true)
spotlightView.skipButtonModel.isEnable = true
spotlightView.skipButtonLastStepTitle = "Finish"
spotlightView.showAllSpotlightsAtOnce = false
spotlightView.start()
```
## Configuration AwesomeSpotlight
### `rect` (CGRect)
The rect of spotlight.
### `shape` (AwesomeSpotlightShape)
Shape of spotlight: .rectangle, .roundRectangle, .circle.
### `margin` (UIEdgeInsets)
Margin for cutout shape. You can set extra space for item with this property.
### `isAllowPassTouchesThroughSpotlight` (Bool)
Set true if you want to allow pass touches through spotlight (allow interaction with view below spotlight) (default: false).
### `text` (String)
The text of the caption.
### `attributedText` (AttributedString)
The attributed text of the caption.
## Configuration AwesomeSpotlightView
### `spotlightsArray` ([AwesomeSpotlight])
Modify the spotlights.
### `spotlightMaskColor` (UIColor)
The color of the mask (default: 0,0,0 alpha 0.6).
### `animationDuration` (Double)
Transition animation duration to the next coach mark (default: 0.3).
### `cutoutRadius` (CGFloat)
The cutout rectangle radius (default: 4.0).
### `maxLabelWidth` (Double)
The captions label is set to have a max width of 280px. Number of lines is figured out automatically based on caption contents.
### `labelSpacing` (CGFloat)
Define how far the captions label appears above or below the cutout (default: 35px).
### `enableArrowDown` (Bool)
Icon with Arrow showed between caption text and caption (default: false).
### `textLabelFont` (UIFont)
Fond of caption text label (default: UIFont.systemFont(ofSize: 20.0)).
### `showAllSpotlightsAtOnce` (Bool)
Showed all spotlight at once (at the same time) (default: false).
### `skipButtonLastStepTitle` (String)
This title will show in skip button when user did open last spotlight. (default: Done)
### `continueButtonModel` (AwesomeTabButton)
### `skipButtonModel` (AwesomeTabButton)
You can setup buttons with `AwesomeTabButton` structure: title, font, backgroundColor and isEnable state.
Default for continueButtonModel: title: "Continue", font: UIFont.boldSystemFont(ofSize: 13.0), isEnable: false
Default for skipButtonModel: title: "Skip", font: UIFont.boldSystemFont(ofSize: 13.0), isEnable: false
## AwesomeSpotlightViewDelegate
### 1. Conform your view controller to the AwesomeSpotlightViewDelegate protocol:
`class ViewController: UIViewController, AwesomeSpotlightViewDelegate`
### 2. Assign the delegate to your AwesomeSpotlightView view instance:
`spotlightView.delegate = self`
### 3. Implement the delegate protocol methods:
*Note: All of the methods are optional. Implement only those that are needed.*
- `func spotlightView(_ spotlightView: AwesomeSpotlightView, willNavigateToIndex index: Int)`
- `func spotlightView(_ spotlightView: AwesomeSpotlightView, didNavigateToIndex index: Int)`
- `func spotlightViewWillCleanup(_ spotlightView: AwesomeSpotlightView, atIndex index: Int)`
- `func spotlightViewDidCleanup(_ spotlightView: AwesomeSpotlightView)`
## Inspired by
* [WSCoachMarksView](https://github.com/workshirt/WSCoachMarksView)
## Author
* [Aleksandr Shoshiashvili](https://github.com/aleksandrshoshiashvili)
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Pods.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
0D3CC051145F48A605E41A9E9467A8EA /* AwesomeSpotlightView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050A239F72F13B758C96128B0C547049 /* AwesomeSpotlightView.swift */; };
2F94FFFD5C521AF2E0153657D8EA8BEF /* AwesomeSpotlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32173174FF3F0689229601365D383D0A /* AwesomeSpotlight.swift */; };
391FD413A5F2D90A8CE06D6A1A4E5D14 /* AwesomeSpotlightViewBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DFACACEF524C4956B597E3F225273897 /* AwesomeSpotlightViewBundle.bundle */; };
39D183E3DBACA29E1DA16B4DB1888462 /* Pods-AwesomeSpotlightViewDemoObjC-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DF17C59844D498BD143D2B1337C51C45 /* Pods-AwesomeSpotlightViewDemoObjC-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
403A5434130EAFFAA2539A2100B57496 /* AwesomeSpotlightView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 05532F17513A2F4BE63A47151CCCCF8D /* AwesomeSpotlightView-dummy.m */; };
41C2C23D02F5BC4E2F9E8358D69B48A2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40CB39E715FBCDAA142E6513E126200A /* Foundation.framework */; };
651658FF8444E368796BD52A74609062 /* AwesomeSpotlightView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A07A823162D056BCCCEBA0CF544A791 /* AwesomeSpotlightView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
9EA464E51BB96CC08B89398C45B186AB /* Pods-AwesomeSpotlightViewDemoObjC-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E51686376F28ACCD9676D40A6B28A057 /* Pods-AwesomeSpotlightViewDemoObjC-dummy.m */; };
A0FBF6CC1A427568CC1E83C52356C6C5 /* Localizator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71E2DA42E2228E242C373A386DBAFB46 /* Localizator.swift */; };
B3BE8DAB2186DBEF3D28382FD18C29B0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECF2A2B0720AE923C22BED3192888BE0 /* UIKit.framework */; };
BCACF559971A10803615B48EA9D1B44E /* AwesomeTabButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF84B86272CD80F37476EC71819C3048 /* AwesomeTabButton.swift */; };
C4958433CA9413F484F1BF0D9EA4D8EA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40CB39E715FBCDAA142E6513E126200A /* Foundation.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
93E5AD4B3BCEF5C188214C394D7AE962 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 14FC0C9E4E078AC230B149162CB0E219;
remoteInfo = AwesomeSpotlightView;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
050A239F72F13B758C96128B0C547049 /* AwesomeSpotlightView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AwesomeSpotlightView.swift; path = AwesomeSpotlightView/Classes/AwesomeSpotlightView.swift; sourceTree = ""; };
05532F17513A2F4BE63A47151CCCCF8D /* AwesomeSpotlightView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AwesomeSpotlightView-dummy.m"; sourceTree = ""; };
1E80B687977EF20B6E1B6046C7A863C2 /* Pods_AwesomeSpotlightViewDemoObjC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AwesomeSpotlightViewDemoObjC.framework; path = "Pods-AwesomeSpotlightViewDemoObjC.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
2E0A82EE0A176099D8A23DA24B67DB7D /* Pods-AwesomeSpotlightViewDemoObjC-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AwesomeSpotlightViewDemoObjC-Info.plist"; sourceTree = ""; };
32173174FF3F0689229601365D383D0A /* AwesomeSpotlight.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AwesomeSpotlight.swift; path = AwesomeSpotlightView/Classes/AwesomeSpotlight.swift; sourceTree = ""; };
40CB39E715FBCDAA142E6513E126200A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
48BCBE00575AA14CB9F5715BD5BC2A6C /* Pods-AwesomeSpotlightViewDemoObjC.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AwesomeSpotlightViewDemoObjC.modulemap"; sourceTree = ""; };
4D906D829CA494984535809DAB43BADE /* AwesomeSpotlightView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AwesomeSpotlightView.xcconfig; sourceTree = ""; };
516949894615FBDFB7BAA09EB416478A /* AwesomeSpotlightView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AwesomeSpotlightView.modulemap; sourceTree = ""; };
6A07A823162D056BCCCEBA0CF544A791 /* AwesomeSpotlightView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AwesomeSpotlightView-umbrella.h"; sourceTree = ""; };
6BFAD0DBEBDBFB478228A3B2E3B31921 /* Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.plist"; sourceTree = ""; };
711318556B88FF6E468885198BD712A0 /* Pods-AwesomeSpotlightViewDemoObjC.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AwesomeSpotlightViewDemoObjC.release.xcconfig"; sourceTree = ""; };
71E2DA42E2228E242C373A386DBAFB46 /* Localizator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Localizator.swift; path = AwesomeSpotlightView/Classes/Localizator.swift; sourceTree = ""; };
7919B21CB361FB75A797085722A89339 /* Pods-AwesomeSpotlightViewDemoObjC.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AwesomeSpotlightViewDemoObjC.debug.xcconfig"; sourceTree = ""; };
836F15855C45068D535AA3D03619D0E3 /* AwesomeSpotlightView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AwesomeSpotlightView.framework; path = AwesomeSpotlightView.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
9E2D78D9A7AA618F989DFB6FBA8B5F34 /* Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.markdown"; sourceTree = ""; };
B1056A80344113E08E5E541A32250961 /* AwesomeSpotlightView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AwesomeSpotlightView-prefix.pch"; sourceTree = ""; };
B55DD9A4E0D4211E9C3578BC396AE7D1 /* Pods-AwesomeSpotlightViewDemoObjC-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AwesomeSpotlightViewDemoObjC-frameworks.sh"; sourceTree = ""; };
DF17C59844D498BD143D2B1337C51C45 /* Pods-AwesomeSpotlightViewDemoObjC-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AwesomeSpotlightViewDemoObjC-umbrella.h"; sourceTree = ""; };
DFACACEF524C4956B597E3F225273897 /* AwesomeSpotlightViewBundle.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = AwesomeSpotlightViewBundle.bundle; path = AwesomeSpotlightView/Classes/AwesomeSpotlightViewBundle.bundle; sourceTree = ""; };
E51686376F28ACCD9676D40A6B28A057 /* Pods-AwesomeSpotlightViewDemoObjC-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AwesomeSpotlightViewDemoObjC-dummy.m"; sourceTree = ""; };
ECF2A2B0720AE923C22BED3192888BE0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
EF84B86272CD80F37476EC71819C3048 /* AwesomeTabButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AwesomeTabButton.swift; path = AwesomeSpotlightView/Classes/AwesomeTabButton.swift; sourceTree = ""; };
FFCB91E0D72F10980B9866DF52DDFE43 /* AwesomeSpotlightView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AwesomeSpotlightView-Info.plist"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
579A3669E9587362E21E46239DC720BE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
41C2C23D02F5BC4E2F9E8358D69B48A2 /* Foundation.framework in Frameworks */,
B3BE8DAB2186DBEF3D28382FD18C29B0 /* UIKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
C8500CA61F1A0846F0AB4162FC640C52 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
C4958433CA9413F484F1BF0D9EA4D8EA /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = {
isa = PBXGroup;
children = (
E169A450ED27AC725DF52953F66D11E0 /* iOS */,
);
name = Frameworks;
sourceTree = "";
};
500835089CF4264478EE04D41AE5C08F /* Pods-AwesomeSpotlightViewDemoObjC */ = {
isa = PBXGroup;
children = (
48BCBE00575AA14CB9F5715BD5BC2A6C /* Pods-AwesomeSpotlightViewDemoObjC.modulemap */,
9E2D78D9A7AA618F989DFB6FBA8B5F34 /* Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.markdown */,
6BFAD0DBEBDBFB478228A3B2E3B31921 /* Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.plist */,
E51686376F28ACCD9676D40A6B28A057 /* Pods-AwesomeSpotlightViewDemoObjC-dummy.m */,
B55DD9A4E0D4211E9C3578BC396AE7D1 /* Pods-AwesomeSpotlightViewDemoObjC-frameworks.sh */,
2E0A82EE0A176099D8A23DA24B67DB7D /* Pods-AwesomeSpotlightViewDemoObjC-Info.plist */,
DF17C59844D498BD143D2B1337C51C45 /* Pods-AwesomeSpotlightViewDemoObjC-umbrella.h */,
7919B21CB361FB75A797085722A89339 /* Pods-AwesomeSpotlightViewDemoObjC.debug.xcconfig */,
711318556B88FF6E468885198BD712A0 /* Pods-AwesomeSpotlightViewDemoObjC.release.xcconfig */,
);
name = "Pods-AwesomeSpotlightViewDemoObjC";
path = "Target Support Files/Pods-AwesomeSpotlightViewDemoObjC";
sourceTree = "";
};
53B0A71A77F825986EB8036903AEDB8B /* Products */ = {
isa = PBXGroup;
children = (
836F15855C45068D535AA3D03619D0E3 /* AwesomeSpotlightView.framework */,
1E80B687977EF20B6E1B6046C7A863C2 /* Pods_AwesomeSpotlightViewDemoObjC.framework */,
);
name = Products;
sourceTree = "";
};
70CC18D3ED5AAD157B97552B13CE309A /* Pods */ = {
isa = PBXGroup;
children = (
C7200A7F9D2B16E115EC46D172A70795 /* AwesomeSpotlightView */,
);
name = Pods;
sourceTree = "";
};
AF57F69D4F50E167FE0BDD465627CE9F /* Targets Support Files */ = {
isa = PBXGroup;
children = (
500835089CF4264478EE04D41AE5C08F /* Pods-AwesomeSpotlightViewDemoObjC */,
);
name = "Targets Support Files";
sourceTree = "";
};
C1587C66BDE89FD1B6B5B4F7B03C631C /* Support Files */ = {
isa = PBXGroup;
children = (
516949894615FBDFB7BAA09EB416478A /* AwesomeSpotlightView.modulemap */,
4D906D829CA494984535809DAB43BADE /* AwesomeSpotlightView.xcconfig */,
05532F17513A2F4BE63A47151CCCCF8D /* AwesomeSpotlightView-dummy.m */,
FFCB91E0D72F10980B9866DF52DDFE43 /* AwesomeSpotlightView-Info.plist */,
B1056A80344113E08E5E541A32250961 /* AwesomeSpotlightView-prefix.pch */,
6A07A823162D056BCCCEBA0CF544A791 /* AwesomeSpotlightView-umbrella.h */,
);
name = "Support Files";
path = "../Target Support Files/AwesomeSpotlightView";
sourceTree = "";
};
C7200A7F9D2B16E115EC46D172A70795 /* AwesomeSpotlightView */ = {
isa = PBXGroup;
children = (
32173174FF3F0689229601365D383D0A /* AwesomeSpotlight.swift */,
050A239F72F13B758C96128B0C547049 /* AwesomeSpotlightView.swift */,
EF84B86272CD80F37476EC71819C3048 /* AwesomeTabButton.swift */,
71E2DA42E2228E242C373A386DBAFB46 /* Localizator.swift */,
EEDBFCE57DFEBB9D02F3F5E8D464D9ED /* Resources */,
C1587C66BDE89FD1B6B5B4F7B03C631C /* Support Files */,
);
name = AwesomeSpotlightView;
path = AwesomeSpotlightView;
sourceTree = "";
};
CF1408CF629C7361332E53B88F7BD30C = {
isa = PBXGroup;
children = (
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */,
70CC18D3ED5AAD157B97552B13CE309A /* Pods */,
53B0A71A77F825986EB8036903AEDB8B /* Products */,
AF57F69D4F50E167FE0BDD465627CE9F /* Targets Support Files */,
);
sourceTree = "";
};
E169A450ED27AC725DF52953F66D11E0 /* iOS */ = {
isa = PBXGroup;
children = (
40CB39E715FBCDAA142E6513E126200A /* Foundation.framework */,
ECF2A2B0720AE923C22BED3192888BE0 /* UIKit.framework */,
);
name = iOS;
sourceTree = "";
};
EEDBFCE57DFEBB9D02F3F5E8D464D9ED /* Resources */ = {
isa = PBXGroup;
children = (
DFACACEF524C4956B597E3F225273897 /* AwesomeSpotlightViewBundle.bundle */,
);
name = Resources;
sourceTree = "";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
ABF9E78B192F9377D572B5B9784A6853 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
39D183E3DBACA29E1DA16B4DB1888462 /* Pods-AwesomeSpotlightViewDemoObjC-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B803B58868A67417A0EE05435C7595C8 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
651658FF8444E368796BD52A74609062 /* AwesomeSpotlightView-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
14FC0C9E4E078AC230B149162CB0E219 /* AwesomeSpotlightView */ = {
isa = PBXNativeTarget;
buildConfigurationList = F8E5ABB2DA10D923FCFE194284E129DA /* Build configuration list for PBXNativeTarget "AwesomeSpotlightView" */;
buildPhases = (
B803B58868A67417A0EE05435C7595C8 /* Headers */,
DC088C82E61E66C1A28C6FC6DB3296C7 /* Sources */,
579A3669E9587362E21E46239DC720BE /* Frameworks */,
A0576E39AC9AA89C1D36772C6DED6256 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = AwesomeSpotlightView;
productName = AwesomeSpotlightView;
productReference = 836F15855C45068D535AA3D03619D0E3 /* AwesomeSpotlightView.framework */;
productType = "com.apple.product-type.framework";
};
8622C13C4054122A5D93AB6601FB1CD2 /* Pods-AwesomeSpotlightViewDemoObjC */ = {
isa = PBXNativeTarget;
buildConfigurationList = 2F858C8B0F3B215A729657F94CEC2346 /* Build configuration list for PBXNativeTarget "Pods-AwesomeSpotlightViewDemoObjC" */;
buildPhases = (
ABF9E78B192F9377D572B5B9784A6853 /* Headers */,
9783D05E7DE5F6E4DA68171698DEBDEE /* Sources */,
C8500CA61F1A0846F0AB4162FC640C52 /* Frameworks */,
8946C1F6EF364B5EDCFD0D8E2CD70EA3 /* Resources */,
);
buildRules = (
);
dependencies = (
03D4C10A0385F112F65B0E5CA9F10D9F /* PBXTargetDependency */,
);
name = "Pods-AwesomeSpotlightViewDemoObjC";
productName = "Pods-AwesomeSpotlightViewDemoObjC";
productReference = 1E80B687977EF20B6E1B6046C7A863C2 /* Pods_AwesomeSpotlightViewDemoObjC.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0930;
LastUpgradeCheck = 0930;
};
buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = CF1408CF629C7361332E53B88F7BD30C;
productRefGroup = 53B0A71A77F825986EB8036903AEDB8B /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
14FC0C9E4E078AC230B149162CB0E219 /* AwesomeSpotlightView */,
8622C13C4054122A5D93AB6601FB1CD2 /* Pods-AwesomeSpotlightViewDemoObjC */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8946C1F6EF364B5EDCFD0D8E2CD70EA3 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
A0576E39AC9AA89C1D36772C6DED6256 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
391FD413A5F2D90A8CE06D6A1A4E5D14 /* AwesomeSpotlightViewBundle.bundle in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
9783D05E7DE5F6E4DA68171698DEBDEE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9EA464E51BB96CC08B89398C45B186AB /* Pods-AwesomeSpotlightViewDemoObjC-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
DC088C82E61E66C1A28C6FC6DB3296C7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2F94FFFD5C521AF2E0153657D8EA8BEF /* AwesomeSpotlight.swift in Sources */,
403A5434130EAFFAA2539A2100B57496 /* AwesomeSpotlightView-dummy.m in Sources */,
0D3CC051145F48A605E41A9E9467A8EA /* AwesomeSpotlightView.swift in Sources */,
BCACF559971A10803615B48EA9D1B44E /* AwesomeTabButton.swift in Sources */,
A0FBF6CC1A427568CC1E83C52356C6C5 /* Localizator.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
03D4C10A0385F112F65B0E5CA9F10D9F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = AwesomeSpotlightView;
target = 14FC0C9E4E078AC230B149162CB0E219 /* AwesomeSpotlightView */;
targetProxy = 93E5AD4B3BCEF5C188214C394D7AE962 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
3048B0C5C704DFFF688DA57F5380ED58 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 4.2;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
4AD3E88B01635EF6B9C5CD71705A34EE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 4D906D829CA494984535809DAB43BADE /* AwesomeSpotlightView.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-prefix.pch";
INFOPLIST_FILE = "Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MODULEMAP_FILE = "Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView.modulemap";
PRODUCT_MODULE_NAME = AwesomeSpotlightView;
PRODUCT_NAME = AwesomeSpotlightView;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
5B0C8287D755FD95091CF35D87FB8B2D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_DEBUG=1",
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.2;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
ADAFA2F3396DEA28461D1595517AAAC9 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 4D906D829CA494984535809DAB43BADE /* AwesomeSpotlightView.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-prefix.pch";
INFOPLIST_FILE = "Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MODULEMAP_FILE = "Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView.modulemap";
PRODUCT_MODULE_NAME = AwesomeSpotlightView;
PRODUCT_NAME = AwesomeSpotlightView;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
D50048B8BBCB693067256E8E597466AE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7919B21CB361FB75A797085722A89339 /* Pods-AwesomeSpotlightViewDemoObjC.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
E6120B2A11EA597B2EBEE8C047C6B7E1 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 711318556B88FF6E468885198BD712A0 /* Pods-AwesomeSpotlightViewDemoObjC.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
2F858C8B0F3B215A729657F94CEC2346 /* Build configuration list for PBXNativeTarget "Pods-AwesomeSpotlightViewDemoObjC" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D50048B8BBCB693067256E8E597466AE /* Debug */,
E6120B2A11EA597B2EBEE8C047C6B7E1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5B0C8287D755FD95091CF35D87FB8B2D /* Debug */,
3048B0C5C704DFFF688DA57F5380ED58 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F8E5ABB2DA10D923FCFE194284E129DA /* Build configuration list for PBXNativeTarget "AwesomeSpotlightView" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4AD3E88B01635EF6B9C5CD71705A34EE /* Debug */,
ADAFA2F3396DEA28461D1595517AAAC9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
}
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Pods.xcodeproj/xcuserdata/alex.shoshiashvili.xcuserdatad/xcschemes/AwesomeSpotlightView.xcscheme
================================================
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Pods.xcodeproj/xcuserdata/alex.shoshiashvili.xcuserdatad/xcschemes/Pods-AwesomeSpotlightViewDemoObjC.xcscheme
================================================
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Pods.xcodeproj/xcuserdata/alex.shoshiashvili.xcuserdatad/xcschemes/xcschememanagement.plist
================================================
SchemeUserStateAwesomeSpotlightView.xcschemeisShownorderHint0Pods-AwesomeSpotlightViewDemoObjC.xcschemeisShownorderHint1SuppressBuildableAutocreation
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-Info.plist
================================================
CFBundleDevelopmentRegionenCFBundleExecutable${EXECUTABLE_NAME}CFBundleIdentifier${PRODUCT_BUNDLE_IDENTIFIER}CFBundleInfoDictionaryVersion6.0CFBundleName${PRODUCT_NAME}CFBundlePackageTypeFMWKCFBundleShortVersionString0.1.9CFBundleSignature????CFBundleVersion${CURRENT_PROJECT_VERSION}NSPrincipalClass
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-dummy.m
================================================
#import
@interface PodsDummy_AwesomeSpotlightView : NSObject
@end
@implementation PodsDummy_AwesomeSpotlightView
@end
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-prefix.pch
================================================
#ifdef __OBJC__
#import
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView-umbrella.h
================================================
#ifdef __OBJC__
#import
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double AwesomeSpotlightViewVersionNumber;
FOUNDATION_EXPORT const unsigned char AwesomeSpotlightViewVersionString[];
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView.modulemap
================================================
framework module AwesomeSpotlightView {
umbrella header "AwesomeSpotlightView-umbrella.h"
export *
module * { export * }
}
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/AwesomeSpotlightView/AwesomeSpotlightView.xcconfig
================================================
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AwesomeSpotlightView
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "UIKit"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/AwesomeSpotlightView
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-Info.plist
================================================
CFBundleDevelopmentRegionenCFBundleExecutable${EXECUTABLE_NAME}CFBundleIdentifier${PRODUCT_BUNDLE_IDENTIFIER}CFBundleInfoDictionaryVersion6.0CFBundleName${PRODUCT_NAME}CFBundlePackageTypeFMWKCFBundleShortVersionString1.0.0CFBundleSignature????CFBundleVersion${CURRENT_PROJECT_VERSION}NSPrincipalClass
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.markdown
================================================
# Acknowledgements
This application makes use of the following third party libraries:
## AwesomeSpotlightView
Copyright (c) 2017 aleksandrshoshiashvili
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
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-acknowledgements.plist
================================================
PreferenceSpecifiersFooterTextThis application makes use of the following third party libraries:TitleAcknowledgementsTypePSGroupSpecifierFooterTextCopyright (c) 2017 aleksandrshoshiashvili <aleksandr.shoshiashvili@gmail.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.
LicenseMITTitleAwesomeSpotlightViewTypePSGroupSpecifierFooterTextGenerated by CocoaPods - https://cocoapods.orgTitleTypePSGroupSpecifierStringsTableAcknowledgementsTitleAcknowledgements
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-dummy.m
================================================
#import
@interface PodsDummy_Pods_AwesomeSpotlightViewDemoObjC : NSObject
@end
@implementation PodsDummy_Pods_AwesomeSpotlightViewDemoObjC
@end
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-frameworks-Debug-input-files.xcfilelist
================================================
${PODS_ROOT}/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-frameworks.sh
${BUILT_PRODUCTS_DIR}/AwesomeSpotlightView/AwesomeSpotlightView.framework
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-frameworks-Debug-output-files.xcfilelist
================================================
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AwesomeSpotlightView.framework
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-frameworks-Release-input-files.xcfilelist
================================================
${PODS_ROOT}/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-frameworks.sh
${BUILT_PRODUCTS_DIR}/AwesomeSpotlightView/AwesomeSpotlightView.framework
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-frameworks-Release-output-files.xcfilelist
================================================
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AwesomeSpotlightView.framework
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-frameworks.sh
================================================
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
# frameworks to, so exit 0 (signalling the script phase was successful).
exit 0
fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
# Used as a return value for each invocation of `strip_invalid_archs` function.
STRIP_BINARY_RETVAL=0
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
# Copies and strips a vendored framework
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
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 don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
elif [ -L "${binary}" ]; then
echo "Destination binary is symlinked..."
dirname="$(dirname "${binary}")"
binary="${dirname}/$(readlink "${binary}")"
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)
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
}
# Copies and strips a vendored dSYM
install_dsym() {
local source="$1"
if [ -r "$source" ]; then
# Copy the dSYM into a the targets temp dir.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
local basename
basename="$(basename -s .framework.dSYM "$source")"
binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}"
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then
strip_invalid_archs "$binary"
fi
if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
# Move the stripped file into its final destination.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
else
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
fi
fi
}
# Copies the bcsymbolmap files of a vendored framework
install_bcsymbolmap() {
local bcsymbolmap_path="$1"
local destination="${BUILT_PRODUCTS_DIR}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identity
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
# Get architectures for current target binary
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
# Intersect them with the architectures we are building for
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
# If there are no archs supported by this binary then warn the user
if [[ -z "$intersected_archs" ]]; then
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
STRIP_BINARY_RETVAL=0
return
fi
stripped=""
for arch in $binary_archs; do
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary"
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
STRIP_BINARY_RETVAL=1
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/AwesomeSpotlightView/AwesomeSpotlightView.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/AwesomeSpotlightView/AwesomeSpotlightView.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-resources-Debug-input-files.xcfilelist
================================================
${PODS_ROOT}/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-resources.sh
${PODS_ROOT}/AwesomeSpotlightView/AwesomeSpotlightView/Classes/AwesomeSpotlightViewBundle.bundle
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-resources-Debug-output-files.xcfilelist
================================================
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AwesomeSpotlightViewBundle.bundle
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-resources-Release-input-files.xcfilelist
================================================
${PODS_ROOT}/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-resources.sh
${PODS_ROOT}/AwesomeSpotlightView/AwesomeSpotlightView/Classes/AwesomeSpotlightViewBundle.bundle
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-resources-Release-output-files.xcfilelist
================================================
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AwesomeSpotlightViewBundle.bundle
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-resources.sh
================================================
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
# If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
# resources to, so exit 0 (signalling the script phase was successful).
exit 0
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
XCASSET_FILES=()
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
case "${TARGETED_DEVICE_FAMILY:-}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
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}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_resource "${PODS_ROOT}/AwesomeSpotlightView/AwesomeSpotlightView/Classes/AwesomeSpotlightViewBundle.bundle"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_resource "${PODS_ROOT}/AwesomeSpotlightView/AwesomeSpotlightView/Classes/AwesomeSpotlightViewBundle.bundle"
fi
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 != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
else
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
fi
fi
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC-umbrella.h
================================================
#ifdef __OBJC__
#import
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_AwesomeSpotlightViewDemoObjCVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_AwesomeSpotlightViewDemoObjCVersionString[];
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC.debug.xcconfig
================================================
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AwesomeSpotlightView"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AwesomeSpotlightView/AwesomeSpotlightView.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_LDFLAGS = $(inherited) -framework "AwesomeSpotlightView" -framework "Foundation" -framework "UIKit"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC.modulemap
================================================
framework module Pods_AwesomeSpotlightViewDemoObjC {
umbrella header "Pods-AwesomeSpotlightViewDemoObjC-umbrella.h"
export *
module * { export * }
}
================================================
FILE: AwesomeSpotlightViewDemoObjC/Pods/Target Support Files/Pods-AwesomeSpotlightViewDemoObjC/Pods-AwesomeSpotlightViewDemoObjC.release.xcconfig
================================================
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AwesomeSpotlightView"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AwesomeSpotlightView/AwesomeSpotlightView.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_LDFLAGS = $(inherited) -framework "AwesomeSpotlightView" -framework "Foundation" -framework "UIKit"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
================================================
FILE: LICENSE
================================================
Copyright (c) 2017 aleksandrshoshiashvili
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.
================================================
FILE: Package.swift
================================================
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "AwesomeSpotlightView",
platforms: [
.iOS(.v9)
],
products: [
.library(
name: "AwesomeSpotlightView",
targets: ["AwesomeSpotlightView"]),
],
targets: [
.target(
name: "AwesomeSpotlightView",
dependencies: [],
path: "AwesomeSpotlightView/Classes/",
resources: [.process("AwesomeSpotlightViewBundle.bundle")]
),
]
)
================================================
FILE: README.md
================================================
AwesomeSpotlightView is a nice and simple library for iOS written on Swift 5. It's highly customizable and easy-to-use tool. Works perfectly for tutorial or coach in your app.


## Example
To run the example project, clone the repo, and run `pod install` from the Example directory first.
[Swift Example](https://github.com/aleksandrshoshiashvili/AwesomeSpotlightView/tree/master/AwesomeSpotlightViewDemo)
[ObjC Example](https://github.com/aleksandrshoshiashvili/AwesomeSpotlightView/tree/master/AwesomeSpotlightViewDemoObjC)
## Installation
### CocoaPods
AwesomeSpotlightView is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:
```ruby
pod 'AwesomeSpotlightView'
```
### Swift Package Manager (SPM)
To install `AwesomeSpotlightView` using [Swift Package Manager](https://swift.org/package-manager/) add
`.package(name: "AwesomeSpotlightView", url: "https://github.com/aleksandrshoshiashvili/AwesomeSpotlightView.git", from: "0.1.15"),"`
to your Package.swift, then follow the integration tutorial [here](https://swift.org/package-manager#importing-dependencies).
### Manually
* Just drop AwesomeSpotlightView folder in your project.
* You're ready to use AwesomeSpotlightView!
## Usage
```swift
override func viewDidLoad() {
super.viewDidLoad()
let spotlight1 = AwesomeSpotlight(withRect: CGRect(x: 75, y: 75, width: 100, height: 100), shape: .circle, text: "spotlight1", isAllowPassTouchesThroughSpotlight: true)
let spotlight2 = AwesomeSpotlight(withRect: CGRect(x: 20, y: 200, width: 130, height: 25), shape: .rectangle, text: "spotlight2")
let spotlight3 = AwesomeSpotlight(withRect: CGRect(x: 170, y: 50, width: 30, height: 100), shape: .roundRectangle, text: "spotlight3")
let spotlightView = AwesomeSpotlightView(frame: view.frame, spotlight: [spotlight1, spotlight2, spotlight3])
spotlightView.cutoutRadius = 8
spotlightView.delegate = self
view.addSubview(spotlightView)
spotlightView.start()
}
```
You can configure AwesomeSpotlightView before you present it using the `start` method. For example:
```objective-c
spotlightView.continueButtonModel = AwesomeTabButton(title: "Next", font: UIFont.italicSystemFont(ofSize: 16.0), isEnable: true)
spotlightView.skipButtonModel.isEnable = true
spotlightView.skipButtonLastStepTitle = "Finish"
spotlightView.showAllSpotlightsAtOnce = false
spotlightView.start()
```
## Configuration AwesomeSpotlight
### `rect` (CGRect)
The rect of spotlight.
### `shape` (AwesomeSpotlightShape)
Shape of spotlight: .rectangle, .roundRectangle, .circle.
### `margin` (UIEdgeInsets)
Margin for cutout shape. You can set extra space for item with this property.
### `isAllowPassTouchesThroughSpotlight` (Bool)
Set true if you want to allow pass touches through spotlight (allow interaction with view below spotlight) (default: false).
### `text` (String)
The text of the caption.
### `attributedText` (AttributedString)
The attributed text of the caption.
## Configuration AwesomeSpotlightView
### `spotlightsArray` ([AwesomeSpotlight])
Modify the spotlights.
### `spotlightMaskColor` (UIColor)
The color of the mask (default: 0,0,0 alpha 0.6).
### `animationDuration` (Double)
Transition animation duration to the next coach mark (default: 0.3).
### `cutoutRadius` (CGFloat)
The cutout rectangle radius (default: 4.0).
### `maxLabelWidth` (Double)
The captions label is set to have a max width of 280px. Number of lines is figured out automatically based on caption contents.
### `labelSpacing` (CGFloat)
Define how far the captions label appears above or below the cutout (default: 35px).
### `enableArrowDown` (Bool)
Icon with Arrow showed between caption text and caption (default: false).
### `textLabelFont` (UIFont)
Fond of caption text label (default: UIFont.systemFont(ofSize: 20.0)).
### `showAllSpotlightsAtOnce` (Bool)
Showed all spotlight at once (at the same time) (default: false).
### `skipButtonLastStepTitle` (String)
This title will show in skip button when user did open last spotlight. (default: Done)
### `continueButtonModel` (AwesomeTabButton)
### `skipButtonModel` (AwesomeTabButton)
You can setup buttons with `AwesomeTabButton` structure: title, font, backgroundColor and isEnable state.
Default for continueButtonModel: title: "Continue", font: UIFont.boldSystemFont(ofSize: 13.0), isEnable: false
Default for skipButtonModel: title: "Skip", font: UIFont.boldSystemFont(ofSize: 13.0), isEnable: false
## AwesomeSpotlightViewDelegate
### 1. Conform your view controller to the AwesomeSpotlightViewDelegate protocol:
`class ViewController: UIViewController, AwesomeSpotlightViewDelegate`
### 2. Assign the delegate to your AwesomeSpotlightView view instance:
`spotlightView.delegate = self`
### 3. Implement the delegate protocol methods:
*Note: All of the methods are optional. Implement only those that are needed.*
- `func spotlightView(_ spotlightView: AwesomeSpotlightView, willNavigateToIndex index: Int)`
- `func spotlightView(_ spotlightView: AwesomeSpotlightView, didNavigateToIndex index: Int)`
- `func spotlightViewWillCleanup(_ spotlightView: AwesomeSpotlightView, atIndex index: Int)`
- `func spotlightViewDidCleanup(_ spotlightView: AwesomeSpotlightView)`
## Inspired by
* [WSCoachMarksView](https://github.com/workshirt/WSCoachMarksView)
## Author
* [Aleksandr Shoshiashvili](https://github.com/aleksandrshoshiashvili)