├── .swift-version
├── assets
└── demo.gif
├── IncrementableLabel Example
├── Example
│ ├── iOS Example
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ ├── App Icon - Large.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── App Icon - Small.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image Wide.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── LaunchImage.launchimage
│ │ │ │ └── Contents.json
│ │ │ └── AppIcon.appiconset
│ │ │ │ └── Contents.json
│ │ ├── AppDelegate.swift
│ │ ├── Info.plist
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ └── ViewController.swift
│ └── tvOS Example
│ │ ├── Assets.xcassets
│ │ └── Contents.json
│ │ ├── AppDelegate.swift
│ │ ├── Info.plist
│ │ ├── ViewController.swift
│ │ └── Base.lproj
│ │ └── Main.storyboard
└── Example.xcodeproj
│ ├── project.xcworkspace
│ └── contents.xcworkspacedata
│ ├── xcshareddata
│ └── xcschemes
│ │ ├── iOS Example.xcscheme
│ │ └── tvOS Example.xcscheme
│ └── project.pbxproj
├── IncrementableLabel
├── IncrementableLabel.xcodeproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── xcschemes
│ │ │ ├── IncrementableLabel iOS.xcscheme
│ │ │ └── IncrementableLabel tvOS.xcscheme
│ └── project.pbxproj
├── IncrementableLabel Core Tests
│ └── IncrementableLabelTests.swift
├── IncrementableLabel iOS
│ ├── IncrementableLabel.h
│ └── Info.plist
├── IncrementableLabel tvOS
│ ├── IncrementableLabel tvOS.h
│ └── Info.plist
├── IncrementableLabel iOS Tests
│ └── Info.plist
└── IncrementableLabel tvOS Tests
│ └── Info.plist
├── Package.swift
├── IncrementableLabel.xcworkspace
├── xcshareddata
│ └── IDEWorkspaceChecks.plist
└── contents.xcworkspacedata
├── .gitignore
├── IncrementableLabel.podspec
├── .swiftlint.yml
├── LICENSE
├── CHANGELOG.md
├── Source
├── UIColor+Blend.swift
└── IncrementableLabel.swift
├── .travis.yml
└── README.md
/.swift-version:
--------------------------------------------------------------------------------
1 | 4.2
--------------------------------------------------------------------------------
/assets/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbaranes/IncrementableLabel/HEAD/assets/demo.gif
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/tvOS Example/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Package.swift:
--------------------------------------------------------------------------------
1 | // swift-tools-version:5.1
2 |
3 | import PackageDescription
4 |
5 | let package = Package(
6 | name: "IncrementableLabel",
7 | products: [.library(name: "IncrementableLabel", targets: ["IncrementableLabel"])],
8 | targets: [.target(name: "IncrementableLabel", path: "Source") ]
9 | )
10 |
--------------------------------------------------------------------------------
/IncrementableLabel.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/IncrementableLabel.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "tv",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "tv",
9 | "scale" : "2x"
10 | }
11 | ],
12 | "info" : {
13 | "version" : 1,
14 | "author" : "xcode"
15 | }
16 | }
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "layers" : [
3 | {
4 | "filename" : "Front.imagestacklayer"
5 | },
6 | {
7 | "filename" : "Middle.imagestacklayer"
8 | },
9 | {
10 | "filename" : "Back.imagestacklayer"
11 | }
12 | ],
13 | "info" : {
14 | "version" : 1,
15 | "author" : "xcode"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "layers" : [
3 | {
4 | "filename" : "Front.imagestacklayer"
5 | },
6 | {
7 | "filename" : "Middle.imagestacklayer"
8 | },
9 | {
10 | "filename" : "Back.imagestacklayer"
11 | }
12 | ],
13 | "info" : {
14 | "version" : 1,
15 | "author" : "xcode"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // IncrementableLabel
4 | //
5 | // Created by Tom Baranes on 20/01/16.
6 | // Copyright © 2016 Recisio. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @UIApplicationMain
12 | class AppDelegate: UIResponder, UIApplicationDelegate {
13 |
14 | var window: UIWindow?
15 |
16 | private func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
17 | return true
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "landscape",
5 | "idiom" : "tv",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "11.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "landscape",
12 | "idiom" : "tv",
13 | "extent" : "full-screen",
14 | "minimum-system-version" : "9.0",
15 | "scale" : "1x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel Core Tests/IncrementableLabelTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IncrementableLabelTests.swift
3 | // IncrementableLabel
4 | //
5 | // Created by Tom Baranes on 08/05/16.
6 | // Copyright © 2016 Recisio. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | @testable import IncrementableLabel
11 |
12 | class IncrementableLabelTests: XCTestCase {
13 |
14 | override func setUp() {
15 | super.setUp()
16 | }
17 |
18 | override func tearDown() {
19 | super.tearDown()
20 | }
21 |
22 | }
23 |
24 | // MARK: -
25 |
26 | extension IncrementableLabel {
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Mac OS X
2 | .DS_Store
3 |
4 | # Xcode
5 |
6 | ## Build generated
7 | build/
8 | DerivedData
9 |
10 | ## Various settings
11 | *.pbxuser
12 | !default.pbxuser
13 | *.mode1v3
14 | !default.mode1v3
15 | *.mode2v3
16 | !default.mode2v3
17 | *.perspectivev3
18 | !default.perspectivev3
19 | xcuserdata
20 |
21 | ## Other
22 | *.xccheckout
23 | *.moved-aside
24 | *.xcuserstate
25 | *.xcscmblueprint
26 |
27 | ## Obj-C/Swift specific
28 | *.hmap
29 | *.ipa
30 |
31 | ## Playgrounds
32 | timeline.xctimeline
33 | playground.xcworkspace
34 |
35 | # Swift Package Manager
36 | .build/
37 |
38 | # Carthage
39 | Carthage/Build
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/tvOS Example/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // IncrementableLabel
4 | //
5 | // Created by Tom Baranes on 20/01/16.
6 | // Copyright © 2016 Recisio. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @UIApplicationMain
12 | class AppDelegate: UIResponder, UIApplicationDelegate {
13 |
14 | var window: UIWindow?
15 |
16 | private func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
17 | // Override point for customization after application launch.
18 | return true
19 | }
20 |
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel iOS/IncrementableLabel.h:
--------------------------------------------------------------------------------
1 | //
2 | // IncrementableLabel.h
3 | // IncrementableLabel
4 | //
5 | // Created by Tom Baranes on 08/05/16.
6 | // Copyright © 2016 Recisio. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for IncrementableLabel.
12 | FOUNDATION_EXPORT double IncrementableLabelVersionNumber;
13 |
14 | //! Project version string for IncrementableLabel.
15 | FOUNDATION_EXPORT const unsigned char IncrementableLabelVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 |
20 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel tvOS/IncrementableLabel tvOS.h:
--------------------------------------------------------------------------------
1 | //
2 | // IncrementableLabel tvOS.h
3 | // IncrementableLabel tvOS
4 | //
5 | // Created by Tom Baranes on 08/05/16.
6 | // Copyright © 2016 Recisio. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for IncrementableLabel tvOS.
12 | FOUNDATION_EXPORT double IncrementableLabel_tvOSVersionNumber;
13 |
14 | //! Project version string for IncrementableLabel tvOS.
15 | FOUNDATION_EXPORT const unsigned char IncrementableLabel_tvOSVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 |
20 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel iOS Tests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel tvOS Tests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets" : [
3 | {
4 | "size" : "1280x768",
5 | "idiom" : "tv",
6 | "filename" : "App Icon - Large.imagestack",
7 | "role" : "primary-app-icon"
8 | },
9 | {
10 | "size" : "400x240",
11 | "idiom" : "tv",
12 | "filename" : "App Icon - Small.imagestack",
13 | "role" : "primary-app-icon"
14 | },
15 | {
16 | "size" : "2320x720",
17 | "idiom" : "tv",
18 | "filename" : "Top Shelf Image Wide.imageset",
19 | "role" : "top-shelf-image-wide"
20 | },
21 | {
22 | "size" : "1920x720",
23 | "idiom" : "tv",
24 | "filename" : "Top Shelf Image.imageset",
25 | "role" : "top-shelf-image"
26 | }
27 | ],
28 | "info" : {
29 | "version" : 1,
30 | "author" : "xcode"
31 | }
32 | }
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 2.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel tvOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 2.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/IncrementableLabel.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 |
3 | # ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
4 |
5 | s.name = "IncrementableLabel"
6 | s.module_name = "IncrementableLabel"
7 | s.version = "4.0.0"
8 | s.summary = "IncrementableLabel is the easiest way to have incrementable numbers in an UILabel!"
9 | s.description = "IncrementableLabel is the easiest way to have incrementable numbers in an UILabel! Available on iOS and tVOS"
10 | s.homepage = "https://github.com/recisio/IncrementableLabel"
11 | s.license = { :type => "MIT", :file => "LICENSE" }
12 | s.author = { "Recisio" => "tom.baranes@gmail.com" }
13 | s.source = { :git => "https://github.com/recisio/IncrementableLabel.git", :tag => "#{s.version}" }
14 |
15 | # ――― Spec tech ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
16 |
17 | s.ios.deployment_target = '8.0'
18 | s.tvos.deployment_target = '9.0'
19 |
20 | s.requires_arc = true
21 | s.source_files = 'Source/*.swift'
22 |
23 | end
24 |
--------------------------------------------------------------------------------
/.swiftlint.yml:
--------------------------------------------------------------------------------
1 | disabled_rules:
2 | - todo
3 | - force_try
4 | - force_cast
5 | private_outlet:
6 | allow_private_set: true
7 | opt_in_rules:
8 | - closure_spacing
9 | - conditional_returns_on_newline
10 | - empty_count
11 | - explicit_init
12 | - overridden_super_call
13 | - redundant_nil_coalescing
14 | - nimble_operator
15 | - closure_end_indentation
16 | - first_where
17 | - attributes
18 | - operator_usage_whitespace
19 | - prohibited_super_call
20 | - number_separator
21 | - object_literal
22 | - fatal_error_message
23 | - private_outlet
24 | - implicit_return
25 | - multiline_parameters
26 | - vertical_parameter_alignment_on_call
27 | - unneeded_parentheses_in_closure_argument
28 | - joined_default_parameter
29 | - pattern_matching_keywords
30 | - array_init
31 | - contains_over_first_not_nil
32 | - let_var_whitespace
33 | - literal_expression_end_indentation
34 | - multiline_arguments
35 | # - quick_discouraged_call
36 | - quick_discouraged_focused_test
37 | - quick_discouraged_pending_test
38 | - sorted_first_last
39 | - strict_fileprivate
40 | # - trailing_closure // false positive
41 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Tom Baranes
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/tvOS Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | IncrementableLabel
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | UIMainStoryboardFile
28 | Main
29 | UIRequiredDeviceCapabilities
30 |
31 | arm64
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | IncrementableLabel
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | UILaunchStoryboardName
28 | LaunchScreen
29 | UIMainStoryboardFile
30 | Main
31 | UIRequiredDeviceCapabilities
32 |
33 | armv7
34 |
35 | UISupportedInterfaceOrientations
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationLandscapeLeft
39 | UIInterfaceOrientationLandscapeRight
40 |
41 | UISupportedInterfaceOrientations~ipad
42 |
43 | UIInterfaceOrientationPortrait
44 | UIInterfaceOrientationPortraitUpsideDown
45 | UIInterfaceOrientationLandscapeLeft
46 | UIInterfaceOrientationLandscapeRight
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to the project will be documented in this file.
4 |
5 | ---
6 |
7 | ## Next
8 |
9 | #### API breaking changes
10 |
11 | N/A
12 |
13 | #### Enhancements
14 |
15 | N/A
16 |
17 | #### Bug fix
18 |
19 | N/A
20 |
21 | ## [4.0.0](https://github.com/tbaranes/IncrementableLabel/releases/tag/4.0.0) (27-03-2019)
22 |
23 | #### API breaking changes
24 |
25 | - Xcode 10.2 and swift 5 support
26 |
27 | #### Enhancements
28 |
29 | - Added optional variables for three increment methods to add color change animations. Created the UIColor+Blend extension to calculate the color at a certain percentage.
30 |
31 | ## [3.0.0](https://github.com/tbaranes/IncrementableLabel/releases/tag/3.0.0) (18-09-2018)
32 |
33 | #### API breaking changes
34 |
35 | - Swift 4.2 and Xcode 10 support
36 |
37 | ## [2.0.0](https://github.com/tbaranes/IncrementableLabel/releases/tag/2.0.0) (28-11-2017)
38 |
39 | #### API breaking changes
40 |
41 | - Swift 4 and Xcode 9 support
42 |
43 | ## [1.2.0](https://github.com/tbaranes/IncrementableLabel/releases/tag/1.2.0) (11-09-2016)
44 |
45 | #### API breaking changes
46 |
47 | - Swift 3 support. README is up to date, please report if you find any diffs
48 | - Some APIs have been updated to be more swifty, check out the README for more information
49 |
50 | ## [1.1.0](https://github.com/tbaranes/IncrementableLabel/releases/tag/1.1.0) (08/05/2016)
51 |
52 | #### API breaking changes
53 |
54 | - Use `Double` instead of `Float` - [#4](https://github.com/recisio/IncrementableLabel/issues/4)
55 | - The completion block is passed as a parameter in the `Increment***` methods
56 |
57 | #### Enhancements
58 |
59 | - `format` and `easingRate` are now inspectable from the interface builder
60 |
61 | ## [1.0.1](https://github.com/tbaranes/IncrementableLabel/releases/tag/1.0.1) (29/03/2016)
62 |
63 | #### Enhancements
64 |
65 | - Makes all properties public
66 | - Swift 2.2 support
67 |
68 | ## [1.0.0](https://github.com/tbaranes/IncrementableLabel/releases/tag/1.0.0) (27/03/2016)
69 |
70 | First version
71 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // IncrementableLabel
4 | //
5 | // Created by Tom Baranes on 20/01/16.
6 | // Copyright © 2016 Recisio. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import IncrementableLabel
11 |
12 | class ViewController: UIViewController {
13 |
14 | // MARK: Properties
15 |
16 | @IBOutlet weak var label1: IncrementableLabel!
17 | @IBOutlet weak var label2: IncrementableLabel!
18 | @IBOutlet weak var label3: IncrementableLabel!
19 | @IBOutlet weak var label4: IncrementableLabel!
20 | @IBOutlet weak var label5: IncrementableLabel!
21 |
22 | // MARK: Life cycle
23 |
24 | override func viewDidLoad() {
25 | super.viewDidLoad()
26 |
27 | }
28 |
29 | // MARK: IBAction
30 |
31 | @IBAction func startIncrementationPressed(sender: AnyObject) {
32 | label1.increment(fromValue: 0, toValue: 100, duration: 3)
33 |
34 | label2.format = "%f"
35 | label2.increment(fromValue: 0.0, toValue: 100.0, duration: 3)
36 |
37 | label3.option = .easeInOut
38 | label3.stringFormatter = { value in
39 | return String(format: "EaseInOutAnimation: %d", Int(value))
40 | }
41 | label3.increment(fromValue: 0.0, toValue: 100.0, duration: 3)
42 |
43 | label4.option = .easeOut
44 | label4.attributedTextFormatter = { value in
45 | let string = String(format: "EaseOutAnimation + attributedString: %d", Int(value))
46 | let attributedString = NSMutableAttributedString(string: string, attributes: [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 16.0)])
47 | return attributedString
48 | }
49 | label4.incrementFromZero(toValue: 1000, duration: 1)
50 |
51 | label5.textColor = UIColor.black
52 | label5.incrementFromZero(toValue: 1000, duration: 1) {
53 | self.label5.textColor = UIColor.green
54 | }
55 | }
56 |
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/tvOS Example/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // IncrementableLabel
4 | //
5 | // Created by Tom Baranes on 20/01/16.
6 | // Copyright © 2016 Recisio. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import IncrementableLabel
11 |
12 | class ViewController: UIViewController {
13 |
14 | // MARK: Properties
15 |
16 | @IBOutlet weak var label1: IncrementableLabel!
17 | @IBOutlet weak var label2: IncrementableLabel!
18 | @IBOutlet weak var label3: IncrementableLabel!
19 | @IBOutlet weak var label4: IncrementableLabel!
20 | @IBOutlet weak var label5: IncrementableLabel!
21 |
22 | // MARK: Life cycle
23 |
24 | override func viewDidLoad() {
25 | super.viewDidLoad()
26 |
27 | }
28 |
29 | // MARK: IBAction
30 |
31 | @IBAction func startIncrementationPressed(sender: AnyObject) {
32 | label1.increment(fromValue: 0, toValue: 100, duration: 3)
33 |
34 | label2.format = "%f"
35 | label2.increment(fromValue: 0.0, toValue: 100.0, duration: 3)
36 |
37 | label3.option = .easeInOut
38 | label3.stringFormatter = { value in
39 | return String(format: "EaseInOutAnimation: %d", Int(value))
40 | }
41 | label3.increment(fromValue: 0.0, toValue: 100.0, duration: 3)
42 |
43 | label4.option = .easeOut
44 | label4.attributedTextFormatter = { value in
45 | let string = String(format: "EaseOutAnimation + attributedString: %d", Int(value))
46 | let attributedString = NSMutableAttributedString(string: string, attributes: [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 16.0)])
47 | return attributedString
48 | }
49 | label4.incrementFromZero(toValue: 1000, duration: 1)
50 |
51 | label5.textColor = UIColor.black
52 | label5.incrementFromZero(toValue: 1000, duration: 1) {
53 | self.label5.textColor = UIColor.green
54 | }
55 | }
56 |
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/Source/UIColor+Blend.swift:
--------------------------------------------------------------------------------
1 | // UIColor+Blend.swift
2 | //
3 | // Copyright (c) 2016 Recisio (http://www.recisio.com)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | import UIKit
24 |
25 | extension UIColor{
26 | //From https://stackoverflow.com/a/39779603
27 | func blend(to: UIColor, percent: Double) -> UIColor {
28 | var fR : CGFloat = 0.0
29 | var fG : CGFloat = 0.0
30 | var fB : CGFloat = 0.0
31 | var tR : CGFloat = 0.0
32 | var tG : CGFloat = 0.0
33 | var tB : CGFloat = 0.0
34 |
35 | self.getRed(&fR, green: &fG, blue: &fB, alpha: nil)
36 | to.getRed(&tR, green: &tG, blue: &tB, alpha: nil)
37 |
38 | let dR = tR - fR
39 | let dG = tG - fG
40 | let dB = tB - fB
41 |
42 | let rR = fR + dR * CGFloat(percent)
43 | let rG = fG + dG * CGFloat(percent)
44 | let rB = fB + dB * CGFloat(percent)
45 |
46 | return UIColor(red: rR, green: rG, blue: rB, alpha: 1.0)
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: objective-c
2 | osx_image: xcode10.2
3 | notifications:
4 | email: false
5 | branches:
6 | only:
7 | - master
8 | env:
9 | global:
10 | - LC_CTYPE=en_US.UTF-8
11 | - LANG=en_US.UTF-8
12 | - WORKSPACE=IncrementableLabel.xcworkspace
13 | - IOS_FRAMEWORK_SCHEME="IncrementableLabel iOS"
14 | - TVOS_FRAMEWORK_SCHEME="IncrementableLabel tvOS"
15 | - EXAMPLE_SCHEME="iOS Example"
16 | matrix:
17 | - DESTINATION="OS=11.4,name=iPhone 6s" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES"
18 | - DESTINATION="OS=12.2,name=iPhone Xs" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES"
19 | - DESTINATION="OS=12.2,name=Apple TV" SCHEME="$TVOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO"
20 | script:
21 | - set -o pipefail
22 | - xcodebuild -version
23 | - xcodebuild -showsdks
24 |
25 | # Build Framework in Debug and Run Tests if specified
26 | - if [ $RUN_TESTS == "YES" ]; then
27 | xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test | xcpretty;
28 | else
29 | xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty;
30 | fi
31 |
32 | # Build Framework in Release and Run Tests if specified
33 | - if [ $RUN_TESTS == "YES" ]; then
34 | xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test | xcpretty;
35 | else
36 | xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO build | xcpretty;
37 | fi
38 |
39 | # Build Example in Debug if specified
40 | - if [ $BUILD_EXAMPLE == "YES" ]; then
41 | xcodebuild -workspace "$WORKSPACE" -scheme "$EXAMPLE_SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty;
42 | fi
43 |
44 | # Run `pod lib lint` if specified
45 | - if [ $POD_LINT == "YES" ]; then
46 | pod lib lint;
47 | fi
48 |
49 | after_success:
50 | - sleep 5 # Workaround for https://github.com/travis-ci/travis-ci/issues/4725
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example.xcodeproj/xcshareddata/xcschemes/iOS Example.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example.xcodeproj/xcshareddata/xcschemes/tvOS Example.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # IncrementableLabel
2 |
3 | [](https://travis-ci.org/recisio/IncrementableLabel)
4 | 
5 | [](https://github.com/recisio/IncrementableLabel)
6 | [](http://cocoadocs.org/docsets/IncrementableLabel)
7 | 
8 |
9 | IncrementableLabel is the easiest way to have incrementable numbers in an UILabel!
10 |
11 | 
12 |
13 | ## Usage
14 |
15 | ```swift
16 | let myIncrementableLabel = IncrementableLabel(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
17 | myIncrementableLabel.incrementFromValue(0, toValue: 100, duration: 1)
18 | ```
19 |
20 | Check the sample project for advanced usage
21 |
22 | ## Installation
23 |
24 | - iOS 8.0+
25 | - tvOS 9.0+
26 |
27 | ### CocoaPods Installation
28 |
29 | IncrementableLabel is available on CocoaPods. Just add the following to your Podfile:
30 |
31 | ```
32 | pod 'IncrementableLabel'
33 | ```
34 |
35 | ### Swift Package Manager
36 |
37 | IncrementableLabel is available on SPM. Just add the following to your Package file:
38 |
39 | ```swift
40 | import PackageDescription
41 |
42 | let package = Package(
43 | dependencies: [
44 | .Package(url: "https://github.com/recisio/IncrementableLabel.git", majorVersion: 1)
45 | ]
46 | )
47 | ```
48 |
49 | ### Manual Installation
50 |
51 | Just drag the `Source/*.swift` files into your project.
52 |
53 |
54 | ## IncrementableLabel properties
55 |
56 | ```swift
57 | var option: IncrementableLabelOptions = .linear
58 | ```
59 |
60 | An options indicating how you want to perform the incrementation:
61 | - linear
62 | - easeIn
63 | - easeOut
64 | - easeInOut
65 |
66 | ```swift
67 | typealias StringFormatter = (Float) -> String
68 | var stringFormatter: StringFormatter?
69 |
70 | typealias AttributedTextFormatter = (Float) -> NSAttributedString
71 | var attributedTextFormatter: AttributedTextFormatter?
72 | ```
73 |
74 | A callback closure which permits a greater control on how the text (attributed or not) is formatted between each incrementation.
75 |
76 | ```swift
77 | var easingRate: Float = 3.0
78 | ```
79 |
80 | The rate used when an `option` is used.
81 |
82 | ```swift
83 | var format: String = "%d"
84 | ```
85 |
86 | The format is used to set the text in the label. You can set the format to `%f` in order to display decimals.
87 |
88 | ```swift
89 | public var currentValue: Double
90 | ```
91 |
92 | The label's value during the incrementation
93 |
94 | ## IncrementableLabel methods
95 |
96 | ```swift
97 | func increment(fromValue: Float, toValue: Float, duration: Float = 0.3, fromColor: UIColor? = nil, toColor: UIColor? = nil, completion: IncrementableLabelCompletion? = nil)
98 | ```
99 |
100 | Starts the incrementation `fromValue` to `toValue`, and the text color changes from `fromColor` to `toColor`. The duration by default will be 0.3
101 |
102 | ```swift
103 | func incrementFromCurrentValue(toValue: Float, duration: Float = 0.3, fromColor: UIColor? = nil, toColor: UIColor? = nil, completion: IncrementableLabelCompletion? = nil)
104 | ```
105 |
106 | Starts the incrementation from the current value to `toValue`. The duration by default will be 0.3
107 |
108 | ```swift
109 | func incrementFromZero(toValue: Float, duration: Float = 0.3, fromColor: UIColor? = nil, toColor: UIColor? = nil, completion: IncrementableLabelCompletion? = nil)
110 | ```
111 |
112 | Starts the incrementation from zero to `toValue`. The duration by default will be 0.3
113 |
114 | ## What's next
115 |
116 | - Any suggestions?
117 |
118 | ## Contribution
119 |
120 | - If you found a **bug**, open an **issue**
121 | - If you have a **feature request**, open an **issue**
122 | - If you want to **contribute**, submit a **pull request**
123 |
124 | ## Licence
125 |
126 | IncrementableLabel is available under the MIT license. See the LICENSE file for more info.
127 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel.xcodeproj/xcshareddata/xcschemes/IncrementableLabel iOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
49 |
50 |
51 |
52 |
53 |
54 |
64 |
65 |
71 |
72 |
73 |
74 |
75 |
76 |
82 |
83 |
89 |
90 |
91 |
92 |
94 |
95 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel.xcodeproj/xcshareddata/xcschemes/IncrementableLabel tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
49 |
50 |
51 |
52 |
53 |
54 |
64 |
65 |
71 |
72 |
73 |
74 |
75 |
76 |
82 |
83 |
89 |
90 |
91 |
92 |
94 |
95 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/Source/IncrementableLabel.swift:
--------------------------------------------------------------------------------
1 | // IncrementableLabel.swift
2 | //
3 | // Copyright (c) 2016 Recisio (http://www.recisio.com)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | import UIKit
24 |
25 | public enum IncrementableLabelOptions {
26 | case linear, easeIn, easeOut, easeInOut
27 | }
28 |
29 | public typealias StringFormatter = (Double) -> String
30 | public typealias AttributedTextFormatter = (Double) -> NSAttributedString
31 | public typealias Completion = () -> Void
32 |
33 | @IBDesignable
34 | public class IncrementableLabel: UILabel {
35 |
36 | // MARK: Properties
37 |
38 | /// An options indicating how you want to perform the incrementation:
39 | public var option: IncrementableLabelOptions = .linear
40 |
41 | /// A callback closure which permits a greater control on how the text (attributed or not) is formatted between each incrementation.
42 | public var stringFormatter: StringFormatter?
43 | public var attributedTextFormatter: AttributedTextFormatter?
44 |
45 | /// The rate used when an option is used.
46 | @IBInspectable public var easingRate: Double = 3.0
47 |
48 | /// The format is used to set the text in the label. You can set the format to %f in order to display decimals.
49 | @IBInspectable public var format: String = "%d" {
50 | didSet {
51 | updateText()
52 | }
53 | }
54 |
55 | // MARK: Private properties
56 |
57 | private var timer: Timer?
58 | private var fromValue: Double = 0.0
59 | private var toValue: Double = 0.0
60 |
61 | private var duration: TimeInterval = 0.3
62 | private var progress: TimeInterval = 0.0
63 | private var lastUpdate: TimeInterval = 0.0
64 | private var completion: Completion?
65 |
66 | private var fromColor: UIColor?
67 | private var toColor: UIColor?
68 |
69 | // MARK: Getter
70 |
71 | /** The label's value during the incrementation */
72 | public var currentValue: Double {
73 | if progress >= duration {
74 | return toValue
75 | }
76 | let percent = progress / duration
77 | return fromValue + (nextValueForCurrentOption(value: percent) * (toValue - fromValue))
78 | }
79 |
80 | }
81 |
82 | // MARK: Increment launcher
83 |
84 | extension IncrementableLabel {
85 |
86 | /** Starts the incrementation fromValue to toValue */
87 | public func increment(fromValue: Double, toValue: Double, duration: Double = 0.3, fromColor: UIColor? = nil, toColor: UIColor? = nil, completion: Completion? = nil) {
88 | self.completion = completion
89 | self.fromColor = fromColor
90 | self.toColor = toColor
91 | startIncrementation(fromValue: fromValue, toValue: toValue, duration: duration)
92 | }
93 |
94 | /** Starts the incrementation from the current value to toValue */
95 | public func incrementFromCurrentValue(toValue: Double, duration: Double = 0.3, fromColor: UIColor? = nil, toColor: UIColor? = nil, completion: Completion? = nil) {
96 | self.completion = completion
97 | self.fromColor = fromColor
98 | self.toColor = toColor
99 | startIncrementation(fromValue: currentValue, toValue: toValue, duration: duration)
100 | }
101 |
102 | /** Starts the incrementation from zero to toValue */
103 | public func incrementFromZero(toValue: Double, duration: Double = 0.3, fromColor: UIColor? = nil, toColor: UIColor? = nil, completion: Completion? = nil) {
104 | self.completion = completion
105 | self.fromColor = fromColor
106 | self.toColor = toColor
107 | startIncrementation(fromValue: 0.0, toValue: toValue, duration: duration)
108 | }
109 |
110 | }
111 |
112 | // MARK: - Incrementation
113 |
114 | extension IncrementableLabel {
115 |
116 | private func startIncrementation(fromValue: Double, toValue: Double, duration: Double) {
117 | self.fromValue = fromValue
118 | self.toValue = toValue
119 | self.duration = Double(duration)
120 | progress = 0
121 | lastUpdate = NSDate.timeIntervalSinceReferenceDate
122 |
123 | self.timer?.invalidate()
124 | self.timer = nil
125 |
126 | let timer = Timer.scheduledTimer(timeInterval: 1.0 / 30.0, target: self, selector: #selector(incrementValue), userInfo: nil, repeats: true)
127 | RunLoop.main.add(timer, forMode: RunLoop.Mode.common)
128 | RunLoop.main.add(timer, forMode: RunLoop.Mode.tracking)
129 | self.timer = timer
130 | }
131 |
132 | @objc
133 | private func incrementValue() {
134 | let now = NSDate.timeIntervalSinceReferenceDate
135 | progress += now - lastUpdate
136 | lastUpdate = now
137 | if progress >= duration {
138 | timer?.invalidate()
139 | timer = nil
140 | progress = duration
141 | }
142 |
143 | updateText()
144 | if progress == duration {
145 | completion?()
146 | }
147 | }
148 |
149 | private func updateText() {
150 | if let formatStringClosure = stringFormatter {
151 | text = formatStringClosure(currentValue)
152 | } else if let attributedTextClosure = attributedTextFormatter {
153 | attributedText = attributedTextClosure(currentValue)
154 | } else {
155 | let formatRange = format.startIndex.. Double {
175 | switch option {
176 | case .linear: return nextValueForLinearOption(value: value)
177 | case .easeIn: return nextValueForEaseInOption(value: value)
178 | case .easeOut: return nextValueForEaseInOutOption(value: value)
179 | case .easeInOut: return nextValueForEaseInOutOption(value: value)
180 | }
181 | }
182 |
183 | private func nextValueForLinearOption(value: Double) -> Double {
184 | return value
185 | }
186 |
187 | private func nextValueForEaseInOption(value: Double) -> Double {
188 | return Double(powf(Float(value), Float(easingRate)))
189 | }
190 |
191 | private func nextValueForEaseOutOption(value: Double) -> Double {
192 | return 1.0 - Double(powf(1.0 - Float(value), Float(easingRate)))
193 | }
194 |
195 | private func nextValueForEaseInOutOption(value: Double) -> Double {
196 | var value = value
197 | let sign: Double = easingRate.truncatingRemainder(dividingBy: 2) == 0 ? -1 : 1
198 | value *= 2
199 | if value < 1 {
200 | return 0.5 * Double(powf(Float(value), Float(easingRate)))
201 | }
202 | return sign * 0.5 * (Double(powf(Float(value) - 2, Float(easingRate))) + sign * 2)
203 | }
204 |
205 | }
206 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/tvOS Example/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
27 |
32 |
37 |
42 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example/iOS Example/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
28 |
33 |
38 |
43 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/IncrementableLabel Example/Example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | E21DC8B41D5E56C800424556 /* IncrementableLabel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E26980E21CDEA8F4001E9707 /* IncrementableLabel.framework */; };
11 | E21DC8B51D5E56C800424556 /* IncrementableLabel.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E26980E21CDEA8F4001E9707 /* IncrementableLabel.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
12 | E21DC8B91D5E56CD00424556 /* IncrementableLabel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E26980E41CDEA8F4001E9707 /* IncrementableLabel.framework */; };
13 | E21DC8BA1D5E56CD00424556 /* IncrementableLabel.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E26980E41CDEA8F4001E9707 /* IncrementableLabel.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
14 | E2C3AF571C4FC06F00EB275B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2C3AF561C4FC06F00EB275B /* AppDelegate.swift */; };
15 | E2C3AF591C4FC06F00EB275B /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2C3AF581C4FC06F00EB275B /* ViewController.swift */; };
16 | E2C3AF5C1C4FC06F00EB275B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E2C3AF5A1C4FC06F00EB275B /* Main.storyboard */; };
17 | E2C3AF5E1C4FC06F00EB275B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E2C3AF5D1C4FC06F00EB275B /* Assets.xcassets */; };
18 | E2C3AF631C4FC0ED00EB275B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E298E3EE1C4F8A41009704B1 /* AppDelegate.swift */; };
19 | E2C3AF641C4FC0ED00EB275B /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E298E3F01C4F8A41009704B1 /* ViewController.swift */; };
20 | E2C3AF651C4FC11200EB275B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E298E3F21C4F8A41009704B1 /* Main.storyboard */; };
21 | E2C3AF661C4FC11500EB275B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E298E3F51C4F8A41009704B1 /* Assets.xcassets */; };
22 | E2C3AF671C4FC11900EB275B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E298E3F71C4F8A41009704B1 /* LaunchScreen.storyboard */; };
23 | /* End PBXBuildFile section */
24 |
25 | /* Begin PBXContainerItemProxy section */
26 | E21DC8B61D5E56C900424556 /* PBXContainerItemProxy */ = {
27 | isa = PBXContainerItemProxy;
28 | containerPortal = E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */;
29 | proxyType = 1;
30 | remoteGlobalIDString = E269808F1CDEA6DB001E9707;
31 | remoteInfo = "IncrementableLabel iOS";
32 | };
33 | E21DC8BB1D5E56CD00424556 /* PBXContainerItemProxy */ = {
34 | isa = PBXContainerItemProxy;
35 | containerPortal = E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */;
36 | proxyType = 1;
37 | remoteGlobalIDString = E26980B21CDEA7A6001E9707;
38 | remoteInfo = "IncrementableLabel tvOS";
39 | };
40 | E26980E11CDEA8F4001E9707 /* PBXContainerItemProxy */ = {
41 | isa = PBXContainerItemProxy;
42 | containerPortal = E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */;
43 | proxyType = 2;
44 | remoteGlobalIDString = E26980901CDEA6DB001E9707;
45 | remoteInfo = "IncrementableLabel iOS";
46 | };
47 | E26980E31CDEA8F4001E9707 /* PBXContainerItemProxy */ = {
48 | isa = PBXContainerItemProxy;
49 | containerPortal = E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */;
50 | proxyType = 2;
51 | remoteGlobalIDString = E26980B31CDEA7A6001E9707;
52 | remoteInfo = "IncrementableLabel tvOS";
53 | };
54 | E26981131CDEB17B001E9707 /* PBXContainerItemProxy */ = {
55 | isa = PBXContainerItemProxy;
56 | containerPortal = E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */;
57 | proxyType = 2;
58 | remoteGlobalIDString = E26980EA1CDEAAB3001E9707;
59 | remoteInfo = "IncrementableLabel iOS Tests";
60 | };
61 | E26981151CDEB17B001E9707 /* PBXContainerItemProxy */ = {
62 | isa = PBXContainerItemProxy;
63 | containerPortal = E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */;
64 | proxyType = 2;
65 | remoteGlobalIDString = E26980FA1CDEAADF001E9707;
66 | remoteInfo = "IncrementableLabel tvOS Tests";
67 | };
68 | /* End PBXContainerItemProxy section */
69 |
70 | /* Begin PBXCopyFilesBuildPhase section */
71 | E21DC8B81D5E56C900424556 /* Embed Frameworks */ = {
72 | isa = PBXCopyFilesBuildPhase;
73 | buildActionMask = 2147483647;
74 | dstPath = "";
75 | dstSubfolderSpec = 10;
76 | files = (
77 | E21DC8B51D5E56C800424556 /* IncrementableLabel.framework in Embed Frameworks */,
78 | );
79 | name = "Embed Frameworks";
80 | runOnlyForDeploymentPostprocessing = 0;
81 | };
82 | E21DC8BD1D5E56CD00424556 /* Embed Frameworks */ = {
83 | isa = PBXCopyFilesBuildPhase;
84 | buildActionMask = 2147483647;
85 | dstPath = "";
86 | dstSubfolderSpec = 10;
87 | files = (
88 | E21DC8BA1D5E56CD00424556 /* IncrementableLabel.framework in Embed Frameworks */,
89 | );
90 | name = "Embed Frameworks";
91 | runOnlyForDeploymentPostprocessing = 0;
92 | };
93 | /* End PBXCopyFilesBuildPhase section */
94 |
95 | /* Begin PBXFileReference section */
96 | E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = IncrementableLabel.xcodeproj; path = ../IncrementableLabel/IncrementableLabel.xcodeproj; sourceTree = ""; };
97 | E298E3EE1C4F8A41009704B1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
98 | E298E3F01C4F8A41009704B1 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
99 | E298E3F31C4F8A41009704B1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
100 | E298E3F51C4F8A41009704B1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
101 | E298E3F81C4F8A41009704B1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
102 | E298E3FA1C4F8A41009704B1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
103 | E2C3AF3E1C4FBFB300EB275B /* iOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
104 | E2C3AF541C4FC06F00EB275B /* tvOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "tvOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
105 | E2C3AF561C4FC06F00EB275B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
106 | E2C3AF581C4FC06F00EB275B /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
107 | E2C3AF5B1C4FC06F00EB275B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
108 | E2C3AF5D1C4FC06F00EB275B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
109 | E2C3AF5F1C4FC06F00EB275B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
110 | /* End PBXFileReference section */
111 |
112 | /* Begin PBXFrameworksBuildPhase section */
113 | E2C3AF3B1C4FBFB300EB275B /* Frameworks */ = {
114 | isa = PBXFrameworksBuildPhase;
115 | buildActionMask = 2147483647;
116 | files = (
117 | E21DC8B41D5E56C800424556 /* IncrementableLabel.framework in Frameworks */,
118 | );
119 | runOnlyForDeploymentPostprocessing = 0;
120 | };
121 | E2C3AF511C4FC06F00EB275B /* Frameworks */ = {
122 | isa = PBXFrameworksBuildPhase;
123 | buildActionMask = 2147483647;
124 | files = (
125 | E21DC8B91D5E56CD00424556 /* IncrementableLabel.framework in Frameworks */,
126 | );
127 | runOnlyForDeploymentPostprocessing = 0;
128 | };
129 | /* End PBXFrameworksBuildPhase section */
130 |
131 | /* Begin PBXGroup section */
132 | E26980DD1CDEA8F4001E9707 /* Products */ = {
133 | isa = PBXGroup;
134 | children = (
135 | E26980E21CDEA8F4001E9707 /* IncrementableLabel.framework */,
136 | E26981141CDEB17B001E9707 /* IncrementableLabel iOS Tests.xctest */,
137 | E26980E41CDEA8F4001E9707 /* IncrementableLabel.framework */,
138 | E26981161CDEB17B001E9707 /* IncrementableLabel tvOS Tests.xctest */,
139 | );
140 | name = Products;
141 | sourceTree = "";
142 | };
143 | E298E3E21C4F8A41009704B1 = {
144 | isa = PBXGroup;
145 | children = (
146 | E298E3ED1C4F8A41009704B1 /* iOS Example */,
147 | E2C3AF551C4FC06F00EB275B /* tvOS Example */,
148 | E298E3EC1C4F8A41009704B1 /* Products */,
149 | E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */,
150 | );
151 | sourceTree = "";
152 | };
153 | E298E3EC1C4F8A41009704B1 /* Products */ = {
154 | isa = PBXGroup;
155 | children = (
156 | E2C3AF3E1C4FBFB300EB275B /* iOS Example.app */,
157 | E2C3AF541C4FC06F00EB275B /* tvOS Example.app */,
158 | );
159 | name = Products;
160 | sourceTree = "";
161 | };
162 | E298E3ED1C4F8A41009704B1 /* iOS Example */ = {
163 | isa = PBXGroup;
164 | children = (
165 | E298E3EE1C4F8A41009704B1 /* AppDelegate.swift */,
166 | E298E3F01C4F8A41009704B1 /* ViewController.swift */,
167 | E298E3F21C4F8A41009704B1 /* Main.storyboard */,
168 | E298E3F51C4F8A41009704B1 /* Assets.xcassets */,
169 | E298E3F71C4F8A41009704B1 /* LaunchScreen.storyboard */,
170 | E298E3FA1C4F8A41009704B1 /* Info.plist */,
171 | );
172 | name = "iOS Example";
173 | path = "Example/iOS Example";
174 | sourceTree = "";
175 | };
176 | E2C3AF551C4FC06F00EB275B /* tvOS Example */ = {
177 | isa = PBXGroup;
178 | children = (
179 | E2C3AF561C4FC06F00EB275B /* AppDelegate.swift */,
180 | E2C3AF581C4FC06F00EB275B /* ViewController.swift */,
181 | E2C3AF5A1C4FC06F00EB275B /* Main.storyboard */,
182 | E2C3AF5D1C4FC06F00EB275B /* Assets.xcassets */,
183 | E2C3AF5F1C4FC06F00EB275B /* Info.plist */,
184 | );
185 | name = "tvOS Example";
186 | path = "Example/tvOS Example";
187 | sourceTree = "";
188 | };
189 | /* End PBXGroup section */
190 |
191 | /* Begin PBXNativeTarget section */
192 | E2C3AF3D1C4FBFB300EB275B /* iOS Example */ = {
193 | isa = PBXNativeTarget;
194 | buildConfigurationList = E2C3AF4D1C4FBFB300EB275B /* Build configuration list for PBXNativeTarget "iOS Example" */;
195 | buildPhases = (
196 | E2C3AF3A1C4FBFB300EB275B /* Sources */,
197 | E2C3AF3B1C4FBFB300EB275B /* Frameworks */,
198 | E2C3AF3C1C4FBFB300EB275B /* Resources */,
199 | E21DC8B81D5E56C900424556 /* Embed Frameworks */,
200 | );
201 | buildRules = (
202 | );
203 | dependencies = (
204 | E21DC8B71D5E56C900424556 /* PBXTargetDependency */,
205 | );
206 | name = "iOS Example";
207 | productName = IncrementableLabel;
208 | productReference = E2C3AF3E1C4FBFB300EB275B /* iOS Example.app */;
209 | productType = "com.apple.product-type.application";
210 | };
211 | E2C3AF531C4FC06F00EB275B /* tvOS Example */ = {
212 | isa = PBXNativeTarget;
213 | buildConfigurationList = E2C3AF601C4FC06F00EB275B /* Build configuration list for PBXNativeTarget "tvOS Example" */;
214 | buildPhases = (
215 | E2C3AF501C4FC06F00EB275B /* Sources */,
216 | E2C3AF511C4FC06F00EB275B /* Frameworks */,
217 | E2C3AF521C4FC06F00EB275B /* Resources */,
218 | E21DC8BD1D5E56CD00424556 /* Embed Frameworks */,
219 | );
220 | buildRules = (
221 | );
222 | dependencies = (
223 | E21DC8BC1D5E56CD00424556 /* PBXTargetDependency */,
224 | );
225 | name = "tvOS Example";
226 | productName = IncrementableLabel;
227 | productReference = E2C3AF541C4FC06F00EB275B /* tvOS Example.app */;
228 | productType = "com.apple.product-type.application";
229 | };
230 | /* End PBXNativeTarget section */
231 |
232 | /* Begin PBXProject section */
233 | E298E3E31C4F8A41009704B1 /* Project object */ = {
234 | isa = PBXProject;
235 | attributes = {
236 | LastSwiftUpdateCheck = 0720;
237 | LastUpgradeCheck = 1020;
238 | ORGANIZATIONNAME = Recisio;
239 | TargetAttributes = {
240 | E2C3AF3D1C4FBFB300EB275B = {
241 | CreatedOnToolsVersion = 7.2;
242 | LastSwiftMigration = 0900;
243 | ProvisioningStyle = Manual;
244 | };
245 | E2C3AF531C4FC06F00EB275B = {
246 | CreatedOnToolsVersion = 7.2;
247 | LastSwiftMigration = 0800;
248 | ProvisioningStyle = Manual;
249 | };
250 | };
251 | };
252 | buildConfigurationList = E298E3E61C4F8A41009704B1 /* Build configuration list for PBXProject "Example" */;
253 | compatibilityVersion = "Xcode 3.2";
254 | developmentRegion = en;
255 | hasScannedForEncodings = 0;
256 | knownRegions = (
257 | en,
258 | Base,
259 | );
260 | mainGroup = E298E3E21C4F8A41009704B1;
261 | productRefGroup = E298E3EC1C4F8A41009704B1 /* Products */;
262 | projectDirPath = "";
263 | projectReferences = (
264 | {
265 | ProductGroup = E26980DD1CDEA8F4001E9707 /* Products */;
266 | ProjectRef = E26980DC1CDEA8F4001E9707 /* IncrementableLabel.xcodeproj */;
267 | },
268 | );
269 | projectRoot = "";
270 | targets = (
271 | E2C3AF3D1C4FBFB300EB275B /* iOS Example */,
272 | E2C3AF531C4FC06F00EB275B /* tvOS Example */,
273 | );
274 | };
275 | /* End PBXProject section */
276 |
277 | /* Begin PBXReferenceProxy section */
278 | E26980E21CDEA8F4001E9707 /* IncrementableLabel.framework */ = {
279 | isa = PBXReferenceProxy;
280 | fileType = wrapper.framework;
281 | path = IncrementableLabel.framework;
282 | remoteRef = E26980E11CDEA8F4001E9707 /* PBXContainerItemProxy */;
283 | sourceTree = BUILT_PRODUCTS_DIR;
284 | };
285 | E26980E41CDEA8F4001E9707 /* IncrementableLabel.framework */ = {
286 | isa = PBXReferenceProxy;
287 | fileType = wrapper.framework;
288 | path = IncrementableLabel.framework;
289 | remoteRef = E26980E31CDEA8F4001E9707 /* PBXContainerItemProxy */;
290 | sourceTree = BUILT_PRODUCTS_DIR;
291 | };
292 | E26981141CDEB17B001E9707 /* IncrementableLabel iOS Tests.xctest */ = {
293 | isa = PBXReferenceProxy;
294 | fileType = wrapper.cfbundle;
295 | path = "IncrementableLabel iOS Tests.xctest";
296 | remoteRef = E26981131CDEB17B001E9707 /* PBXContainerItemProxy */;
297 | sourceTree = BUILT_PRODUCTS_DIR;
298 | };
299 | E26981161CDEB17B001E9707 /* IncrementableLabel tvOS Tests.xctest */ = {
300 | isa = PBXReferenceProxy;
301 | fileType = wrapper.cfbundle;
302 | path = "IncrementableLabel tvOS Tests.xctest";
303 | remoteRef = E26981151CDEB17B001E9707 /* PBXContainerItemProxy */;
304 | sourceTree = BUILT_PRODUCTS_DIR;
305 | };
306 | /* End PBXReferenceProxy section */
307 |
308 | /* Begin PBXResourcesBuildPhase section */
309 | E2C3AF3C1C4FBFB300EB275B /* Resources */ = {
310 | isa = PBXResourcesBuildPhase;
311 | buildActionMask = 2147483647;
312 | files = (
313 | E2C3AF671C4FC11900EB275B /* LaunchScreen.storyboard in Resources */,
314 | E2C3AF661C4FC11500EB275B /* Assets.xcassets in Resources */,
315 | E2C3AF651C4FC11200EB275B /* Main.storyboard in Resources */,
316 | );
317 | runOnlyForDeploymentPostprocessing = 0;
318 | };
319 | E2C3AF521C4FC06F00EB275B /* Resources */ = {
320 | isa = PBXResourcesBuildPhase;
321 | buildActionMask = 2147483647;
322 | files = (
323 | E2C3AF5E1C4FC06F00EB275B /* Assets.xcassets in Resources */,
324 | E2C3AF5C1C4FC06F00EB275B /* Main.storyboard in Resources */,
325 | );
326 | runOnlyForDeploymentPostprocessing = 0;
327 | };
328 | /* End PBXResourcesBuildPhase section */
329 |
330 | /* Begin PBXSourcesBuildPhase section */
331 | E2C3AF3A1C4FBFB300EB275B /* Sources */ = {
332 | isa = PBXSourcesBuildPhase;
333 | buildActionMask = 2147483647;
334 | files = (
335 | E2C3AF641C4FC0ED00EB275B /* ViewController.swift in Sources */,
336 | E2C3AF631C4FC0ED00EB275B /* AppDelegate.swift in Sources */,
337 | );
338 | runOnlyForDeploymentPostprocessing = 0;
339 | };
340 | E2C3AF501C4FC06F00EB275B /* Sources */ = {
341 | isa = PBXSourcesBuildPhase;
342 | buildActionMask = 2147483647;
343 | files = (
344 | E2C3AF591C4FC06F00EB275B /* ViewController.swift in Sources */,
345 | E2C3AF571C4FC06F00EB275B /* AppDelegate.swift in Sources */,
346 | );
347 | runOnlyForDeploymentPostprocessing = 0;
348 | };
349 | /* End PBXSourcesBuildPhase section */
350 |
351 | /* Begin PBXTargetDependency section */
352 | E21DC8B71D5E56C900424556 /* PBXTargetDependency */ = {
353 | isa = PBXTargetDependency;
354 | name = "IncrementableLabel iOS";
355 | targetProxy = E21DC8B61D5E56C900424556 /* PBXContainerItemProxy */;
356 | };
357 | E21DC8BC1D5E56CD00424556 /* PBXTargetDependency */ = {
358 | isa = PBXTargetDependency;
359 | name = "IncrementableLabel tvOS";
360 | targetProxy = E21DC8BB1D5E56CD00424556 /* PBXContainerItemProxy */;
361 | };
362 | /* End PBXTargetDependency section */
363 |
364 | /* Begin PBXVariantGroup section */
365 | E298E3F21C4F8A41009704B1 /* Main.storyboard */ = {
366 | isa = PBXVariantGroup;
367 | children = (
368 | E298E3F31C4F8A41009704B1 /* Base */,
369 | );
370 | name = Main.storyboard;
371 | sourceTree = "";
372 | };
373 | E298E3F71C4F8A41009704B1 /* LaunchScreen.storyboard */ = {
374 | isa = PBXVariantGroup;
375 | children = (
376 | E298E3F81C4F8A41009704B1 /* Base */,
377 | );
378 | name = LaunchScreen.storyboard;
379 | sourceTree = "";
380 | };
381 | E2C3AF5A1C4FC06F00EB275B /* Main.storyboard */ = {
382 | isa = PBXVariantGroup;
383 | children = (
384 | E2C3AF5B1C4FC06F00EB275B /* Base */,
385 | );
386 | name = Main.storyboard;
387 | sourceTree = "";
388 | };
389 | /* End PBXVariantGroup section */
390 |
391 | /* Begin XCBuildConfiguration section */
392 | E298E3FB1C4F8A41009704B1 /* Debug */ = {
393 | isa = XCBuildConfiguration;
394 | buildSettings = {
395 | ALWAYS_SEARCH_USER_PATHS = NO;
396 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
397 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
398 | CLANG_CXX_LIBRARY = "libc++";
399 | CLANG_ENABLE_MODULES = YES;
400 | CLANG_ENABLE_OBJC_ARC = YES;
401 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
402 | CLANG_WARN_BOOL_CONVERSION = YES;
403 | CLANG_WARN_COMMA = YES;
404 | CLANG_WARN_CONSTANT_CONVERSION = YES;
405 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
406 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
407 | CLANG_WARN_EMPTY_BODY = YES;
408 | CLANG_WARN_ENUM_CONVERSION = YES;
409 | CLANG_WARN_INFINITE_RECURSION = YES;
410 | CLANG_WARN_INT_CONVERSION = YES;
411 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
412 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
413 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
414 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
415 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
416 | CLANG_WARN_STRICT_PROTOTYPES = YES;
417 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
418 | CLANG_WARN_UNREACHABLE_CODE = YES;
419 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
420 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
421 | COPY_PHASE_STRIP = NO;
422 | DEBUG_INFORMATION_FORMAT = dwarf;
423 | ENABLE_STRICT_OBJC_MSGSEND = YES;
424 | ENABLE_TESTABILITY = YES;
425 | GCC_C_LANGUAGE_STANDARD = gnu99;
426 | GCC_DYNAMIC_NO_PIC = NO;
427 | GCC_NO_COMMON_BLOCKS = YES;
428 | GCC_OPTIMIZATION_LEVEL = 0;
429 | GCC_PREPROCESSOR_DEFINITIONS = (
430 | "DEBUG=1",
431 | "$(inherited)",
432 | );
433 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
434 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
435 | GCC_WARN_UNDECLARED_SELECTOR = YES;
436 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
437 | GCC_WARN_UNUSED_FUNCTION = YES;
438 | GCC_WARN_UNUSED_VARIABLE = YES;
439 | IPHONEOS_DEPLOYMENT_TARGET = 9.2;
440 | MTL_ENABLE_DEBUG_INFO = YES;
441 | ONLY_ACTIVE_ARCH = YES;
442 | SDKROOT = iphoneos;
443 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
444 | TARGETED_DEVICE_FAMILY = "1,2";
445 | };
446 | name = Debug;
447 | };
448 | E298E3FC1C4F8A41009704B1 /* Release */ = {
449 | isa = XCBuildConfiguration;
450 | buildSettings = {
451 | ALWAYS_SEARCH_USER_PATHS = NO;
452 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
453 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
454 | CLANG_CXX_LIBRARY = "libc++";
455 | CLANG_ENABLE_MODULES = YES;
456 | CLANG_ENABLE_OBJC_ARC = YES;
457 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
458 | CLANG_WARN_BOOL_CONVERSION = YES;
459 | CLANG_WARN_COMMA = YES;
460 | CLANG_WARN_CONSTANT_CONVERSION = YES;
461 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
462 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
463 | CLANG_WARN_EMPTY_BODY = YES;
464 | CLANG_WARN_ENUM_CONVERSION = YES;
465 | CLANG_WARN_INFINITE_RECURSION = YES;
466 | CLANG_WARN_INT_CONVERSION = YES;
467 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
468 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
469 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
470 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
471 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
472 | CLANG_WARN_STRICT_PROTOTYPES = YES;
473 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
474 | CLANG_WARN_UNREACHABLE_CODE = YES;
475 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
476 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
477 | COPY_PHASE_STRIP = NO;
478 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
479 | ENABLE_NS_ASSERTIONS = NO;
480 | ENABLE_STRICT_OBJC_MSGSEND = YES;
481 | GCC_C_LANGUAGE_STANDARD = gnu99;
482 | GCC_NO_COMMON_BLOCKS = YES;
483 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
484 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
485 | GCC_WARN_UNDECLARED_SELECTOR = YES;
486 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
487 | GCC_WARN_UNUSED_FUNCTION = YES;
488 | GCC_WARN_UNUSED_VARIABLE = YES;
489 | IPHONEOS_DEPLOYMENT_TARGET = 9.2;
490 | MTL_ENABLE_DEBUG_INFO = NO;
491 | SDKROOT = iphoneos;
492 | TARGETED_DEVICE_FAMILY = "1,2";
493 | VALIDATE_PRODUCT = YES;
494 | };
495 | name = Release;
496 | };
497 | E2C3AF4E1C4FBFB300EB275B /* Debug */ = {
498 | isa = XCBuildConfiguration;
499 | buildSettings = {
500 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
501 | DEVELOPMENT_TEAM = "";
502 | INFOPLIST_FILE = "$(SRCROOT)/Example/iOS Example/Info.plist";
503 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
504 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
505 | PRODUCT_BUNDLE_IDENTIFIER = com.recisio.IncrementableLabel.example;
506 | PRODUCT_NAME = "$(TARGET_NAME)";
507 | SWIFT_VERSION = 5.0;
508 | };
509 | name = Debug;
510 | };
511 | E2C3AF4F1C4FBFB300EB275B /* Release */ = {
512 | isa = XCBuildConfiguration;
513 | buildSettings = {
514 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
515 | DEVELOPMENT_TEAM = "";
516 | INFOPLIST_FILE = "$(SRCROOT)/Example/iOS Example/Info.plist";
517 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
518 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
519 | PRODUCT_BUNDLE_IDENTIFIER = com.recisio.IncrementableLabel.example;
520 | PRODUCT_NAME = "$(TARGET_NAME)";
521 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
522 | SWIFT_VERSION = 5.0;
523 | };
524 | name = Release;
525 | };
526 | E2C3AF611C4FC06F00EB275B /* Debug */ = {
527 | isa = XCBuildConfiguration;
528 | buildSettings = {
529 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
530 | DEVELOPMENT_TEAM = "";
531 | INFOPLIST_FILE = "$(SRCROOT)/Example/tvOS Example/Info.plist";
532 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
533 | PRODUCT_BUNDLE_IDENTIFIER = com.recisio.IncrementableLabel.example;
534 | PRODUCT_NAME = "$(TARGET_NAME)";
535 | SDKROOT = appletvos;
536 | SWIFT_VERSION = 5.0;
537 | TARGETED_DEVICE_FAMILY = 3;
538 | TVOS_DEPLOYMENT_TARGET = 9.0;
539 | };
540 | name = Debug;
541 | };
542 | E2C3AF621C4FC06F00EB275B /* Release */ = {
543 | isa = XCBuildConfiguration;
544 | buildSettings = {
545 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
546 | DEVELOPMENT_TEAM = "";
547 | INFOPLIST_FILE = "$(SRCROOT)/Example/tvOS Example/Info.plist";
548 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
549 | PRODUCT_BUNDLE_IDENTIFIER = com.recisio.IncrementableLabel.example;
550 | PRODUCT_NAME = "$(TARGET_NAME)";
551 | SDKROOT = appletvos;
552 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
553 | SWIFT_VERSION = 5.0;
554 | TARGETED_DEVICE_FAMILY = 3;
555 | TVOS_DEPLOYMENT_TARGET = 9.0;
556 | };
557 | name = Release;
558 | };
559 | /* End XCBuildConfiguration section */
560 |
561 | /* Begin XCConfigurationList section */
562 | E298E3E61C4F8A41009704B1 /* Build configuration list for PBXProject "Example" */ = {
563 | isa = XCConfigurationList;
564 | buildConfigurations = (
565 | E298E3FB1C4F8A41009704B1 /* Debug */,
566 | E298E3FC1C4F8A41009704B1 /* Release */,
567 | );
568 | defaultConfigurationIsVisible = 0;
569 | defaultConfigurationName = Release;
570 | };
571 | E2C3AF4D1C4FBFB300EB275B /* Build configuration list for PBXNativeTarget "iOS Example" */ = {
572 | isa = XCConfigurationList;
573 | buildConfigurations = (
574 | E2C3AF4E1C4FBFB300EB275B /* Debug */,
575 | E2C3AF4F1C4FBFB300EB275B /* Release */,
576 | );
577 | defaultConfigurationIsVisible = 0;
578 | defaultConfigurationName = Release;
579 | };
580 | E2C3AF601C4FC06F00EB275B /* Build configuration list for PBXNativeTarget "tvOS Example" */ = {
581 | isa = XCConfigurationList;
582 | buildConfigurations = (
583 | E2C3AF611C4FC06F00EB275B /* Debug */,
584 | E2C3AF621C4FC06F00EB275B /* Release */,
585 | );
586 | defaultConfigurationIsVisible = 0;
587 | defaultConfigurationName = Release;
588 | };
589 | /* End XCConfigurationList section */
590 | };
591 | rootObject = E298E3E31C4F8A41009704B1 /* Project object */;
592 | }
593 |
--------------------------------------------------------------------------------
/IncrementableLabel/IncrementableLabel.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | DAC3D32F21E900E600A1F307 /* UIColor+Blend.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC3D32E21E900E600A1F307 /* UIColor+Blend.swift */; };
11 | DAC3D33021E900E900A1F307 /* UIColor+Blend.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC3D32E21E900E600A1F307 /* UIColor+Blend.swift */; };
12 | E26980941CDEA6DB001E9707 /* IncrementableLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = E26980931CDEA6DB001E9707 /* IncrementableLabel.h */; settings = {ATTRIBUTES = (Public, ); }; };
13 | E26980B61CDEA7A6001E9707 /* IncrementableLabel tvOS.h in Headers */ = {isa = PBXBuildFile; fileRef = E26980B51CDEA7A6001E9707 /* IncrementableLabel tvOS.h */; settings = {ATTRIBUTES = (Public, ); }; };
14 | E26980EF1CDEAAB3001E9707 /* IncrementableLabel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E26980901CDEA6DB001E9707 /* IncrementableLabel.framework */; };
15 | E26980FF1CDEAADF001E9707 /* IncrementableLabel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E26980B31CDEA7A6001E9707 /* IncrementableLabel.framework */; };
16 | E269810A1CDEAB4F001E9707 /* IncrementableLabelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E26981091CDEAB4F001E9707 /* IncrementableLabelTests.swift */; };
17 | E269810B1CDEAB4F001E9707 /* IncrementableLabelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E26981091CDEAB4F001E9707 /* IncrementableLabelTests.swift */; };
18 | E29CDB911FCD5960003BDD0A /* IncrementableLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29CDB901FCD5960003BDD0A /* IncrementableLabel.swift */; };
19 | E29CDB921FCD5960003BDD0A /* IncrementableLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29CDB901FCD5960003BDD0A /* IncrementableLabel.swift */; };
20 | /* End PBXBuildFile section */
21 |
22 | /* Begin PBXContainerItemProxy section */
23 | E26980F01CDEAAB3001E9707 /* PBXContainerItemProxy */ = {
24 | isa = PBXContainerItemProxy;
25 | containerPortal = E26980871CDEA6DA001E9707 /* Project object */;
26 | proxyType = 1;
27 | remoteGlobalIDString = E269808F1CDEA6DB001E9707;
28 | remoteInfo = "IncrementableLabel iOS";
29 | };
30 | E26981001CDEAADF001E9707 /* PBXContainerItemProxy */ = {
31 | isa = PBXContainerItemProxy;
32 | containerPortal = E26980871CDEA6DA001E9707 /* Project object */;
33 | proxyType = 1;
34 | remoteGlobalIDString = E26980B21CDEA7A6001E9707;
35 | remoteInfo = "IncrementableLabel tvOS";
36 | };
37 | /* End PBXContainerItemProxy section */
38 |
39 | /* Begin PBXFileReference section */
40 | DAC3D32E21E900E600A1F307 /* UIColor+Blend.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIColor+Blend.swift"; sourceTree = ""; };
41 | E26980901CDEA6DB001E9707 /* IncrementableLabel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IncrementableLabel.framework; sourceTree = BUILT_PRODUCTS_DIR; };
42 | E26980931CDEA6DB001E9707 /* IncrementableLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IncrementableLabel.h; sourceTree = ""; };
43 | E26980951CDEA6DB001E9707 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
44 | E26980B31CDEA7A6001E9707 /* IncrementableLabel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IncrementableLabel.framework; sourceTree = BUILT_PRODUCTS_DIR; };
45 | E26980B51CDEA7A6001E9707 /* IncrementableLabel tvOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "IncrementableLabel tvOS.h"; sourceTree = ""; };
46 | E26980B71CDEA7A6001E9707 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
47 | E26980EA1CDEAAB3001E9707 /* IncrementableLabel iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "IncrementableLabel iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
48 | E26980EE1CDEAAB3001E9707 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
49 | E26980FA1CDEAADF001E9707 /* IncrementableLabel tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "IncrementableLabel tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
50 | E26980FE1CDEAADF001E9707 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
51 | E26981091CDEAB4F001E9707 /* IncrementableLabelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IncrementableLabelTests.swift; sourceTree = ""; };
52 | E29CDB901FCD5960003BDD0A /* IncrementableLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IncrementableLabel.swift; sourceTree = ""; };
53 | /* End PBXFileReference section */
54 |
55 | /* Begin PBXFrameworksBuildPhase section */
56 | E269808C1CDEA6DB001E9707 /* Frameworks */ = {
57 | isa = PBXFrameworksBuildPhase;
58 | buildActionMask = 2147483647;
59 | files = (
60 | );
61 | runOnlyForDeploymentPostprocessing = 0;
62 | };
63 | E26980AF1CDEA7A6001E9707 /* Frameworks */ = {
64 | isa = PBXFrameworksBuildPhase;
65 | buildActionMask = 2147483647;
66 | files = (
67 | );
68 | runOnlyForDeploymentPostprocessing = 0;
69 | };
70 | E26980E71CDEAAB3001E9707 /* Frameworks */ = {
71 | isa = PBXFrameworksBuildPhase;
72 | buildActionMask = 2147483647;
73 | files = (
74 | E26980EF1CDEAAB3001E9707 /* IncrementableLabel.framework in Frameworks */,
75 | );
76 | runOnlyForDeploymentPostprocessing = 0;
77 | };
78 | E26980F71CDEAADF001E9707 /* Frameworks */ = {
79 | isa = PBXFrameworksBuildPhase;
80 | buildActionMask = 2147483647;
81 | files = (
82 | E26980FF1CDEAADF001E9707 /* IncrementableLabel.framework in Frameworks */,
83 | );
84 | runOnlyForDeploymentPostprocessing = 0;
85 | };
86 | /* End PBXFrameworksBuildPhase section */
87 |
88 | /* Begin PBXGroup section */
89 | E26980861CDEA6DA001E9707 = {
90 | isa = PBXGroup;
91 | children = (
92 | E29CDB8F1FCD5960003BDD0A /* Source */,
93 | E26980921CDEA6DB001E9707 /* IncrementableLabel iOS */,
94 | E26980B41CDEA7A6001E9707 /* IncrementableLabel tvOS */,
95 | E26980F51CDEAAC5001E9707 /* Tests */,
96 | E26980911CDEA6DB001E9707 /* Products */,
97 | );
98 | sourceTree = "";
99 | };
100 | E26980911CDEA6DB001E9707 /* Products */ = {
101 | isa = PBXGroup;
102 | children = (
103 | E26980901CDEA6DB001E9707 /* IncrementableLabel.framework */,
104 | E26980B31CDEA7A6001E9707 /* IncrementableLabel.framework */,
105 | E26980EA1CDEAAB3001E9707 /* IncrementableLabel iOS Tests.xctest */,
106 | E26980FA1CDEAADF001E9707 /* IncrementableLabel tvOS Tests.xctest */,
107 | );
108 | name = Products;
109 | sourceTree = "";
110 | };
111 | E26980921CDEA6DB001E9707 /* IncrementableLabel iOS */ = {
112 | isa = PBXGroup;
113 | children = (
114 | E26980931CDEA6DB001E9707 /* IncrementableLabel.h */,
115 | E26980951CDEA6DB001E9707 /* Info.plist */,
116 | );
117 | path = "IncrementableLabel iOS";
118 | sourceTree = "";
119 | };
120 | E26980B41CDEA7A6001E9707 /* IncrementableLabel tvOS */ = {
121 | isa = PBXGroup;
122 | children = (
123 | E26980B51CDEA7A6001E9707 /* IncrementableLabel tvOS.h */,
124 | E26980B71CDEA7A6001E9707 /* Info.plist */,
125 | );
126 | path = "IncrementableLabel tvOS";
127 | sourceTree = "";
128 | };
129 | E26980EB1CDEAAB3001E9707 /* IncrementableLabel iOS Tests */ = {
130 | isa = PBXGroup;
131 | children = (
132 | E26980EE1CDEAAB3001E9707 /* Info.plist */,
133 | );
134 | path = "IncrementableLabel iOS Tests";
135 | sourceTree = "";
136 | };
137 | E26980F51CDEAAC5001E9707 /* Tests */ = {
138 | isa = PBXGroup;
139 | children = (
140 | E26981051CDEAAEC001E9707 /* Core */,
141 | E26980EB1CDEAAB3001E9707 /* IncrementableLabel iOS Tests */,
142 | E26980FB1CDEAADF001E9707 /* IncrementableLabel tvOS Tests */,
143 | );
144 | name = Tests;
145 | sourceTree = "";
146 | };
147 | E26980FB1CDEAADF001E9707 /* IncrementableLabel tvOS Tests */ = {
148 | isa = PBXGroup;
149 | children = (
150 | E26980FE1CDEAADF001E9707 /* Info.plist */,
151 | );
152 | path = "IncrementableLabel tvOS Tests";
153 | sourceTree = "";
154 | };
155 | E26981051CDEAAEC001E9707 /* Core */ = {
156 | isa = PBXGroup;
157 | children = (
158 | E26981091CDEAB4F001E9707 /* IncrementableLabelTests.swift */,
159 | );
160 | name = Core;
161 | path = "IncrementableLabel Core Tests";
162 | sourceTree = "";
163 | };
164 | E29CDB8F1FCD5960003BDD0A /* Source */ = {
165 | isa = PBXGroup;
166 | children = (
167 | E29CDB901FCD5960003BDD0A /* IncrementableLabel.swift */,
168 | DAC3D32E21E900E600A1F307 /* UIColor+Blend.swift */,
169 | );
170 | name = Source;
171 | path = ../Source;
172 | sourceTree = "";
173 | };
174 | /* End PBXGroup section */
175 |
176 | /* Begin PBXHeadersBuildPhase section */
177 | E269808D1CDEA6DB001E9707 /* Headers */ = {
178 | isa = PBXHeadersBuildPhase;
179 | buildActionMask = 2147483647;
180 | files = (
181 | E26980941CDEA6DB001E9707 /* IncrementableLabel.h in Headers */,
182 | );
183 | runOnlyForDeploymentPostprocessing = 0;
184 | };
185 | E26980B01CDEA7A6001E9707 /* Headers */ = {
186 | isa = PBXHeadersBuildPhase;
187 | buildActionMask = 2147483647;
188 | files = (
189 | E26980B61CDEA7A6001E9707 /* IncrementableLabel tvOS.h in Headers */,
190 | );
191 | runOnlyForDeploymentPostprocessing = 0;
192 | };
193 | /* End PBXHeadersBuildPhase section */
194 |
195 | /* Begin PBXNativeTarget section */
196 | E269808F1CDEA6DB001E9707 /* IncrementableLabel iOS */ = {
197 | isa = PBXNativeTarget;
198 | buildConfigurationList = E26980A41CDEA6DB001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel iOS" */;
199 | buildPhases = (
200 | E269808B1CDEA6DB001E9707 /* Sources */,
201 | E269808C1CDEA6DB001E9707 /* Frameworks */,
202 | E269808D1CDEA6DB001E9707 /* Headers */,
203 | E269808E1CDEA6DB001E9707 /* Resources */,
204 | E2773E971D20127E00365CDF /* Run Script - ⚠️ SwiftLint */,
205 | );
206 | buildRules = (
207 | );
208 | dependencies = (
209 | );
210 | name = "IncrementableLabel iOS";
211 | productName = IncrementableLabel;
212 | productReference = E26980901CDEA6DB001E9707 /* IncrementableLabel.framework */;
213 | productType = "com.apple.product-type.framework";
214 | };
215 | E26980B21CDEA7A6001E9707 /* IncrementableLabel tvOS */ = {
216 | isa = PBXNativeTarget;
217 | buildConfigurationList = E26980C41CDEA7A6001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel tvOS" */;
218 | buildPhases = (
219 | E26980AE1CDEA7A6001E9707 /* Sources */,
220 | E26980AF1CDEA7A6001E9707 /* Frameworks */,
221 | E26980B01CDEA7A6001E9707 /* Headers */,
222 | E26980B11CDEA7A6001E9707 /* Resources */,
223 | E2773E981D20128600365CDF /* Run Script - ⚠️ SwiftLint */,
224 | );
225 | buildRules = (
226 | );
227 | dependencies = (
228 | );
229 | name = "IncrementableLabel tvOS";
230 | productName = "IncrementableLabel tvOS";
231 | productReference = E26980B31CDEA7A6001E9707 /* IncrementableLabel.framework */;
232 | productType = "com.apple.product-type.framework";
233 | };
234 | E26980E91CDEAAB3001E9707 /* IncrementableLabel iOS Tests */ = {
235 | isa = PBXNativeTarget;
236 | buildConfigurationList = E26980F21CDEAAB3001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel iOS Tests" */;
237 | buildPhases = (
238 | E26980E61CDEAAB3001E9707 /* Sources */,
239 | E26980E71CDEAAB3001E9707 /* Frameworks */,
240 | E26980E81CDEAAB3001E9707 /* Resources */,
241 | );
242 | buildRules = (
243 | );
244 | dependencies = (
245 | E26980F11CDEAAB3001E9707 /* PBXTargetDependency */,
246 | );
247 | name = "IncrementableLabel iOS Tests";
248 | productName = "IncrementableLabel iOS Tests";
249 | productReference = E26980EA1CDEAAB3001E9707 /* IncrementableLabel iOS Tests.xctest */;
250 | productType = "com.apple.product-type.bundle.unit-test";
251 | };
252 | E26980F91CDEAADF001E9707 /* IncrementableLabel tvOS Tests */ = {
253 | isa = PBXNativeTarget;
254 | buildConfigurationList = E26981021CDEAADF001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel tvOS Tests" */;
255 | buildPhases = (
256 | E26980F61CDEAADF001E9707 /* Sources */,
257 | E26980F71CDEAADF001E9707 /* Frameworks */,
258 | E26980F81CDEAADF001E9707 /* Resources */,
259 | );
260 | buildRules = (
261 | );
262 | dependencies = (
263 | E26981011CDEAADF001E9707 /* PBXTargetDependency */,
264 | );
265 | name = "IncrementableLabel tvOS Tests";
266 | productName = "IncrementableLabel tvOS Tests";
267 | productReference = E26980FA1CDEAADF001E9707 /* IncrementableLabel tvOS Tests.xctest */;
268 | productType = "com.apple.product-type.bundle.unit-test";
269 | };
270 | /* End PBXNativeTarget section */
271 |
272 | /* Begin PBXProject section */
273 | E26980871CDEA6DA001E9707 /* Project object */ = {
274 | isa = PBXProject;
275 | attributes = {
276 | LastSwiftUpdateCheck = 0730;
277 | LastUpgradeCheck = 1020;
278 | ORGANIZATIONNAME = Recisio;
279 | TargetAttributes = {
280 | E269808F1CDEA6DB001E9707 = {
281 | CreatedOnToolsVersion = 7.3.1;
282 | LastSwiftMigration = 1020;
283 | };
284 | E26980B21CDEA7A6001E9707 = {
285 | CreatedOnToolsVersion = 7.3.1;
286 | LastSwiftMigration = 1020;
287 | };
288 | E26980E91CDEAAB3001E9707 = {
289 | CreatedOnToolsVersion = 7.3.1;
290 | LastSwiftMigration = 1020;
291 | };
292 | E26980F91CDEAADF001E9707 = {
293 | CreatedOnToolsVersion = 7.3.1;
294 | LastSwiftMigration = 1020;
295 | };
296 | };
297 | };
298 | buildConfigurationList = E269808A1CDEA6DA001E9707 /* Build configuration list for PBXProject "IncrementableLabel" */;
299 | compatibilityVersion = "Xcode 3.2";
300 | developmentRegion = en;
301 | hasScannedForEncodings = 0;
302 | knownRegions = (
303 | en,
304 | Base,
305 | );
306 | mainGroup = E26980861CDEA6DA001E9707;
307 | productRefGroup = E26980911CDEA6DB001E9707 /* Products */;
308 | projectDirPath = "";
309 | projectRoot = "";
310 | targets = (
311 | E269808F1CDEA6DB001E9707 /* IncrementableLabel iOS */,
312 | E26980E91CDEAAB3001E9707 /* IncrementableLabel iOS Tests */,
313 | E26980B21CDEA7A6001E9707 /* IncrementableLabel tvOS */,
314 | E26980F91CDEAADF001E9707 /* IncrementableLabel tvOS Tests */,
315 | );
316 | };
317 | /* End PBXProject section */
318 |
319 | /* Begin PBXResourcesBuildPhase section */
320 | E269808E1CDEA6DB001E9707 /* Resources */ = {
321 | isa = PBXResourcesBuildPhase;
322 | buildActionMask = 2147483647;
323 | files = (
324 | );
325 | runOnlyForDeploymentPostprocessing = 0;
326 | };
327 | E26980B11CDEA7A6001E9707 /* Resources */ = {
328 | isa = PBXResourcesBuildPhase;
329 | buildActionMask = 2147483647;
330 | files = (
331 | );
332 | runOnlyForDeploymentPostprocessing = 0;
333 | };
334 | E26980E81CDEAAB3001E9707 /* Resources */ = {
335 | isa = PBXResourcesBuildPhase;
336 | buildActionMask = 2147483647;
337 | files = (
338 | );
339 | runOnlyForDeploymentPostprocessing = 0;
340 | };
341 | E26980F81CDEAADF001E9707 /* Resources */ = {
342 | isa = PBXResourcesBuildPhase;
343 | buildActionMask = 2147483647;
344 | files = (
345 | );
346 | runOnlyForDeploymentPostprocessing = 0;
347 | };
348 | /* End PBXResourcesBuildPhase section */
349 |
350 | /* Begin PBXShellScriptBuildPhase section */
351 | E2773E971D20127E00365CDF /* Run Script - ⚠️ SwiftLint */ = {
352 | isa = PBXShellScriptBuildPhase;
353 | buildActionMask = 2147483647;
354 | files = (
355 | );
356 | inputPaths = (
357 | );
358 | name = "Run Script - ⚠️ SwiftLint";
359 | outputPaths = (
360 | );
361 | runOnlyForDeploymentPostprocessing = 0;
362 | shellPath = /bin/sh;
363 | shellScript = "swiftlint --config ../.swiftlint.yml";
364 | };
365 | E2773E981D20128600365CDF /* Run Script - ⚠️ SwiftLint */ = {
366 | isa = PBXShellScriptBuildPhase;
367 | buildActionMask = 2147483647;
368 | files = (
369 | );
370 | inputPaths = (
371 | );
372 | name = "Run Script - ⚠️ SwiftLint";
373 | outputPaths = (
374 | );
375 | runOnlyForDeploymentPostprocessing = 0;
376 | shellPath = /bin/sh;
377 | shellScript = "swiftlint --config ../.swiftlint.yml";
378 | };
379 | /* End PBXShellScriptBuildPhase section */
380 |
381 | /* Begin PBXSourcesBuildPhase section */
382 | E269808B1CDEA6DB001E9707 /* Sources */ = {
383 | isa = PBXSourcesBuildPhase;
384 | buildActionMask = 2147483647;
385 | files = (
386 | E29CDB911FCD5960003BDD0A /* IncrementableLabel.swift in Sources */,
387 | DAC3D32F21E900E600A1F307 /* UIColor+Blend.swift in Sources */,
388 | );
389 | runOnlyForDeploymentPostprocessing = 0;
390 | };
391 | E26980AE1CDEA7A6001E9707 /* Sources */ = {
392 | isa = PBXSourcesBuildPhase;
393 | buildActionMask = 2147483647;
394 | files = (
395 | E29CDB921FCD5960003BDD0A /* IncrementableLabel.swift in Sources */,
396 | DAC3D33021E900E900A1F307 /* UIColor+Blend.swift in Sources */,
397 | );
398 | runOnlyForDeploymentPostprocessing = 0;
399 | };
400 | E26980E61CDEAAB3001E9707 /* Sources */ = {
401 | isa = PBXSourcesBuildPhase;
402 | buildActionMask = 2147483647;
403 | files = (
404 | E269810A1CDEAB4F001E9707 /* IncrementableLabelTests.swift in Sources */,
405 | );
406 | runOnlyForDeploymentPostprocessing = 0;
407 | };
408 | E26980F61CDEAADF001E9707 /* Sources */ = {
409 | isa = PBXSourcesBuildPhase;
410 | buildActionMask = 2147483647;
411 | files = (
412 | E269810B1CDEAB4F001E9707 /* IncrementableLabelTests.swift in Sources */,
413 | );
414 | runOnlyForDeploymentPostprocessing = 0;
415 | };
416 | /* End PBXSourcesBuildPhase section */
417 |
418 | /* Begin PBXTargetDependency section */
419 | E26980F11CDEAAB3001E9707 /* PBXTargetDependency */ = {
420 | isa = PBXTargetDependency;
421 | target = E269808F1CDEA6DB001E9707 /* IncrementableLabel iOS */;
422 | targetProxy = E26980F01CDEAAB3001E9707 /* PBXContainerItemProxy */;
423 | };
424 | E26981011CDEAADF001E9707 /* PBXTargetDependency */ = {
425 | isa = PBXTargetDependency;
426 | target = E26980B21CDEA7A6001E9707 /* IncrementableLabel tvOS */;
427 | targetProxy = E26981001CDEAADF001E9707 /* PBXContainerItemProxy */;
428 | };
429 | /* End PBXTargetDependency section */
430 |
431 | /* Begin XCBuildConfiguration section */
432 | E26980A21CDEA6DB001E9707 /* Debug */ = {
433 | isa = XCBuildConfiguration;
434 | buildSettings = {
435 | ALWAYS_SEARCH_USER_PATHS = NO;
436 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
437 | CLANG_ANALYZER_NONNULL = YES;
438 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
439 | CLANG_CXX_LIBRARY = "libc++";
440 | CLANG_ENABLE_MODULES = YES;
441 | CLANG_ENABLE_OBJC_ARC = YES;
442 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
443 | CLANG_WARN_BOOL_CONVERSION = YES;
444 | CLANG_WARN_COMMA = YES;
445 | CLANG_WARN_CONSTANT_CONVERSION = YES;
446 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
447 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
448 | CLANG_WARN_EMPTY_BODY = YES;
449 | CLANG_WARN_ENUM_CONVERSION = YES;
450 | CLANG_WARN_INFINITE_RECURSION = YES;
451 | CLANG_WARN_INT_CONVERSION = YES;
452 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
453 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
454 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
455 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
456 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
457 | CLANG_WARN_STRICT_PROTOTYPES = YES;
458 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
459 | CLANG_WARN_UNREACHABLE_CODE = YES;
460 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
461 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
462 | COPY_PHASE_STRIP = NO;
463 | CURRENT_PROJECT_VERSION = 1;
464 | DEBUG_INFORMATION_FORMAT = dwarf;
465 | ENABLE_STRICT_OBJC_MSGSEND = YES;
466 | ENABLE_TESTABILITY = YES;
467 | GCC_C_LANGUAGE_STANDARD = gnu99;
468 | GCC_DYNAMIC_NO_PIC = NO;
469 | GCC_NO_COMMON_BLOCKS = YES;
470 | GCC_OPTIMIZATION_LEVEL = 0;
471 | GCC_PREPROCESSOR_DEFINITIONS = (
472 | "DEBUG=1",
473 | "$(inherited)",
474 | );
475 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
476 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
477 | GCC_WARN_UNDECLARED_SELECTOR = YES;
478 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
479 | GCC_WARN_UNUSED_FUNCTION = YES;
480 | GCC_WARN_UNUSED_VARIABLE = YES;
481 | IPHONEOS_DEPLOYMENT_TARGET = 9.3;
482 | MTL_ENABLE_DEBUG_INFO = YES;
483 | ONLY_ACTIVE_ARCH = YES;
484 | SDKROOT = iphoneos;
485 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
486 | TARGETED_DEVICE_FAMILY = "1,2";
487 | VERSIONING_SYSTEM = "apple-generic";
488 | VERSION_INFO_PREFIX = "";
489 | };
490 | name = Debug;
491 | };
492 | E26980A31CDEA6DB001E9707 /* Release */ = {
493 | isa = XCBuildConfiguration;
494 | buildSettings = {
495 | ALWAYS_SEARCH_USER_PATHS = NO;
496 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
497 | CLANG_ANALYZER_NONNULL = YES;
498 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
499 | CLANG_CXX_LIBRARY = "libc++";
500 | CLANG_ENABLE_MODULES = YES;
501 | CLANG_ENABLE_OBJC_ARC = YES;
502 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
503 | CLANG_WARN_BOOL_CONVERSION = YES;
504 | CLANG_WARN_COMMA = YES;
505 | CLANG_WARN_CONSTANT_CONVERSION = YES;
506 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
507 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
508 | CLANG_WARN_EMPTY_BODY = YES;
509 | CLANG_WARN_ENUM_CONVERSION = YES;
510 | CLANG_WARN_INFINITE_RECURSION = YES;
511 | CLANG_WARN_INT_CONVERSION = YES;
512 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
513 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
514 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
515 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
516 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
517 | CLANG_WARN_STRICT_PROTOTYPES = YES;
518 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
519 | CLANG_WARN_UNREACHABLE_CODE = YES;
520 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
521 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
522 | COPY_PHASE_STRIP = NO;
523 | CURRENT_PROJECT_VERSION = 1;
524 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
525 | ENABLE_NS_ASSERTIONS = NO;
526 | ENABLE_STRICT_OBJC_MSGSEND = YES;
527 | GCC_C_LANGUAGE_STANDARD = gnu99;
528 | GCC_NO_COMMON_BLOCKS = YES;
529 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
530 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
531 | GCC_WARN_UNDECLARED_SELECTOR = YES;
532 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
533 | GCC_WARN_UNUSED_FUNCTION = YES;
534 | GCC_WARN_UNUSED_VARIABLE = YES;
535 | IPHONEOS_DEPLOYMENT_TARGET = 9.3;
536 | MTL_ENABLE_DEBUG_INFO = NO;
537 | SDKROOT = iphoneos;
538 | TARGETED_DEVICE_FAMILY = "1,2";
539 | VALIDATE_PRODUCT = YES;
540 | VERSIONING_SYSTEM = "apple-generic";
541 | VERSION_INFO_PREFIX = "";
542 | };
543 | name = Release;
544 | };
545 | E26980A51CDEA6DB001E9707 /* Debug */ = {
546 | isa = XCBuildConfiguration;
547 | buildSettings = {
548 | CLANG_ENABLE_MODULES = YES;
549 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
550 | DEFINES_MODULE = YES;
551 | DYLIB_COMPATIBILITY_VERSION = 1;
552 | DYLIB_CURRENT_VERSION = 1;
553 | DYLIB_INSTALL_NAME_BASE = "@rpath";
554 | INFOPLIST_FILE = "$(SRCROOT)/IncrementableLabel iOS/Info.plist";
555 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
556 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
557 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
558 | PRODUCT_BUNDLE_IDENTIFIER = com.recisio.IncrementableLabel;
559 | PRODUCT_NAME = IncrementableLabel;
560 | SKIP_INSTALL = YES;
561 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
562 | SWIFT_VERSION = 5.0;
563 | };
564 | name = Debug;
565 | };
566 | E26980A61CDEA6DB001E9707 /* Release */ = {
567 | isa = XCBuildConfiguration;
568 | buildSettings = {
569 | CLANG_ENABLE_MODULES = YES;
570 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
571 | DEFINES_MODULE = YES;
572 | DYLIB_COMPATIBILITY_VERSION = 1;
573 | DYLIB_CURRENT_VERSION = 1;
574 | DYLIB_INSTALL_NAME_BASE = "@rpath";
575 | INFOPLIST_FILE = "$(SRCROOT)/IncrementableLabel iOS/Info.plist";
576 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
577 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
578 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
579 | PRODUCT_BUNDLE_IDENTIFIER = com.recisio.IncrementableLabel;
580 | PRODUCT_NAME = IncrementableLabel;
581 | SKIP_INSTALL = YES;
582 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
583 | SWIFT_VERSION = 5.0;
584 | };
585 | name = Release;
586 | };
587 | E26980C51CDEA7A6001E9707 /* Debug */ = {
588 | isa = XCBuildConfiguration;
589 | buildSettings = {
590 | CLANG_ENABLE_MODULES = YES;
591 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
592 | DEFINES_MODULE = YES;
593 | DYLIB_COMPATIBILITY_VERSION = 1;
594 | DYLIB_CURRENT_VERSION = 1;
595 | DYLIB_INSTALL_NAME_BASE = "@rpath";
596 | INFOPLIST_FILE = "IncrementableLabel tvOS/Info.plist";
597 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
598 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
599 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-tvOS";
600 | PRODUCT_NAME = IncrementableLabel;
601 | SDKROOT = appletvos;
602 | SKIP_INSTALL = YES;
603 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
604 | SWIFT_VERSION = 5.0;
605 | TARGETED_DEVICE_FAMILY = 3;
606 | TVOS_DEPLOYMENT_TARGET = 9.0;
607 | };
608 | name = Debug;
609 | };
610 | E26980C61CDEA7A6001E9707 /* Release */ = {
611 | isa = XCBuildConfiguration;
612 | buildSettings = {
613 | CLANG_ENABLE_MODULES = YES;
614 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
615 | DEFINES_MODULE = YES;
616 | DYLIB_COMPATIBILITY_VERSION = 1;
617 | DYLIB_CURRENT_VERSION = 1;
618 | DYLIB_INSTALL_NAME_BASE = "@rpath";
619 | INFOPLIST_FILE = "IncrementableLabel tvOS/Info.plist";
620 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
621 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
622 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-tvOS";
623 | PRODUCT_NAME = IncrementableLabel;
624 | SDKROOT = appletvos;
625 | SKIP_INSTALL = YES;
626 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
627 | SWIFT_VERSION = 5.0;
628 | TARGETED_DEVICE_FAMILY = 3;
629 | TVOS_DEPLOYMENT_TARGET = 9.0;
630 | };
631 | name = Release;
632 | };
633 | E26980F31CDEAAB3001E9707 /* Debug */ = {
634 | isa = XCBuildConfiguration;
635 | buildSettings = {
636 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
637 | INFOPLIST_FILE = "IncrementableLabel iOS Tests/Info.plist";
638 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
639 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-iOS-Tests";
640 | PRODUCT_NAME = "$(TARGET_NAME)";
641 | SWIFT_VERSION = 5.0;
642 | };
643 | name = Debug;
644 | };
645 | E26980F41CDEAAB3001E9707 /* Release */ = {
646 | isa = XCBuildConfiguration;
647 | buildSettings = {
648 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
649 | INFOPLIST_FILE = "IncrementableLabel iOS Tests/Info.plist";
650 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
651 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-iOS-Tests";
652 | PRODUCT_NAME = "$(TARGET_NAME)";
653 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
654 | SWIFT_VERSION = 5.0;
655 | };
656 | name = Release;
657 | };
658 | E26981031CDEAADF001E9707 /* Debug */ = {
659 | isa = XCBuildConfiguration;
660 | buildSettings = {
661 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
662 | INFOPLIST_FILE = "IncrementableLabel tvOS Tests/Info.plist";
663 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
664 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-tvOS-Tests";
665 | PRODUCT_NAME = "$(TARGET_NAME)";
666 | SDKROOT = appletvos;
667 | SWIFT_VERSION = 5.0;
668 | TARGETED_DEVICE_FAMILY = 3;
669 | TVOS_DEPLOYMENT_TARGET = 9.2;
670 | };
671 | name = Debug;
672 | };
673 | E26981041CDEAADF001E9707 /* Release */ = {
674 | isa = XCBuildConfiguration;
675 | buildSettings = {
676 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
677 | INFOPLIST_FILE = "IncrementableLabel tvOS Tests/Info.plist";
678 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
679 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-tvOS-Tests";
680 | PRODUCT_NAME = "$(TARGET_NAME)";
681 | SDKROOT = appletvos;
682 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
683 | SWIFT_VERSION = 5.0;
684 | TARGETED_DEVICE_FAMILY = 3;
685 | TVOS_DEPLOYMENT_TARGET = 9.2;
686 | };
687 | name = Release;
688 | };
689 | E269810C1CDEAB82001E9707 /* ReleaseTest */ = {
690 | isa = XCBuildConfiguration;
691 | buildSettings = {
692 | ALWAYS_SEARCH_USER_PATHS = NO;
693 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
694 | CLANG_ANALYZER_NONNULL = YES;
695 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
696 | CLANG_CXX_LIBRARY = "libc++";
697 | CLANG_ENABLE_MODULES = YES;
698 | CLANG_ENABLE_OBJC_ARC = YES;
699 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
700 | CLANG_WARN_BOOL_CONVERSION = YES;
701 | CLANG_WARN_COMMA = YES;
702 | CLANG_WARN_CONSTANT_CONVERSION = YES;
703 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
704 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
705 | CLANG_WARN_EMPTY_BODY = YES;
706 | CLANG_WARN_ENUM_CONVERSION = YES;
707 | CLANG_WARN_INFINITE_RECURSION = YES;
708 | CLANG_WARN_INT_CONVERSION = YES;
709 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
710 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
711 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
712 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
713 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
714 | CLANG_WARN_STRICT_PROTOTYPES = YES;
715 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
716 | CLANG_WARN_UNREACHABLE_CODE = YES;
717 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
718 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
719 | COPY_PHASE_STRIP = NO;
720 | CURRENT_PROJECT_VERSION = 1;
721 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
722 | ENABLE_NS_ASSERTIONS = NO;
723 | ENABLE_STRICT_OBJC_MSGSEND = YES;
724 | ENABLE_TESTABILITY = YES;
725 | GCC_C_LANGUAGE_STANDARD = gnu99;
726 | GCC_NO_COMMON_BLOCKS = YES;
727 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
728 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
729 | GCC_WARN_UNDECLARED_SELECTOR = YES;
730 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
731 | GCC_WARN_UNUSED_FUNCTION = YES;
732 | GCC_WARN_UNUSED_VARIABLE = YES;
733 | IPHONEOS_DEPLOYMENT_TARGET = 9.3;
734 | MTL_ENABLE_DEBUG_INFO = NO;
735 | SDKROOT = iphoneos;
736 | TARGETED_DEVICE_FAMILY = "1,2";
737 | VALIDATE_PRODUCT = YES;
738 | VERSIONING_SYSTEM = "apple-generic";
739 | VERSION_INFO_PREFIX = "";
740 | };
741 | name = ReleaseTest;
742 | };
743 | E269810D1CDEAB82001E9707 /* ReleaseTest */ = {
744 | isa = XCBuildConfiguration;
745 | buildSettings = {
746 | CLANG_ENABLE_MODULES = YES;
747 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
748 | DEFINES_MODULE = YES;
749 | DYLIB_COMPATIBILITY_VERSION = 1;
750 | DYLIB_CURRENT_VERSION = 1;
751 | DYLIB_INSTALL_NAME_BASE = "@rpath";
752 | INFOPLIST_FILE = "$(SRCROOT)/IncrementableLabel iOS/Info.plist";
753 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
754 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
755 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
756 | PRODUCT_BUNDLE_IDENTIFIER = com.recisio.IncrementableLabel;
757 | PRODUCT_NAME = IncrementableLabel;
758 | SKIP_INSTALL = YES;
759 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
760 | SWIFT_VERSION = 5.0;
761 | };
762 | name = ReleaseTest;
763 | };
764 | E269810E1CDEAB82001E9707 /* ReleaseTest */ = {
765 | isa = XCBuildConfiguration;
766 | buildSettings = {
767 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
768 | INFOPLIST_FILE = "IncrementableLabel iOS Tests/Info.plist";
769 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
770 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-iOS-Tests";
771 | PRODUCT_NAME = "$(TARGET_NAME)";
772 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
773 | SWIFT_VERSION = 5.0;
774 | };
775 | name = ReleaseTest;
776 | };
777 | E269810F1CDEAB82001E9707 /* ReleaseTest */ = {
778 | isa = XCBuildConfiguration;
779 | buildSettings = {
780 | CLANG_ENABLE_MODULES = YES;
781 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
782 | DEFINES_MODULE = YES;
783 | DYLIB_COMPATIBILITY_VERSION = 1;
784 | DYLIB_CURRENT_VERSION = 1;
785 | DYLIB_INSTALL_NAME_BASE = "@rpath";
786 | INFOPLIST_FILE = "IncrementableLabel tvOS/Info.plist";
787 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
788 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
789 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-tvOS";
790 | PRODUCT_NAME = IncrementableLabel;
791 | SDKROOT = appletvos;
792 | SKIP_INSTALL = YES;
793 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
794 | SWIFT_VERSION = 5.0;
795 | TARGETED_DEVICE_FAMILY = 3;
796 | TVOS_DEPLOYMENT_TARGET = 9.0;
797 | };
798 | name = ReleaseTest;
799 | };
800 | E26981101CDEAB82001E9707 /* ReleaseTest */ = {
801 | isa = XCBuildConfiguration;
802 | buildSettings = {
803 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
804 | INFOPLIST_FILE = "IncrementableLabel tvOS Tests/Info.plist";
805 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
806 | PRODUCT_BUNDLE_IDENTIFIER = "com.recisio.IncrementableLabel-tvOS-Tests";
807 | PRODUCT_NAME = "$(TARGET_NAME)";
808 | SDKROOT = appletvos;
809 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
810 | SWIFT_VERSION = 5.0;
811 | TARGETED_DEVICE_FAMILY = 3;
812 | TVOS_DEPLOYMENT_TARGET = 9.2;
813 | };
814 | name = ReleaseTest;
815 | };
816 | /* End XCBuildConfiguration section */
817 |
818 | /* Begin XCConfigurationList section */
819 | E269808A1CDEA6DA001E9707 /* Build configuration list for PBXProject "IncrementableLabel" */ = {
820 | isa = XCConfigurationList;
821 | buildConfigurations = (
822 | E26980A21CDEA6DB001E9707 /* Debug */,
823 | E26980A31CDEA6DB001E9707 /* Release */,
824 | E269810C1CDEAB82001E9707 /* ReleaseTest */,
825 | );
826 | defaultConfigurationIsVisible = 0;
827 | defaultConfigurationName = Release;
828 | };
829 | E26980A41CDEA6DB001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel iOS" */ = {
830 | isa = XCConfigurationList;
831 | buildConfigurations = (
832 | E26980A51CDEA6DB001E9707 /* Debug */,
833 | E26980A61CDEA6DB001E9707 /* Release */,
834 | E269810D1CDEAB82001E9707 /* ReleaseTest */,
835 | );
836 | defaultConfigurationIsVisible = 0;
837 | defaultConfigurationName = Release;
838 | };
839 | E26980C41CDEA7A6001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel tvOS" */ = {
840 | isa = XCConfigurationList;
841 | buildConfigurations = (
842 | E26980C51CDEA7A6001E9707 /* Debug */,
843 | E26980C61CDEA7A6001E9707 /* Release */,
844 | E269810F1CDEAB82001E9707 /* ReleaseTest */,
845 | );
846 | defaultConfigurationIsVisible = 0;
847 | defaultConfigurationName = Release;
848 | };
849 | E26980F21CDEAAB3001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel iOS Tests" */ = {
850 | isa = XCConfigurationList;
851 | buildConfigurations = (
852 | E26980F31CDEAAB3001E9707 /* Debug */,
853 | E26980F41CDEAAB3001E9707 /* Release */,
854 | E269810E1CDEAB82001E9707 /* ReleaseTest */,
855 | );
856 | defaultConfigurationIsVisible = 0;
857 | defaultConfigurationName = Release;
858 | };
859 | E26981021CDEAADF001E9707 /* Build configuration list for PBXNativeTarget "IncrementableLabel tvOS Tests" */ = {
860 | isa = XCConfigurationList;
861 | buildConfigurations = (
862 | E26981031CDEAADF001E9707 /* Debug */,
863 | E26981041CDEAADF001E9707 /* Release */,
864 | E26981101CDEAB82001E9707 /* ReleaseTest */,
865 | );
866 | defaultConfigurationIsVisible = 0;
867 | defaultConfigurationName = Release;
868 | };
869 | /* End XCConfigurationList section */
870 | };
871 | rootObject = E26980871CDEA6DA001E9707 /* Project object */;
872 | }
873 |
--------------------------------------------------------------------------------