├── .swift-version ├── demo.gif ├── demo.jpg ├── Demo ├── Assets.xcassets │ ├── Contents.json │ └── AppIcon.appiconset │ │ └── Contents.json ├── Info.plist ├── Base.lproj │ ├── Main.storyboard │ └── LaunchScreen.storyboard ├── AppDelegate.swift └── ViewController.swift ├── Pods ├── Target Support Files │ ├── Pods-Demo │ │ ├── Pods-Demo.modulemap │ │ ├── Pods-Demo-dummy.m │ │ ├── Pods-Demo.release.xcconfig │ │ ├── Pods-Demo-umbrella.h │ │ ├── Pods-Demo.debug.xcconfig │ │ ├── Pods-Demo-Info.plist │ │ ├── Pods-Demo-frameworks.sh │ │ ├── Pods-Demo-acknowledgements.markdown │ │ └── Pods-Demo-acknowledgements.plist │ └── Reveal-SDK │ │ └── Reveal-SDK.xcconfig ├── Reveal-SDK │ └── RevealServer-20 │ │ ├── iOS │ │ └── RevealServer.framework │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ ├── RevealServer │ │ │ ├── Headers │ │ │ └── RevealServer.h │ │ │ ├── Scripts │ │ │ └── copy_and_codesign_revealserver.sh │ │ │ ├── Info.plist │ │ │ └── _CodeSignature │ │ │ └── CodeResources │ │ └── LICENSE.md ├── Manifest.lock └── Pods.xcodeproj │ └── project.pbxproj ├── RemainingCountIndicator.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── xcshareddata │ └── xcschemes │ │ └── RemainingCountIndicator.xcscheme └── project.pbxproj ├── RemainingCountIndicator.xcworkspace ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── contents.xcworkspacedata ├── Podfile ├── Podfile.lock ├── RemainingCountIndicator ├── RemainingCountIndicator.h ├── Info.plist └── RemainingCountIndicator.swift ├── README.md ├── LICENSE ├── RemainingCountIndicator.podspec └── .gitignore /.swift-version: -------------------------------------------------------------------------------- 1 | 4.2 2 | -------------------------------------------------------------------------------- /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shima11/RemainingCountIndicator/HEAD/demo.gif -------------------------------------------------------------------------------- /demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shima11/RemainingCountIndicator/HEAD/demo.jpg -------------------------------------------------------------------------------- /Demo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_Demo { 2 | umbrella header "Pods-Demo-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Demo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Demo 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module RevealServer { 2 | umbrella header "RevealServer.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework/RevealServer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shima11/RemainingCountIndicator/HEAD/Pods/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework/RevealServer -------------------------------------------------------------------------------- /RemainingCountIndicator.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RemainingCountIndicator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /RemainingCountIndicator.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RemainingCountIndicator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'Demo' do 5 | # Comment the next line if you're not using Swift and don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for Demo 9 | 10 | pod 'Reveal-SDK', :configurations => ['Debug'] 11 | 12 | end 13 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Reveal-SDK (20) 3 | 4 | DEPENDENCIES: 5 | - Reveal-SDK 6 | 7 | SPEC REPOS: 8 | https://github.com/cocoapods/specs.git: 9 | - Reveal-SDK 10 | 11 | SPEC CHECKSUMS: 12 | Reveal-SDK: 43206a57f575632fd304e85385cc259b5d359e32 13 | 14 | PODFILE CHECKSUM: c74f871f9e31b50003cbe7eaadbed6a65eff7e62 15 | 16 | COCOAPODS: 1.6.0 17 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Reveal-SDK (20) 3 | 4 | DEPENDENCIES: 5 | - Reveal-SDK 6 | 7 | SPEC REPOS: 8 | https://github.com/cocoapods/specs.git: 9 | - Reveal-SDK 10 | 11 | SPEC CHECKSUMS: 12 | Reveal-SDK: 43206a57f575632fd304e85385cc259b5d359e32 13 | 14 | PODFILE CHECKSUM: c74f871f9e31b50003cbe7eaadbed6a65eff7e62 15 | 16 | COCOAPODS: 1.6.0 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | -------------------------------------------------------------------------------- /Pods/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework/Headers/RevealServer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright © 2015 Itty Bitty Apps, Pty Ltd. All rights reserved. 3 | 4 | #import 5 | 6 | //! Project version number for RevealServer. 7 | FOUNDATION_EXPORT double RevealServerVersionNumber; 8 | 9 | //! Project version string for RevealServer. 10 | FOUNDATION_EXPORT const unsigned char RevealServerVersionString[]; 11 | 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_DemoVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_DemoVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Reveal-SDK/RevealServer-20/iOS" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_LDFLAGS = $(inherited) -l"z" -framework "CFNetwork" -framework "CoreGraphics" -framework "QuartzCore" -framework "RevealServer" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Reveal-SDK/Reveal-SDK.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Reveal-SDK 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Reveal-SDK/RevealServer-20/iOS" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks 5 | OTHER_LDFLAGS = $(inherited) -l"z" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Reveal-SDK 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /RemainingCountIndicator/RemainingCountIndicator.h: -------------------------------------------------------------------------------- 1 | // 2 | // RemainingCountIndicator.h 3 | // RemainingCountIndicator 4 | // 5 | // Created by jinsei_shima on 2019/02/18. 6 | // Copyright © 2019 Jinsei Shima. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for RemainingCountIndicator. 12 | FOUNDATION_EXPORT double RemainingCountIndicatorVersionNumber; 13 | 14 | //! Project version string for RemainingCountIndicator. 15 | FOUNDATION_EXPORT const unsigned char RemainingCountIndicatorVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RemainingCountIndicator 2 | 3 | # Overview 4 | 5 | RemainingCountIndicator is twitter like remaining count indicator. 6 | 7 | 8 | 9 | # Usage 10 | 11 | ``` 12 | let remaingCountIndicator = RemainigCountIndicator( 13 | maximumNumber: 20, 14 | config: RemainigCountIndicator.Config.init(threshold1: 5, threshold2: -5), 15 | style: RemainigCountIndicator.Style.init() 16 | ) 17 | 18 | remaingCountIndicator.currentNumber = 10 19 | ``` 20 | 21 | # Installation 22 | 23 | ## CocoaPods 24 | 25 | ``` 26 | pod 'RemainingCountIndicator' 27 | 28 | ``` 29 | 30 | ## Carthage 31 | 32 | ``` 33 | github "shima11/RemainingCountIndicator" 34 | ``` 35 | 36 | # Licence 37 | 38 | Licence MIT 39 | -------------------------------------------------------------------------------- /RemainingCountIndicator/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo-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 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 shima 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 | -------------------------------------------------------------------------------- /RemainingCountIndicator.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod spec lint RemainingCountIndicator.podspec' to ensure this is a 3 | # valid spec and to remove all comments including this before submitting the spec. 4 | # 5 | # To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html 6 | # To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ 7 | # 8 | 9 | Pod::Spec.new do |s| 10 | 11 | s.name = "RemainingCountIndicator" 12 | s.version = "1.0.0" 13 | s.summary = "Remaining count indicator like a tweet screen of twitter." 14 | 15 | s.description = <<-DESC 16 | RemainingCountIndicator is remaining count indicator like a tweet screen of twitter. 17 | DESC 18 | 19 | s.license = { :type => "MIT", :file => "LICENSE" } 20 | 21 | s.homepage = "https://github.com/shima11/RemainingCountIndicator" 22 | 23 | s.author = { "shima" => "shima.jin@icloud.com" } 24 | 25 | s.platform = :ios, "9.0" 26 | 27 | s.source = { :git => "https://github.com/shima11/RemainingCountIndicator.git", :tag => "#{s.version}"} 28 | 29 | s.source_files = "RemainingCountIndicator", "RemainingCountIndicator/**/*.{h,m,swift}" 30 | 31 | end 32 | -------------------------------------------------------------------------------- /Demo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Pods/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework/Scripts/copy_and_codesign_revealserver.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -o errexit 3 | set -o nounset 4 | 5 | # Ensure that we have a valid OTHER_LDFLAGS environment variable 6 | OTHER_LDFLAGS=${OTHER_LDFLAGS:=""} 7 | 8 | # Ensure that we have a valid REVEAL_SERVER_FILENAME environment variable 9 | REVEAL_SERVER_FILENAME=${REVEAL_SERVER_FILENAME:="RevealServer.framework"} 10 | 11 | # Ensure that we have a valid REVEAL_SERVER_PATH environment variable 12 | REVEAL_SERVER_PATH=${REVEAL_SERVER_PATH:="${SRCROOT}/${REVEAL_SERVER_FILENAME}"} 13 | 14 | # The path to copy the framework to 15 | app_frameworks_dir="${CODESIGNING_FOLDER_PATH}/Frameworks" 16 | 17 | copy_library() { 18 | mkdir -p "$app_frameworks_dir" 19 | cp -vRf "$REVEAL_SERVER_PATH" "${app_frameworks_dir}/" 20 | } 21 | 22 | codesign_library() { 23 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" ]; then 24 | codesign -fs "${EXPANDED_CODE_SIGN_IDENTITY}" "${app_frameworks_dir}/${REVEAL_SERVER_FILENAME}" 25 | fi 26 | } 27 | 28 | main() { 29 | if [[ $OTHER_LDFLAGS =~ "RevealServer" ]]; then 30 | if [ -e "$REVEAL_SERVER_PATH" ]; then 31 | copy_library 32 | codesign_library 33 | echo "${REVEAL_SERVER_FILENAME} is included in this build, and has been copied to $CODESIGNING_FOLDER_PATH" 34 | else 35 | echo "${REVEAL_SERVER_FILENAME} is not included in this build, as it could not be found at $REVEAL_SERVER_PATH" 36 | fi 37 | else 38 | echo "${REVEAL_SERVER_FILENAME} is not included in this build because RevealServer was not present in the OTHER_LDFLAGS environment variable." 39 | fi 40 | } 41 | 42 | main 43 | -------------------------------------------------------------------------------- /Demo/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 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 18B75 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | RevealServer 11 | CFBundleIdentifier 12 | com.ittybittyapps.RevealServer 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | RevealServer 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 20 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | iPhoneOS 26 | 27 | CFBundleVersion 28 | 11340 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 16B91 33 | DTPlatformName 34 | iphoneos 35 | DTPlatformVersion 36 | 12.1 37 | DTSDKBuild 38 | 16B91 39 | DTSDKName 40 | iphoneos12.1 41 | DTXcode 42 | 1010 43 | DTXcodeBuild 44 | 10B61 45 | MinimumOSVersion 46 | 8.0 47 | UIDeviceFamily 48 | 49 | 1 50 | 2 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /Demo/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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | .DS_Store 6 | 7 | ## Build generated 8 | build/ 9 | DerivedData/ 10 | 11 | ## Various settings 12 | *.pbxuser 13 | !default.pbxuser 14 | *.mode1v3 15 | !default.mode1v3 16 | *.mode2v3 17 | !default.mode2v3 18 | *.perspectivev3 19 | !default.perspectivev3 20 | xcuserdata/ 21 | 22 | ## Other 23 | *.moved-aside 24 | *.xccheckout 25 | *.xcscmblueprint 26 | 27 | ## Obj-C/Swift specific 28 | *.hmap 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | # Packages/ 41 | # Package.pins 42 | # Package.resolved 43 | .build/ 44 | 45 | # CocoaPods 46 | # 47 | # We recommend against adding the Pods directory to your .gitignore. However 48 | # you should judge for yourself, the pros and cons are mentioned at: 49 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 50 | # 51 | # Pods/ 52 | 53 | # Carthage 54 | # 55 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 56 | # Carthage/Checkouts 57 | 58 | Carthage/Build 59 | 60 | # fastlane 61 | # 62 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 63 | # screenshots whenever they are needed. 64 | # For more information about the recommended setup visit: 65 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 66 | 67 | fastlane/report.xml 68 | fastlane/Preview.html 69 | fastlane/screenshots/**/*.png 70 | fastlane/test_output 71 | -------------------------------------------------------------------------------- /Demo/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 | } -------------------------------------------------------------------------------- /Demo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Demo 4 | // 5 | // Created by jinsei_shima on 2019/02/18. 6 | // Copyright © 2019 Jinsei Shima. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /Demo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // Demo 4 | // 5 | // Created by jinsei_shima on 2019/02/18. 6 | // Copyright © 2019 Jinsei Shima. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | let remaingCountIndicator = RemainigCountIndicator( 14 | maximumNumber: 20, 15 | config: RemainigCountIndicator.Config.init(threshold1: 5, threshold2: -5), 16 | style: RemainigCountIndicator.Style.init() 17 | ) 18 | 19 | let incrementBbutton = UIButton(type: .system) 20 | let decrementButton = UIButton(type: .system) 21 | 22 | override func viewDidLoad() { 23 | super.viewDidLoad() 24 | 25 | view.addSubview(remaingCountIndicator) 26 | view.addSubview(incrementBbutton) 27 | view.addSubview(decrementButton) 28 | 29 | remaingCountIndicator.translatesAutoresizingMaskIntoConstraints = false 30 | NSLayoutConstraint.activate([ 31 | remaingCountIndicator.centerXAnchor.constraint(equalTo: view.centerXAnchor), 32 | remaingCountIndicator.centerYAnchor.constraint(equalTo: view.centerYAnchor), 33 | ]) 34 | 35 | incrementBbutton.addTarget(self, action: #selector(increment), for: .touchUpInside) 36 | incrementBbutton.frame = .init(x: 0, y: 0, width: 96, height: 44) 37 | incrementBbutton.center = .init(x: view.bounds.width / 4, y: view.bounds.height * 3 / 4) 38 | incrementBbutton.setTitle("+", for: .normal) 39 | incrementBbutton.setTitleColor(UIColor.darkText, for: .normal) 40 | incrementBbutton.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .bold) 41 | incrementBbutton.backgroundColor = UIColor.groupTableViewBackground 42 | incrementBbutton.layer.cornerRadius = 8 43 | 44 | decrementButton.addTarget(self, action: #selector(decrement), for: .touchUpInside) 45 | decrementButton.frame = .init(x: 0, y: 0, width: 96, height: 44) 46 | decrementButton.center = .init(x: view.bounds.width * 3 / 4, y: view.bounds.height * 3 / 4) 47 | decrementButton.setTitle("-", for: .normal) 48 | decrementButton.setTitleColor(UIColor.darkText, for: .normal) 49 | decrementButton.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .bold) 50 | decrementButton.backgroundColor = UIColor.groupTableViewBackground 51 | decrementButton.layer.cornerRadius = 8 52 | } 53 | 54 | @objc func increment() { 55 | remaingCountIndicator.currentNumber += 1 56 | } 57 | 58 | @objc func decrement() { 59 | remaingCountIndicator.currentNumber -= 1 60 | } 61 | 62 | } 63 | 64 | -------------------------------------------------------------------------------- /RemainingCountIndicator.xcodeproj/xcshareddata/xcschemes/RemainingCountIndicator.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Pods/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Headers/RevealServer.h 8 | 9 | JavE2LI6bNGfH9W90/bDxwIxVlg= 10 | 11 | Info.plist 12 | 13 | qjQn7hGV/phZuJyxf03mXV/kZt4= 14 | 15 | Modules/module.modulemap 16 | 17 | EuDEeG1dcC1sd+hIW2SkUAImUg8= 18 | 19 | Scripts/copy_and_codesign_revealserver.sh 20 | 21 | yB2zXTggmRD0rra2Hbpxn2zfCRo= 22 | 23 | 24 | files2 25 | 26 | Headers/RevealServer.h 27 | 28 | hash 29 | 30 | JavE2LI6bNGfH9W90/bDxwIxVlg= 31 | 32 | hash2 33 | 34 | weLK/65HyV1EiL9dd4xoAqQhf0/0r/Oy6os2nXCA+Ew= 35 | 36 | 37 | Modules/module.modulemap 38 | 39 | hash 40 | 41 | EuDEeG1dcC1sd+hIW2SkUAImUg8= 42 | 43 | hash2 44 | 45 | tstqiJpIPr4iEd3MDHClLuTB/ciSC/zNlke1AjfSVuU= 46 | 47 | 48 | Scripts/copy_and_codesign_revealserver.sh 49 | 50 | hash 51 | 52 | yB2zXTggmRD0rra2Hbpxn2zfCRo= 53 | 54 | hash2 55 | 56 | SL0x5cGSOyS1RcojHFEmFX5IDfon/vO37cFsjSIX7LA= 57 | 58 | 59 | 60 | rules 61 | 62 | ^.* 63 | 64 | ^.*\.lproj/ 65 | 66 | optional 67 | 68 | weight 69 | 1000 70 | 71 | ^.*\.lproj/locversion.plist$ 72 | 73 | omit 74 | 75 | weight 76 | 1100 77 | 78 | ^Base\.lproj/ 79 | 80 | weight 81 | 1010 82 | 83 | ^version.plist$ 84 | 85 | 86 | rules2 87 | 88 | .*\.dSYM($|/) 89 | 90 | weight 91 | 11 92 | 93 | ^(.*/)?\.DS_Store$ 94 | 95 | omit 96 | 97 | weight 98 | 2000 99 | 100 | ^.* 101 | 102 | ^.*\.lproj/ 103 | 104 | optional 105 | 106 | weight 107 | 1000 108 | 109 | ^.*\.lproj/locversion.plist$ 110 | 111 | omit 112 | 113 | weight 114 | 1100 115 | 116 | ^Base\.lproj/ 117 | 118 | weight 119 | 1010 120 | 121 | ^Info\.plist$ 122 | 123 | omit 124 | 125 | weight 126 | 20 127 | 128 | ^PkgInfo$ 129 | 130 | omit 131 | 132 | weight 133 | 20 134 | 135 | ^embedded\.provisionprofile$ 136 | 137 | weight 138 | 20 139 | 140 | ^version\.plist$ 141 | 142 | weight 143 | 20 144 | 145 | 146 | 147 | 148 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | function on_error { 7 | echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" 8 | } 9 | trap 'on_error $LINENO' ERR 10 | 11 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then 12 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy 13 | # frameworks to, so exit 0 (signalling the script phase was successful). 14 | exit 0 15 | fi 16 | 17 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 18 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 19 | 20 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" 21 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 22 | 23 | # Used as a return value for each invocation of `strip_invalid_archs` function. 24 | STRIP_BINARY_RETVAL=0 25 | 26 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 27 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 28 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 29 | 30 | # Copies and strips a vendored framework 31 | install_framework() 32 | { 33 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 34 | local source="${BUILT_PRODUCTS_DIR}/$1" 35 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 36 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 37 | elif [ -r "$1" ]; then 38 | local source="$1" 39 | fi 40 | 41 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 42 | 43 | if [ -L "${source}" ]; then 44 | echo "Symlinked..." 45 | source="$(readlink "${source}")" 46 | fi 47 | 48 | # Use filter instead of exclude so missing patterns don't throw errors. 49 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 50 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 51 | 52 | local basename 53 | basename="$(basename -s .framework "$1")" 54 | binary="${destination}/${basename}.framework/${basename}" 55 | 56 | if ! [ -r "$binary" ]; then 57 | binary="${destination}/${basename}" 58 | elif [ -L "${binary}" ]; then 59 | echo "Destination binary is symlinked..." 60 | dirname="$(dirname "${binary}")" 61 | binary="${dirname}/$(readlink "${binary}")" 62 | fi 63 | 64 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 65 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 66 | strip_invalid_archs "$binary" 67 | fi 68 | 69 | # Resign the code if required by the build settings to avoid unstable apps 70 | code_sign_if_enabled "${destination}/$(basename "$1")" 71 | 72 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 73 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 74 | local swift_runtime_libs 75 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) 76 | for lib in $swift_runtime_libs; do 77 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 78 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 79 | code_sign_if_enabled "${destination}/${lib}" 80 | done 81 | fi 82 | } 83 | 84 | # Copies and strips a vendored dSYM 85 | install_dsym() { 86 | local source="$1" 87 | if [ -r "$source" ]; then 88 | # Copy the dSYM into a the targets temp dir. 89 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" 90 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" 91 | 92 | local basename 93 | basename="$(basename -s .framework.dSYM "$source")" 94 | binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" 95 | 96 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 97 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then 98 | strip_invalid_archs "$binary" 99 | fi 100 | 101 | if [[ $STRIP_BINARY_RETVAL == 1 ]]; then 102 | # Move the stripped file into its final destination. 103 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 104 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 105 | else 106 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. 107 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" 108 | fi 109 | fi 110 | } 111 | 112 | # Signs a framework with the provided identity 113 | code_sign_if_enabled() { 114 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 115 | # Use the current code_sign_identity 116 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 117 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 118 | 119 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 120 | code_sign_cmd="$code_sign_cmd &" 121 | fi 122 | echo "$code_sign_cmd" 123 | eval "$code_sign_cmd" 124 | fi 125 | } 126 | 127 | # Strip invalid architectures 128 | strip_invalid_archs() { 129 | binary="$1" 130 | # Get architectures for current target binary 131 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 132 | # Intersect them with the architectures we are building for 133 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 134 | # If there are no archs supported by this binary then warn the user 135 | if [[ -z "$intersected_archs" ]]; then 136 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 137 | STRIP_BINARY_RETVAL=0 138 | return 139 | fi 140 | stripped="" 141 | for arch in $binary_archs; do 142 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 143 | # Strip non-valid architectures in-place 144 | lipo -remove "$arch" -output "$binary" "$binary" 145 | stripped="$stripped $arch" 146 | fi 147 | done 148 | if [[ "$stripped" ]]; then 149 | echo "Stripped $binary of architectures:$stripped" 150 | fi 151 | STRIP_BINARY_RETVAL=1 152 | } 153 | 154 | 155 | if [[ "$CONFIGURATION" == "Debug" ]]; then 156 | install_framework "${PODS_ROOT}/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework" 157 | fi 158 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 159 | wait 160 | fi 161 | -------------------------------------------------------------------------------- /RemainingCountIndicator/RemainingCountIndicator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RemainingCountIndicator.swift 3 | // RemainingCountIndicator 4 | // 5 | // Created by jinsei_shima on 2019/02/18. 6 | // Copyright © 2019 Jinsei Shima. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | public final class RemainigCountIndicator: UIView { 12 | 13 | public enum Behavior : Int { 14 | case case1 // 残り文字数がborder1以上 15 | case case2 // 残り文字数が0以上border1以下 16 | case case3 // 残り文字数がborder2以上0未満 17 | case case4 // 残り文字数がborder2 以下 18 | 19 | init(remainingCount: Int, threshold1: Int, threshold2: Int) { 20 | 21 | if remainingCount > threshold1 { 22 | self = .case1 23 | } 24 | else if remainingCount > 0 { 25 | self = .case2 26 | } 27 | else if remainingCount > threshold2 { 28 | self = .case3 29 | } 30 | else { 31 | self = .case4 32 | } 33 | } 34 | } 35 | 36 | public struct Style { 37 | 38 | let progressNormalColor: UIColor 39 | let progressWarningColor: UIColor 40 | let progressErrorColor: UIColor 41 | 42 | let placeholderColor: UIColor 43 | 44 | let remainingTextColor: UIColor 45 | let remainingTextErrorColor: UIColor 46 | let remainingTextFont: UIFont 47 | 48 | let lineWidth: CGFloat 49 | 50 | public init( 51 | progressNormalColor: UIColor = .init(white: 0, alpha: 0.8), 52 | progressWarningColor: UIColor = .orange, 53 | progressErrorColor: UIColor = .red, 54 | placeholderColor: UIColor = .init(white: 0, alpha: 0.2), 55 | remainingTextColor: UIColor = UIColor.darkGray.withAlphaComponent(0.8), 56 | remainingTextErrorColor: UIColor = .red, 57 | remainingTextFont: UIFont = .systemFont(ofSize: 12, weight: .medium), 58 | lineWidth: CGFloat = 3 59 | ) { 60 | 61 | self.progressNormalColor = progressNormalColor 62 | self.progressWarningColor = progressWarningColor 63 | self.progressErrorColor = progressErrorColor 64 | self.placeholderColor = placeholderColor 65 | self.remainingTextColor = remainingTextColor 66 | self.remainingTextErrorColor = remainingTextErrorColor 67 | self.remainingTextFont = remainingTextFont 68 | self.lineWidth = lineWidth 69 | } 70 | } 71 | 72 | public struct Config { 73 | 74 | let threshold1: Int 75 | let threshold2: Int 76 | 77 | public init(threshold1: Int, threshold2: Int) { 78 | 79 | assert(threshold1 > threshold2, "invalid value, threshold2 is smaller than threshold1") 80 | 81 | self.threshold1 = threshold1 82 | self.threshold2 = threshold2 83 | } 84 | } 85 | 86 | private final class IndicatorView: UIView { 87 | 88 | private let placeholderShapeLayer = CAShapeLayer() 89 | private let progressShapeLayer = CAShapeLayer() 90 | 91 | private let style: Style 92 | 93 | fileprivate init(config: Config, style: Style) { 94 | 95 | self.style = style 96 | 97 | super.init(frame: .zero) 98 | 99 | layer.addSublayer(placeholderShapeLayer) 100 | layer.addSublayer(progressShapeLayer) 101 | 102 | placeholderShapeLayer.fillColor = UIColor.clear.cgColor 103 | placeholderShapeLayer.strokeColor = style.placeholderColor.cgColor 104 | placeholderShapeLayer.lineWidth = style.lineWidth 105 | 106 | progressShapeLayer.fillColor = UIColor.clear.cgColor 107 | progressShapeLayer.strokeStart = 0 108 | progressShapeLayer.strokeEnd = 0 109 | progressShapeLayer.lineCap = .round 110 | progressShapeLayer.lineWidth = style.lineWidth 111 | 112 | } 113 | 114 | required init?(coder aDecoder: NSCoder) { 115 | fatalError("init(coder:) has not been implemented") 116 | } 117 | 118 | override func layoutSublayers(of layer: CALayer) { 119 | 120 | super.layoutSublayers(of: layer) 121 | 122 | placeholderShapeLayer.frame = layer.bounds 123 | progressShapeLayer.frame = layer.bounds 124 | 125 | let path = UIBezierPath(roundedRect: layer.bounds, cornerRadius: .infinity) 126 | placeholderShapeLayer.path = path.cgPath 127 | progressShapeLayer.path = path.cgPath 128 | } 129 | 130 | private var oldBehavior: Behavior? = nil 131 | 132 | internal func set(behavior: Behavior, currentNumber: Int, maximumNumber: Int, animated: Bool) { 133 | 134 | defer { 135 | self.oldBehavior = behavior 136 | } 137 | 138 | // change progress 139 | 140 | progressShapeLayer.strokeEnd = min(CGFloat(currentNumber) / CGFloat(maximumNumber), 1.0) 141 | 142 | 143 | switch behavior { 144 | case .case1: 145 | progressShapeLayer.strokeColor = style.progressNormalColor.cgColor 146 | case .case2: 147 | progressShapeLayer.strokeColor = style.progressWarningColor.cgColor 148 | case .case3: 149 | progressShapeLayer.strokeColor = style.progressErrorColor.cgColor 150 | case .case4: 151 | progressShapeLayer.strokeColor = style.progressErrorColor.cgColor 152 | } 153 | 154 | switch behavior { 155 | case .case1, .case2, .case3: 156 | progressShapeLayer.isHidden = false 157 | placeholderShapeLayer.isHidden = false 158 | case .case4: 159 | progressShapeLayer.isHidden = true 160 | placeholderShapeLayer.isHidden = true 161 | } 162 | 163 | // change animation 164 | 165 | guard 166 | let oldBehavior = oldBehavior, 167 | oldBehavior != behavior, 168 | animated 169 | else { return } 170 | 171 | if calcurateTransformIfNeeded(oldBehavior: oldBehavior, currentBehavior: behavior) { 172 | 173 | // animation of circle expand 174 | 175 | let animation = CABasicAnimation.init(keyPath: "transform.scale") 176 | animation.timingFunction = CAMediaTimingFunction.init(name: CAMediaTimingFunctionName.easeInEaseOut) 177 | animation.duration = 0.14 178 | animation.toValue = 1.06 179 | animation.isRemovedOnCompletion = false 180 | animation.autoreverses = true 181 | 182 | progressShapeLayer.add(animation, forKey: "scale") 183 | placeholderShapeLayer.add(animation, forKey: "scale") 184 | 185 | } 186 | 187 | do { 188 | 189 | // animation of show/hidden 190 | 191 | let animation = CABasicAnimation.init(keyPath: "hidden") 192 | animation.timingFunction = CAMediaTimingFunction.init(name: CAMediaTimingFunctionName.easeInEaseOut) 193 | animation.duration = 0.3 194 | animation.fillMode = .forwards 195 | animation.isRemovedOnCompletion = false 196 | 197 | switch behavior { 198 | case .case1, .case2, .case3: 199 | animation.toValue = false 200 | case .case4: 201 | animation.toValue = true 202 | } 203 | 204 | progressShapeLayer.add(animation, forKey: "opacity") 205 | placeholderShapeLayer.add(animation, forKey: "opacity") 206 | 207 | } 208 | 209 | } 210 | 211 | private func calcurateTransformIfNeeded(oldBehavior: Behavior, currentBehavior: Behavior) -> Bool { 212 | return oldBehavior.rawValue < currentBehavior.rawValue ? true : false 213 | } 214 | 215 | } 216 | 217 | public override var intrinsicContentSize: CGSize { 218 | return .init(width: UIView.noIntrinsicMetric, height: UIView.noIntrinsicMetric) 219 | } 220 | 221 | override public class var requiresConstraintBasedLayout: Bool { 222 | return true 223 | } 224 | 225 | public var remainingCount: Int { 226 | return maximumNumber - currentNumber 227 | } 228 | 229 | public var alwaysAnimation: Bool = true 230 | 231 | public var currentNumber: Int = 0 { 232 | didSet { 233 | 234 | let behavior = Behavior.init( 235 | remainingCount: remainingCount, 236 | threshold1: config.threshold1, 237 | threshold2: config.threshold2 238 | ) 239 | 240 | indicatorView.set( 241 | behavior: behavior, 242 | currentNumber: currentNumber, 243 | maximumNumber: maximumNumber, 244 | animated: alwaysAnimation 245 | ) 246 | 247 | switch behavior { 248 | case .case1: 249 | remainingCountLabel.textColor = style.remainingTextColor 250 | remainingCountLabel.isHidden = true 251 | case .case2: 252 | remainingCountLabel.textColor = style.remainingTextColor 253 | remainingCountLabel.isHidden = false 254 | case .case3: 255 | remainingCountLabel.textColor = style.remainingTextErrorColor 256 | remainingCountLabel.isHidden = false 257 | case .case4: 258 | remainingCountLabel.textColor = style.remainingTextErrorColor 259 | remainingCountLabel.isHidden = false 260 | } 261 | 262 | // for digit overflow 263 | if (-99...99).contains(remainingCount) { 264 | remainingCountLabel.text = "\(remainingCount)" 265 | remainingCountLabel.sizeToFit() 266 | invalidateIntrinsicContentSize() 267 | } 268 | } 269 | } 270 | 271 | private let maximumNumber: Int 272 | 273 | private let indicatorView: IndicatorView 274 | private let remainingCountLabel = UILabel() 275 | 276 | private let config: Config 277 | private let style: Style 278 | 279 | public init(maximumNumber: Int, config: Config, style: Style) { 280 | 281 | self.maximumNumber = maximumNumber 282 | self.config = config 283 | self.style = style 284 | 285 | self.indicatorView = .init(config: config, style: style) 286 | 287 | super.init(frame: .zero) 288 | 289 | addSubview(indicatorView) 290 | addSubview(remainingCountLabel) 291 | 292 | remainingCountLabel.font = style.remainingTextFont 293 | 294 | indicatorView.translatesAutoresizingMaskIntoConstraints = false 295 | remainingCountLabel.translatesAutoresizingMaskIntoConstraints = false 296 | translatesAutoresizingMaskIntoConstraints = false 297 | 298 | indicatorView.setContentCompressionResistancePriority(.required, for: .horizontal) 299 | indicatorView.setContentHuggingPriority(.required, for: .horizontal) 300 | remainingCountLabel.setContentCompressionResistancePriority(.required, for: .horizontal) 301 | remainingCountLabel.setContentHuggingPriority(.required, for: .horizontal) 302 | setContentHuggingPriority(.required, for: .horizontal) 303 | 304 | let indicatorViewLeftAnchor = indicatorView.leftAnchor.constraint(equalTo: leftAnchor, constant: 0) 305 | indicatorViewLeftAnchor.priority = .defaultHigh 306 | 307 | let indicatorViewRightAnchor = indicatorView.rightAnchor.constraint(equalTo: rightAnchor, constant: 0) 308 | indicatorViewRightAnchor.priority = .defaultHigh 309 | 310 | NSLayoutConstraint.activate([ 311 | indicatorView.topAnchor.constraint(equalTo: topAnchor, constant: 0), 312 | indicatorView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: 0), 313 | indicatorView.widthAnchor.constraint(equalToConstant: 24), 314 | indicatorView.heightAnchor.constraint(equalToConstant: 24), 315 | indicatorView.centerXAnchor.constraint(equalTo: centerXAnchor), 316 | indicatorViewLeftAnchor, 317 | indicatorViewRightAnchor 318 | ]) 319 | 320 | NSLayoutConstraint.activate([ 321 | remainingCountLabel.topAnchor.constraint(greaterThanOrEqualTo: topAnchor, constant: 0), 322 | remainingCountLabel.bottomAnchor.constraint(lessThanOrEqualTo: bottomAnchor, constant: 0), 323 | remainingCountLabel.leftAnchor.constraint(greaterThanOrEqualTo: leftAnchor, constant: 0), 324 | remainingCountLabel.rightAnchor.constraint(lessThanOrEqualTo: rightAnchor, constant: 0), 325 | remainingCountLabel.centerXAnchor.constraint(equalTo: centerXAnchor), 326 | remainingCountLabel.centerYAnchor.constraint(equalTo: centerYAnchor), 327 | ]) 328 | 329 | } 330 | 331 | required init?(coder aDecoder: NSCoder) { 332 | fatalError("init(coder:) has not been implemented") 333 | } 334 | 335 | } 336 | -------------------------------------------------------------------------------- /Pods/Reveal-SDK/RevealServer-20/LICENSE.md: -------------------------------------------------------------------------------- 1 | # REVEAL LICENSE AGREEMENT v2.0 2 | 3 | ## NOTICE TO USER: 4 | 5 | This is a legally enforceable agreement between you (__"you"__ or __"yours"__ and other grammatical equivalents) and Itty Bitty Apps Pty. Ltd. (__"the Company"__), which covers your use of the Reveal software product that accompanies this Agreement and related software components, which may include associated media, printed materials, and "online" or electronic documentation. All such software and materials are referred to herein as the __"Software"__ or __"the Reveal Software"__. If you do not agree to the terms of this License Agreement, then do not install or use the Software. By explicitly accepting this License Agreement, or by installing, copying, downloading, accessing, or otherwise using the Software, you are acknowledging and agreeing to be bound by the following terms: 6 | 7 | ## 1. DEFINITIONS 8 | 9 | __(a) "Software"__ shall mean the Reveal software including any Updates thereto, in object and source form, and the media and Documentation provided by the Company to you and for which you are granted a license pursuant to this Agreement. 10 | 11 | __(b) "Documentation"__ shall mean the printed or online written reference material furnished to you in conjunction with the Software, including, without limitation, instructions, guidelines, and end user guides. 12 | 13 | __(c) "Intellectual Property Rights"__ shall mean all intellectual property rights, including, without limitation, patent, copyright, trademark, and trade secret. 14 | 15 | __(d) "Updates"__ shall mean a modification, error correction, bug fix, new release, or other update to or for the Software. 16 | 17 | 18 | ## 2. LICENSE GRANT 19 | 20 | The Company may, at its sole discretion, grant you a Trial License, a Personal License, a Commercial Seat License, a Site License or an Enterprise License. 21 | 22 | If you have not purchased or otherwise rightfully obtained a Personal License, a Commercial Seat License, a Site License or an Enterprise License for the Reveal Software, the Trial License Terms (2.1) are applicable to your use of the Reveal Software. The Trial License Terms are also applicable to any usage of the Reveal Software by you that is not covered under any other licenses you may have. 23 | 24 | The Personal License Terms (2.2) apply if you have a Personal License. The Commercial Seat License Terms (2.3) apply if you have a Commercial Seat License. The Site License Terms (2.4) apply if you have a Site License. The Enterprise License Terms (2.5) apply if you have an Enterprise License. 25 | 26 | The General Terms (3) apply in all cases. 27 | 28 | ### 2.1 TRIAL LICENSE TERMS 29 | 30 | The Company grants you a non-exclusive license to use the Software for time-limited evaluation purposes, only in accordance with the terms and conditions set forth herein. The Software may be used for a period of 14 calendar days from the time of activation. Upon lapse of such trial period all of or part of the functionality of the Software will be disabled automatically. 31 | 32 | If you wish to use the Software after the trial period, you must purchase a Personal License, a Commercial Seat License, a Site License or an Enterprise License. The Company may extend to you an expiring license key, in which event such a license key will be considered a means to extend the trial period under the Trial License Terms. 33 | 34 | 35 | ### 2.2 PERSONAL LICENSE TERMS 36 | 37 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License grants you the right to activate and use the Software on no more than 2 computers primarily used by you. Use of the Software under this license may be for both commercial and non-commercial purposes. Personal licences are not available to companies, commercial institutions, government agencies or business entities. 38 | 39 | 40 | ### 2.3 COMMERCIAL SEAT LICENSE TERMS 41 | 42 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 43 | 44 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. A Commercial Seat License must be purchased for every person employed by you or employed by any fully owned subsidiary of yours wishing to use the Software. 45 | 46 | This license is granted exclusively on a per-employee basis within your organisation and is not transferable to another current employee without written permission. This License grants the right to activate and use the Software on no more than 2 computers used by the employee. 47 | 48 | This License does not allow the use of the Software other than for business purposes of your company. If entering into a Commercial Seat License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 49 | 50 | 51 | ### 2.4 SITE LICENSE TERMS 52 | 53 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 54 | 55 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. 56 | 57 | Unless otherwise specified, any Site License you acquire from the Company is valid only for use at the business locations listed on your sales invoice. 58 | 59 | This License does not allow the use of the Software other than for business purposes of your company. If entering into a Site License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 60 | 61 | 62 | ### 2.5 ENTERPRISE LICENSE TERMS 63 | 64 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 65 | 66 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. 67 | 68 | This License allows global use of the Software by all employees or employees of any fully owned subsidiary of the company, commercial institution, government agency or business entity listed in your sales invoice. 69 | 70 | This License does not allow the use of the Software other than for business purposes of your company. If entering into an Enterprise License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 71 | 72 | 73 | ## 3. GENERAL TERMS 74 | 75 | ### 3.1 TITLE 76 | 77 | ‘REVEAL’™ and ‘ITTY BITTY APPS’™ represent proprietary common law trademarks owned by the Company and must not be used without written permission. 78 | 79 | The Company shall own and retain all right, title and interest in and to all Intellectual Property Rights related to the Software, the Documentation and all improvements to any of them however so created. You do not acquire any other rights, express or implied, in the Software. ALL RIGHTS NOT EXPRESSLY GRANTED HEREUNDER ARE RESERVED TO THE COMPANY. 80 | 81 | ### 3.2 ARCHIVAL OR BACKUP COPIES 82 | 83 | You may copy the Software for backup and archival purposes only, provided that the original and each copy is kept in your possession and that your installation and use of the Software does not exceed that allowed in the "License Grant" section above. 84 | 85 | ### 3.3 THINGS YOU MUST NOT DO 86 | 87 | The Software and Documentation are protected by Australian and international copyright law. You must treat the Software and Documentation like any other copyrighted material—for example, a book. You may not: 88 | 89 | * copy the Documentation, 90 | * copy the Software except to make archival or backup copies as provided above, 91 | * modify or adapt the Software or merge it into another program, 92 | * reverse engineer, disassemble, decompile or make any attempt to discover the source code of the Software, 93 | * place the Software onto a server so that it is accessible via a public network such as the Internet, or 94 | * sublicense, rent, lease, sublicense or lend any portion of the Software or Documentation. 95 | 96 | ### 3.4 LIMITATION OF LICENSE VALIDITY 97 | 98 | Any License to use the Software granted to you under this License Agreement is limited to the release of the Software available at the time of purchase plus all releases of the Software for 12 months from the time of purchase exclusively. The Company reserves the right to change the terms of this agreement in any future major or minor release of the software. 99 | 100 | ### 3.5 ONLINE ACTIVATION 101 | 102 | The Software requires activation in order to use it under the terms of this agreement. If you do not activate the Software, all of or part of the functionality of the Software will disable automatically. The Company may at its sole discretion decide to adjust the exact technical conditions under which unactivated copies of the Software cease to work. You need an active, functional internet connection to activate your copy of the Software. Your licensed use of the Software is bound to the computer(s) you used to complete activation. You may need to reactivate your copy of the Software after replacing the logic board or otherwise changing the hardware configuration of your computer. You may need to contact the Company to complete reactivation. 103 | 104 | ### 3.6 ADDITIONAL SERVICES 105 | 106 | Fees may apply for additional services and products offered by the company and others, such as services that integrate with the Software or extend the functionality of the Software. 107 | 108 | ### 3.7 TECHNICAL AND RELATED INFORMATION 109 | 110 | The Company and its subsidiaries may collect and use technical and related information, such as technical information concerning your computer, system and application software. The Company does not collect (a) any information that identifies your work, (b) any file names or file contents of anything you work on using the Software. The Company and its subsidiaries are free to use the collected information in any form that does not personally identify you. 111 | 112 | ### 3.8 PRIVACY 113 | 114 | The Company will not sell or in any way license usage of your personal information to third parties. The Company will make reasonable efforts to keep your personal information secure. 115 | 116 | ### 3.9 TRANSFERS 117 | 118 | With prior notice to the Company, you may transfer all your rights to use the Software and Documentation only once and permanently to another person or legal entity provided you transfer this License Agreement, the Software and Documentation, including all copies, updates and prior versions to such person or entity and that you retain no copies, including copies stored on computer. The receiving person or legal entity must satisfy the conditions of the applicable license terms set out in section 2. 119 | 120 | ### 3.10 LIMITED WARRANTY 121 | 122 | We warrant that for a period of 14 days after delivery of this copy of the Software to you the Software will perform in substantial accordance with the Documentation. 123 | 124 | To the extent permitted by applicable law, THE FOREGOING LIMITED WARRANTY IS IN LIEU OF ALL OTHER WARRANTIES OR CONDITIONS, EXPRESS OR IMPLIED, AND WE DISCLAIM ANY AND ALL IMPLIED WARRANTIES OR CONDITIONS, INCLUDING ANY IMPLIED WARRANTY OF TITLE, NONINFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, regardless of whether we know or had reason to know of your particular needs. No employee, agent, dealer or distributor of ours is authorized to modify this limited warranty, nor to make any additional warranties. 125 | SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. 126 | 127 | ### 3.11 LIMITED REMEDY 128 | 129 | Our entire liability and your exclusive remedy for breach of the foregoing warranty shall be, at our option, to return the price you paid minus fees incurred to transfer those funds to you. 130 | 131 | IN NO EVENT WILL WE BE LIABLE TO YOU FOR ANY DIRECT OR INDIRECT DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE (EVEN IF WE OR AN AUTHORIZED DEALER OR DISTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF THESE DAMAGES), OR FOR ANY CLAIM BY ANY OTHER PARTY. 132 | SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. 133 | 134 | ### 3.12 TERM AND TERMINATION 135 | 136 | This license agreement takes effect upon your use of the software and remains effective until terminated. You may terminate it at any time by destroying all copies of the Software and Documentation in your possession. It will also automatically terminate if you fail to comply with any term or condition of this license agreement. You hereby agree that on termination of this license to permanently destroy all copies of the Software and Documentation in your possession. 137 | 138 | ### 3.13 CONFIDENTIALITY 139 | 140 | The Software contains trade secrets and proprietary know-how that belong to the Company and it is being made available to you in strict confidence. ANY USE OR DISCLOSURE OF THE SOFTWARE, OR OF ITS ALGORITHMS, PROTOCOLS OR INTERFACES, OTHER THAN IN STRICT ACCORDANCE WITH THIS LICENSE AGREEMENT, MAY BE ACTIONABLE AS A VIOLATION OF THE COMPANY'S TRADE SECRET RIGHTS. 141 | 142 | ### 3.14 GENERAL PROVISIONS 143 | 144 | __3.14.1__ This written license agreement is the exclusive agreement between you and the Company concerning the Software and Documentation and supersedes any prior purchase order, communication, advertising or representation concerning the Software. 145 | 146 | __3.14.2__ This is the entire agreement between the parties relating to the subject matter hereof and all other terms are rejected. No waiver or modification of this Agreement shall be valid unless in writing signed by each party. The waiver of a breach of any term hereof shall in no way be construed as a waiver of any term or other breach hereof. If any provision of this Agreement is held by a court of competent jurisdiction to be contrary to law the remaining provisions of this Agreement shall remain in full force and effect. 147 | 148 | __3.14.3__ In the event of litigation between you and the Company concerning the Software or Documentation, the prevailing party in the litigation will be entitled to recover attorney fees and expenses from the other party. 149 | 150 | __3.14.4__ This Agreement, and all disputes arising out of or related thereto, shall be governed by and construed under the laws of the State of Victoria, Australia, without reference to conflict of laws principles. All such disputes shall be subject to the exclusive jurisdiction of the state and federal courts located in Australia, and the parties agree and submit to the personal and exclusive jurisdiction and venue of these courts. 151 | 152 | 153 | ## 4. CONTACT INFORMATION 154 | 155 | If you have any questions about this License Agreement, or if you want to contact the Company for any reason, please direct all mail correspondence to: Itty Bitty Apps Pty. Ltd. Level 6, 84 William St, Melbourne, Victoria, Australia, 3000, or electronic correspondence to info@ittybittyapps.com. 156 | 157 | Do you agree to be bound by the terms of this agreement? -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## Reveal-SDK 5 | 6 | # REVEAL LICENSE AGREEMENT v2.0 7 | 8 | ## NOTICE TO USER: 9 | 10 | This is a legally enforceable agreement between you (__"you"__ or __"yours"__ and other grammatical equivalents) and Itty Bitty Apps Pty. Ltd. (__"the Company"__), which covers your use of the Reveal software product that accompanies this Agreement and related software components, which may include associated media, printed materials, and "online" or electronic documentation. All such software and materials are referred to herein as the __"Software"__ or __"the Reveal Software"__. If you do not agree to the terms of this License Agreement, then do not install or use the Software. By explicitly accepting this License Agreement, or by installing, copying, downloading, accessing, or otherwise using the Software, you are acknowledging and agreeing to be bound by the following terms: 11 | 12 | ## 1. DEFINITIONS 13 | 14 | __(a) "Software"__ shall mean the Reveal software including any Updates thereto, in object and source form, and the media and Documentation provided by the Company to you and for which you are granted a license pursuant to this Agreement. 15 | 16 | __(b) "Documentation"__ shall mean the printed or online written reference material furnished to you in conjunction with the Software, including, without limitation, instructions, guidelines, and end user guides. 17 | 18 | __(c) "Intellectual Property Rights"__ shall mean all intellectual property rights, including, without limitation, patent, copyright, trademark, and trade secret. 19 | 20 | __(d) "Updates"__ shall mean a modification, error correction, bug fix, new release, or other update to or for the Software. 21 | 22 | 23 | ## 2. LICENSE GRANT 24 | 25 | The Company may, at its sole discretion, grant you a Trial License, a Personal License, a Commercial Seat License, a Site License or an Enterprise License. 26 | 27 | If you have not purchased or otherwise rightfully obtained a Personal License, a Commercial Seat License, a Site License or an Enterprise License for the Reveal Software, the Trial License Terms (2.1) are applicable to your use of the Reveal Software. The Trial License Terms are also applicable to any usage of the Reveal Software by you that is not covered under any other licenses you may have. 28 | 29 | The Personal License Terms (2.2) apply if you have a Personal License. The Commercial Seat License Terms (2.3) apply if you have a Commercial Seat License. The Site License Terms (2.4) apply if you have a Site License. The Enterprise License Terms (2.5) apply if you have an Enterprise License. 30 | 31 | The General Terms (3) apply in all cases. 32 | 33 | ### 2.1 TRIAL LICENSE TERMS 34 | 35 | The Company grants you a non-exclusive license to use the Software for time-limited evaluation purposes, only in accordance with the terms and conditions set forth herein. The Software may be used for a period of 14 calendar days from the time of activation. Upon lapse of such trial period all of or part of the functionality of the Software will be disabled automatically. 36 | 37 | If you wish to use the Software after the trial period, you must purchase a Personal License, a Commercial Seat License, a Site License or an Enterprise License. The Company may extend to you an expiring license key, in which event such a license key will be considered a means to extend the trial period under the Trial License Terms. 38 | 39 | 40 | ### 2.2 PERSONAL LICENSE TERMS 41 | 42 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License grants you the right to activate and use the Software on no more than 2 computers primarily used by you. Use of the Software under this license may be for both commercial and non-commercial purposes. Personal licences are not available to companies, commercial institutions, government agencies or business entities. 43 | 44 | 45 | ### 2.3 COMMERCIAL SEAT LICENSE TERMS 46 | 47 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 48 | 49 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. A Commercial Seat License must be purchased for every person employed by you or employed by any fully owned subsidiary of yours wishing to use the Software. 50 | 51 | This license is granted exclusively on a per-employee basis within your organisation and is not transferable to another current employee without written permission. This License grants the right to activate and use the Software on no more than 2 computers used by the employee. 52 | 53 | This License does not allow the use of the Software other than for business purposes of your company. If entering into a Commercial Seat License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 54 | 55 | 56 | ### 2.4 SITE LICENSE TERMS 57 | 58 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 59 | 60 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. 61 | 62 | Unless otherwise specified, any Site License you acquire from the Company is valid only for use at the business locations listed on your sales invoice. 63 | 64 | This License does not allow the use of the Software other than for business purposes of your company. If entering into a Site License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 65 | 66 | 67 | ### 2.5 ENTERPRISE LICENSE TERMS 68 | 69 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 70 | 71 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. 72 | 73 | This License allows global use of the Software by all employees or employees of any fully owned subsidiary of the company, commercial institution, government agency or business entity listed in your sales invoice. 74 | 75 | This License does not allow the use of the Software other than for business purposes of your company. If entering into an Enterprise License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 76 | 77 | 78 | ## 3. GENERAL TERMS 79 | 80 | ### 3.1 TITLE 81 | 82 | ‘REVEAL’™ and ‘ITTY BITTY APPS’™ represent proprietary common law trademarks owned by the Company and must not be used without written permission. 83 | 84 | The Company shall own and retain all right, title and interest in and to all Intellectual Property Rights related to the Software, the Documentation and all improvements to any of them however so created. You do not acquire any other rights, express or implied, in the Software. ALL RIGHTS NOT EXPRESSLY GRANTED HEREUNDER ARE RESERVED TO THE COMPANY. 85 | 86 | ### 3.2 ARCHIVAL OR BACKUP COPIES 87 | 88 | You may copy the Software for backup and archival purposes only, provided that the original and each copy is kept in your possession and that your installation and use of the Software does not exceed that allowed in the "License Grant" section above. 89 | 90 | ### 3.3 THINGS YOU MUST NOT DO 91 | 92 | The Software and Documentation are protected by Australian and international copyright law. You must treat the Software and Documentation like any other copyrighted material—for example, a book. You may not: 93 | 94 | * copy the Documentation, 95 | * copy the Software except to make archival or backup copies as provided above, 96 | * modify or adapt the Software or merge it into another program, 97 | * reverse engineer, disassemble, decompile or make any attempt to discover the source code of the Software, 98 | * place the Software onto a server so that it is accessible via a public network such as the Internet, or 99 | * sublicense, rent, lease, sublicense or lend any portion of the Software or Documentation. 100 | 101 | ### 3.4 LIMITATION OF LICENSE VALIDITY 102 | 103 | Any License to use the Software granted to you under this License Agreement is limited to the release of the Software available at the time of purchase plus all releases of the Software for 12 months from the time of purchase exclusively. The Company reserves the right to change the terms of this agreement in any future major or minor release of the software. 104 | 105 | ### 3.5 ONLINE ACTIVATION 106 | 107 | The Software requires activation in order to use it under the terms of this agreement. If you do not activate the Software, all of or part of the functionality of the Software will disable automatically. The Company may at its sole discretion decide to adjust the exact technical conditions under which unactivated copies of the Software cease to work. You need an active, functional internet connection to activate your copy of the Software. Your licensed use of the Software is bound to the computer(s) you used to complete activation. You may need to reactivate your copy of the Software after replacing the logic board or otherwise changing the hardware configuration of your computer. You may need to contact the Company to complete reactivation. 108 | 109 | ### 3.6 ADDITIONAL SERVICES 110 | 111 | Fees may apply for additional services and products offered by the company and others, such as services that integrate with the Software or extend the functionality of the Software. 112 | 113 | ### 3.7 TECHNICAL AND RELATED INFORMATION 114 | 115 | The Company and its subsidiaries may collect and use technical and related information, such as technical information concerning your computer, system and application software. The Company does not collect (a) any information that identifies your work, (b) any file names or file contents of anything you work on using the Software. The Company and its subsidiaries are free to use the collected information in any form that does not personally identify you. 116 | 117 | ### 3.8 PRIVACY 118 | 119 | The Company will not sell or in any way license usage of your personal information to third parties. The Company will make reasonable efforts to keep your personal information secure. 120 | 121 | ### 3.9 TRANSFERS 122 | 123 | With prior notice to the Company, you may transfer all your rights to use the Software and Documentation only once and permanently to another person or legal entity provided you transfer this License Agreement, the Software and Documentation, including all copies, updates and prior versions to such person or entity and that you retain no copies, including copies stored on computer. The receiving person or legal entity must satisfy the conditions of the applicable license terms set out in section 2. 124 | 125 | ### 3.10 LIMITED WARRANTY 126 | 127 | We warrant that for a period of 14 days after delivery of this copy of the Software to you the Software will perform in substantial accordance with the Documentation. 128 | 129 | To the extent permitted by applicable law, THE FOREGOING LIMITED WARRANTY IS IN LIEU OF ALL OTHER WARRANTIES OR CONDITIONS, EXPRESS OR IMPLIED, AND WE DISCLAIM ANY AND ALL IMPLIED WARRANTIES OR CONDITIONS, INCLUDING ANY IMPLIED WARRANTY OF TITLE, NONINFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, regardless of whether we know or had reason to know of your particular needs. No employee, agent, dealer or distributor of ours is authorized to modify this limited warranty, nor to make any additional warranties. 130 | SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. 131 | 132 | ### 3.11 LIMITED REMEDY 133 | 134 | Our entire liability and your exclusive remedy for breach of the foregoing warranty shall be, at our option, to return the price you paid minus fees incurred to transfer those funds to you. 135 | 136 | IN NO EVENT WILL WE BE LIABLE TO YOU FOR ANY DIRECT OR INDIRECT DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE (EVEN IF WE OR AN AUTHORIZED DEALER OR DISTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF THESE DAMAGES), OR FOR ANY CLAIM BY ANY OTHER PARTY. 137 | SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. 138 | 139 | ### 3.12 TERM AND TERMINATION 140 | 141 | This license agreement takes effect upon your use of the software and remains effective until terminated. You may terminate it at any time by destroying all copies of the Software and Documentation in your possession. It will also automatically terminate if you fail to comply with any term or condition of this license agreement. You hereby agree that on termination of this license to permanently destroy all copies of the Software and Documentation in your possession. 142 | 143 | ### 3.13 CONFIDENTIALITY 144 | 145 | The Software contains trade secrets and proprietary know-how that belong to the Company and it is being made available to you in strict confidence. ANY USE OR DISCLOSURE OF THE SOFTWARE, OR OF ITS ALGORITHMS, PROTOCOLS OR INTERFACES, OTHER THAN IN STRICT ACCORDANCE WITH THIS LICENSE AGREEMENT, MAY BE ACTIONABLE AS A VIOLATION OF THE COMPANY'S TRADE SECRET RIGHTS. 146 | 147 | ### 3.14 GENERAL PROVISIONS 148 | 149 | __3.14.1__ This written license agreement is the exclusive agreement between you and the Company concerning the Software and Documentation and supersedes any prior purchase order, communication, advertising or representation concerning the Software. 150 | 151 | __3.14.2__ This is the entire agreement between the parties relating to the subject matter hereof and all other terms are rejected. No waiver or modification of this Agreement shall be valid unless in writing signed by each party. The waiver of a breach of any term hereof shall in no way be construed as a waiver of any term or other breach hereof. If any provision of this Agreement is held by a court of competent jurisdiction to be contrary to law the remaining provisions of this Agreement shall remain in full force and effect. 152 | 153 | __3.14.3__ In the event of litigation between you and the Company concerning the Software or Documentation, the prevailing party in the litigation will be entitled to recover attorney fees and expenses from the other party. 154 | 155 | __3.14.4__ This Agreement, and all disputes arising out of or related thereto, shall be governed by and construed under the laws of the State of Victoria, Australia, without reference to conflict of laws principles. All such disputes shall be subject to the exclusive jurisdiction of the state and federal courts located in Australia, and the parties agree and submit to the personal and exclusive jurisdiction and venue of these courts. 156 | 157 | 158 | ## 4. CONTACT INFORMATION 159 | 160 | If you have any questions about this License Agreement, or if you want to contact the Company for any reason, please direct all mail correspondence to: Itty Bitty Apps Pty. Ltd. Level 6, 84 William St, Melbourne, Victoria, Australia, 3000, or electronic correspondence to info@ittybittyapps.com. 161 | 162 | Do you agree to be bound by the terms of this agreement? 163 | Generated by CocoaPods - https://cocoapods.org 164 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Demo/Pods-Demo-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | # REVEAL LICENSE AGREEMENT v2.0 18 | 19 | ## NOTICE TO USER: 20 | 21 | This is a legally enforceable agreement between you (__"you"__ or __"yours"__ and other grammatical equivalents) and Itty Bitty Apps Pty. Ltd. (__"the Company"__), which covers your use of the Reveal software product that accompanies this Agreement and related software components, which may include associated media, printed materials, and "online" or electronic documentation. All such software and materials are referred to herein as the __"Software"__ or __"the Reveal Software"__. If you do not agree to the terms of this License Agreement, then do not install or use the Software. By explicitly accepting this License Agreement, or by installing, copying, downloading, accessing, or otherwise using the Software, you are acknowledging and agreeing to be bound by the following terms: 22 | 23 | ## 1. DEFINITIONS 24 | 25 | __(a) "Software"__ shall mean the Reveal software including any Updates thereto, in object and source form, and the media and Documentation provided by the Company to you and for which you are granted a license pursuant to this Agreement. 26 | 27 | __(b) "Documentation"__ shall mean the printed or online written reference material furnished to you in conjunction with the Software, including, without limitation, instructions, guidelines, and end user guides. 28 | 29 | __(c) "Intellectual Property Rights"__ shall mean all intellectual property rights, including, without limitation, patent, copyright, trademark, and trade secret. 30 | 31 | __(d) "Updates"__ shall mean a modification, error correction, bug fix, new release, or other update to or for the Software. 32 | 33 | 34 | ## 2. LICENSE GRANT 35 | 36 | The Company may, at its sole discretion, grant you a Trial License, a Personal License, a Commercial Seat License, a Site License or an Enterprise License. 37 | 38 | If you have not purchased or otherwise rightfully obtained a Personal License, a Commercial Seat License, a Site License or an Enterprise License for the Reveal Software, the Trial License Terms (2.1) are applicable to your use of the Reveal Software. The Trial License Terms are also applicable to any usage of the Reveal Software by you that is not covered under any other licenses you may have. 39 | 40 | The Personal License Terms (2.2) apply if you have a Personal License. The Commercial Seat License Terms (2.3) apply if you have a Commercial Seat License. The Site License Terms (2.4) apply if you have a Site License. The Enterprise License Terms (2.5) apply if you have an Enterprise License. 41 | 42 | The General Terms (3) apply in all cases. 43 | 44 | ### 2.1 TRIAL LICENSE TERMS 45 | 46 | The Company grants you a non-exclusive license to use the Software for time-limited evaluation purposes, only in accordance with the terms and conditions set forth herein. The Software may be used for a period of 14 calendar days from the time of activation. Upon lapse of such trial period all of or part of the functionality of the Software will be disabled automatically. 47 | 48 | If you wish to use the Software after the trial period, you must purchase a Personal License, a Commercial Seat License, a Site License or an Enterprise License. The Company may extend to you an expiring license key, in which event such a license key will be considered a means to extend the trial period under the Trial License Terms. 49 | 50 | 51 | ### 2.2 PERSONAL LICENSE TERMS 52 | 53 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License grants you the right to activate and use the Software on no more than 2 computers primarily used by you. Use of the Software under this license may be for both commercial and non-commercial purposes. Personal licences are not available to companies, commercial institutions, government agencies or business entities. 54 | 55 | 56 | ### 2.3 COMMERCIAL SEAT LICENSE TERMS 57 | 58 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 59 | 60 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. A Commercial Seat License must be purchased for every person employed by you or employed by any fully owned subsidiary of yours wishing to use the Software. 61 | 62 | This license is granted exclusively on a per-employee basis within your organisation and is not transferable to another current employee without written permission. This License grants the right to activate and use the Software on no more than 2 computers used by the employee. 63 | 64 | This License does not allow the use of the Software other than for business purposes of your company. If entering into a Commercial Seat License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 65 | 66 | 67 | ### 2.4 SITE LICENSE TERMS 68 | 69 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 70 | 71 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. 72 | 73 | Unless otherwise specified, any Site License you acquire from the Company is valid only for use at the business locations listed on your sales invoice. 74 | 75 | This License does not allow the use of the Software other than for business purposes of your company. If entering into a Site License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 76 | 77 | 78 | ### 2.5 ENTERPRISE LICENSE TERMS 79 | 80 | The Company grants you a non-exclusive license to use the Software, only in accordance with the terms and conditions set forth herein. This License is only available to companies, commercial institutions, government agencies and business entities. 81 | 82 | This License does not allow the Software to be activated and used on computers that are not either a) owned by you, b) owned by any fully owned subsidiary of yours, c) owned by or operated primarily by your employees or employees of any fully owned subsidiary of yours. 83 | 84 | This License allows global use of the Software by all employees or employees of any fully owned subsidiary of the company, commercial institution, government agency or business entity listed in your sales invoice. 85 | 86 | This License does not allow the use of the Software other than for business purposes of your company. If entering into an Enterprise License you personally warrant that you have full legal authority to enter into this agreement on behalf of your employer. 87 | 88 | 89 | ## 3. GENERAL TERMS 90 | 91 | ### 3.1 TITLE 92 | 93 | ‘REVEAL’™ and ‘ITTY BITTY APPS’™ represent proprietary common law trademarks owned by the Company and must not be used without written permission. 94 | 95 | The Company shall own and retain all right, title and interest in and to all Intellectual Property Rights related to the Software, the Documentation and all improvements to any of them however so created. You do not acquire any other rights, express or implied, in the Software. ALL RIGHTS NOT EXPRESSLY GRANTED HEREUNDER ARE RESERVED TO THE COMPANY. 96 | 97 | ### 3.2 ARCHIVAL OR BACKUP COPIES 98 | 99 | You may copy the Software for backup and archival purposes only, provided that the original and each copy is kept in your possession and that your installation and use of the Software does not exceed that allowed in the "License Grant" section above. 100 | 101 | ### 3.3 THINGS YOU MUST NOT DO 102 | 103 | The Software and Documentation are protected by Australian and international copyright law. You must treat the Software and Documentation like any other copyrighted material—for example, a book. You may not: 104 | 105 | * copy the Documentation, 106 | * copy the Software except to make archival or backup copies as provided above, 107 | * modify or adapt the Software or merge it into another program, 108 | * reverse engineer, disassemble, decompile or make any attempt to discover the source code of the Software, 109 | * place the Software onto a server so that it is accessible via a public network such as the Internet, or 110 | * sublicense, rent, lease, sublicense or lend any portion of the Software or Documentation. 111 | 112 | ### 3.4 LIMITATION OF LICENSE VALIDITY 113 | 114 | Any License to use the Software granted to you under this License Agreement is limited to the release of the Software available at the time of purchase plus all releases of the Software for 12 months from the time of purchase exclusively. The Company reserves the right to change the terms of this agreement in any future major or minor release of the software. 115 | 116 | ### 3.5 ONLINE ACTIVATION 117 | 118 | The Software requires activation in order to use it under the terms of this agreement. If you do not activate the Software, all of or part of the functionality of the Software will disable automatically. The Company may at its sole discretion decide to adjust the exact technical conditions under which unactivated copies of the Software cease to work. You need an active, functional internet connection to activate your copy of the Software. Your licensed use of the Software is bound to the computer(s) you used to complete activation. You may need to reactivate your copy of the Software after replacing the logic board or otherwise changing the hardware configuration of your computer. You may need to contact the Company to complete reactivation. 119 | 120 | ### 3.6 ADDITIONAL SERVICES 121 | 122 | Fees may apply for additional services and products offered by the company and others, such as services that integrate with the Software or extend the functionality of the Software. 123 | 124 | ### 3.7 TECHNICAL AND RELATED INFORMATION 125 | 126 | The Company and its subsidiaries may collect and use technical and related information, such as technical information concerning your computer, system and application software. The Company does not collect (a) any information that identifies your work, (b) any file names or file contents of anything you work on using the Software. The Company and its subsidiaries are free to use the collected information in any form that does not personally identify you. 127 | 128 | ### 3.8 PRIVACY 129 | 130 | The Company will not sell or in any way license usage of your personal information to third parties. The Company will make reasonable efforts to keep your personal information secure. 131 | 132 | ### 3.9 TRANSFERS 133 | 134 | With prior notice to the Company, you may transfer all your rights to use the Software and Documentation only once and permanently to another person or legal entity provided you transfer this License Agreement, the Software and Documentation, including all copies, updates and prior versions to such person or entity and that you retain no copies, including copies stored on computer. The receiving person or legal entity must satisfy the conditions of the applicable license terms set out in section 2. 135 | 136 | ### 3.10 LIMITED WARRANTY 137 | 138 | We warrant that for a period of 14 days after delivery of this copy of the Software to you the Software will perform in substantial accordance with the Documentation. 139 | 140 | To the extent permitted by applicable law, THE FOREGOING LIMITED WARRANTY IS IN LIEU OF ALL OTHER WARRANTIES OR CONDITIONS, EXPRESS OR IMPLIED, AND WE DISCLAIM ANY AND ALL IMPLIED WARRANTIES OR CONDITIONS, INCLUDING ANY IMPLIED WARRANTY OF TITLE, NONINFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, regardless of whether we know or had reason to know of your particular needs. No employee, agent, dealer or distributor of ours is authorized to modify this limited warranty, nor to make any additional warranties. 141 | SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. 142 | 143 | ### 3.11 LIMITED REMEDY 144 | 145 | Our entire liability and your exclusive remedy for breach of the foregoing warranty shall be, at our option, to return the price you paid minus fees incurred to transfer those funds to you. 146 | 147 | IN NO EVENT WILL WE BE LIABLE TO YOU FOR ANY DIRECT OR INDIRECT DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE (EVEN IF WE OR AN AUTHORIZED DEALER OR DISTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF THESE DAMAGES), OR FOR ANY CLAIM BY ANY OTHER PARTY. 148 | SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. 149 | 150 | ### 3.12 TERM AND TERMINATION 151 | 152 | This license agreement takes effect upon your use of the software and remains effective until terminated. You may terminate it at any time by destroying all copies of the Software and Documentation in your possession. It will also automatically terminate if you fail to comply with any term or condition of this license agreement. You hereby agree that on termination of this license to permanently destroy all copies of the Software and Documentation in your possession. 153 | 154 | ### 3.13 CONFIDENTIALITY 155 | 156 | The Software contains trade secrets and proprietary know-how that belong to the Company and it is being made available to you in strict confidence. ANY USE OR DISCLOSURE OF THE SOFTWARE, OR OF ITS ALGORITHMS, PROTOCOLS OR INTERFACES, OTHER THAN IN STRICT ACCORDANCE WITH THIS LICENSE AGREEMENT, MAY BE ACTIONABLE AS A VIOLATION OF THE COMPANY'S TRADE SECRET RIGHTS. 157 | 158 | ### 3.14 GENERAL PROVISIONS 159 | 160 | __3.14.1__ This written license agreement is the exclusive agreement between you and the Company concerning the Software and Documentation and supersedes any prior purchase order, communication, advertising or representation concerning the Software. 161 | 162 | __3.14.2__ This is the entire agreement between the parties relating to the subject matter hereof and all other terms are rejected. No waiver or modification of this Agreement shall be valid unless in writing signed by each party. The waiver of a breach of any term hereof shall in no way be construed as a waiver of any term or other breach hereof. If any provision of this Agreement is held by a court of competent jurisdiction to be contrary to law the remaining provisions of this Agreement shall remain in full force and effect. 163 | 164 | __3.14.3__ In the event of litigation between you and the Company concerning the Software or Documentation, the prevailing party in the litigation will be entitled to recover attorney fees and expenses from the other party. 165 | 166 | __3.14.4__ This Agreement, and all disputes arising out of or related thereto, shall be governed by and construed under the laws of the State of Victoria, Australia, without reference to conflict of laws principles. All such disputes shall be subject to the exclusive jurisdiction of the state and federal courts located in Australia, and the parties agree and submit to the personal and exclusive jurisdiction and venue of these courts. 167 | 168 | 169 | ## 4. CONTACT INFORMATION 170 | 171 | If you have any questions about this License Agreement, or if you want to contact the Company for any reason, please direct all mail correspondence to: Itty Bitty Apps Pty. Ltd. Level 6, 84 William St, Melbourne, Victoria, Australia, 3000, or electronic correspondence to info@ittybittyapps.com. 172 | 173 | Do you agree to be bound by the terms of this agreement? 174 | License 175 | Commercial 176 | Title 177 | Reveal-SDK 178 | Type 179 | PSGroupSpecifier 180 | 181 | 182 | FooterText 183 | Generated by CocoaPods - https://cocoapods.org 184 | Title 185 | 186 | Type 187 | PSGroupSpecifier 188 | 189 | 190 | StringsTable 191 | Acknowledgements 192 | Title 193 | Acknowledgements 194 | 195 | 196 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXAggregateTarget section */ 10 | FAE298B0408E063D805E2F6E9496794D /* Reveal-SDK */ = { 11 | isa = PBXAggregateTarget; 12 | buildConfigurationList = 2C2D97161CF19BC8F30A8C199FB05D59 /* Build configuration list for PBXAggregateTarget "Reveal-SDK" */; 13 | buildPhases = ( 14 | ); 15 | dependencies = ( 16 | ); 17 | name = "Reveal-SDK"; 18 | }; 19 | /* End PBXAggregateTarget section */ 20 | 21 | /* Begin PBXBuildFile section */ 22 | 26D2AF72A29C6C4D20AAF5B68E557900 /* Pods-Demo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BA35DC7F6030B34AEDE1C8E7F314E0D4 /* Pods-Demo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23 | 49B2C319F2D3DC37A364BE1247393E3D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */; }; 24 | AA014D0CDA361593E21B746FD332AD04 /* Pods-Demo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F64BF7C0B9A73DEB641FFEB5C169E4A1 /* Pods-Demo-dummy.m */; }; 25 | /* End PBXBuildFile section */ 26 | 27 | /* Begin PBXContainerItemProxy section */ 28 | 5515D23C8382DE8535ABEA1835351FCB /* PBXContainerItemProxy */ = { 29 | isa = PBXContainerItemProxy; 30 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 31 | proxyType = 1; 32 | remoteGlobalIDString = FAE298B0408E063D805E2F6E9496794D; 33 | remoteInfo = "Reveal-SDK"; 34 | }; 35 | /* End PBXContainerItemProxy section */ 36 | 37 | /* Begin PBXFileReference section */ 38 | 420B87958418318F6F9A78ED6B80A848 /* Pods_Demo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Demo.framework; path = "Pods-Demo.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 4663436857E29478C314AA5EA1247F82 /* Pods-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Demo.release.xcconfig"; sourceTree = ""; }; 40 | 4AA2AF8B93DB9343FB11CF23E274C0A0 /* Reveal-SDK.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Reveal-SDK.xcconfig"; sourceTree = ""; }; 41 | 52EBFC28C3A961D3F27C72B1BF7C6EF0 /* Pods-Demo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Demo-Info.plist"; sourceTree = ""; }; 42 | 6F5ECEEF2D76136C3B3C026EF9B59FDB /* Pods-Demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Demo.debug.xcconfig"; sourceTree = ""; }; 43 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 44 | A2BD8F3CD1D6562AE19AABC767C6A6D9 /* Pods-Demo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Demo-acknowledgements.markdown"; sourceTree = ""; }; 45 | A724AE0B17BA28976AD3A68B7D155187 /* RevealServer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RevealServer.framework; path = "RevealServer-20/iOS/RevealServer.framework"; sourceTree = ""; }; 46 | BA35DC7F6030B34AEDE1C8E7F314E0D4 /* Pods-Demo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Demo-umbrella.h"; sourceTree = ""; }; 47 | C9CDF07C88CF666AAABA7283F7DF00D4 /* Pods-Demo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Demo-frameworks.sh"; sourceTree = ""; }; 48 | CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 49 | E11F1B6970046187F27F99AD33389401 /* Pods-Demo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Demo-acknowledgements.plist"; sourceTree = ""; }; 50 | EB1CFAA25A57FC740FAF7F4FFF9219E6 /* Pods-Demo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Demo.modulemap"; sourceTree = ""; }; 51 | F64BF7C0B9A73DEB641FFEB5C169E4A1 /* Pods-Demo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Demo-dummy.m"; sourceTree = ""; }; 52 | /* End PBXFileReference section */ 53 | 54 | /* Begin PBXFrameworksBuildPhase section */ 55 | 7674F1A2870E75B51098F325403C5F88 /* Frameworks */ = { 56 | isa = PBXFrameworksBuildPhase; 57 | buildActionMask = 2147483647; 58 | files = ( 59 | 49B2C319F2D3DC37A364BE1247393E3D /* Foundation.framework in Frameworks */, 60 | ); 61 | runOnlyForDeploymentPostprocessing = 0; 62 | }; 63 | /* End PBXFrameworksBuildPhase section */ 64 | 65 | /* Begin PBXGroup section */ 66 | 21FF7982FCED7A76D3B9EB72011DACF2 /* Targets Support Files */ = { 67 | isa = PBXGroup; 68 | children = ( 69 | 6BE5F01D7C22180DDFB6A230A01C7689 /* Pods-Demo */, 70 | ); 71 | name = "Targets Support Files"; 72 | sourceTree = ""; 73 | }; 74 | 49E4B85E586C360289D135A0F5364F3A /* Pods */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | 933705988E64D2FF8A6C44A636080020 /* Reveal-SDK */, 78 | ); 79 | name = Pods; 80 | sourceTree = ""; 81 | }; 82 | 6BE5F01D7C22180DDFB6A230A01C7689 /* Pods-Demo */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | EB1CFAA25A57FC740FAF7F4FFF9219E6 /* Pods-Demo.modulemap */, 86 | A2BD8F3CD1D6562AE19AABC767C6A6D9 /* Pods-Demo-acknowledgements.markdown */, 87 | E11F1B6970046187F27F99AD33389401 /* Pods-Demo-acknowledgements.plist */, 88 | F64BF7C0B9A73DEB641FFEB5C169E4A1 /* Pods-Demo-dummy.m */, 89 | C9CDF07C88CF666AAABA7283F7DF00D4 /* Pods-Demo-frameworks.sh */, 90 | 52EBFC28C3A961D3F27C72B1BF7C6EF0 /* Pods-Demo-Info.plist */, 91 | BA35DC7F6030B34AEDE1C8E7F314E0D4 /* Pods-Demo-umbrella.h */, 92 | 6F5ECEEF2D76136C3B3C026EF9B59FDB /* Pods-Demo.debug.xcconfig */, 93 | 4663436857E29478C314AA5EA1247F82 /* Pods-Demo.release.xcconfig */, 94 | ); 95 | name = "Pods-Demo"; 96 | path = "Target Support Files/Pods-Demo"; 97 | sourceTree = ""; 98 | }; 99 | 88026E23DD6F440B9315EDEBB44A8F78 /* Support Files */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | 4AA2AF8B93DB9343FB11CF23E274C0A0 /* Reveal-SDK.xcconfig */, 103 | ); 104 | name = "Support Files"; 105 | path = "../Target Support Files/Reveal-SDK"; 106 | sourceTree = ""; 107 | }; 108 | 933705988E64D2FF8A6C44A636080020 /* Reveal-SDK */ = { 109 | isa = PBXGroup; 110 | children = ( 111 | C1F89F106312907BDAB6E230314E59B7 /* Frameworks */, 112 | 88026E23DD6F440B9315EDEBB44A8F78 /* Support Files */, 113 | ); 114 | name = "Reveal-SDK"; 115 | path = "Reveal-SDK"; 116 | sourceTree = ""; 117 | }; 118 | 9B055D0CFEA43187E72B03DED11F5662 /* iOS */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */, 122 | ); 123 | name = iOS; 124 | sourceTree = ""; 125 | }; 126 | C1F89F106312907BDAB6E230314E59B7 /* Frameworks */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | A724AE0B17BA28976AD3A68B7D155187 /* RevealServer.framework */, 130 | ); 131 | name = Frameworks; 132 | sourceTree = ""; 133 | }; 134 | CF1408CF629C7361332E53B88F7BD30C = { 135 | isa = PBXGroup; 136 | children = ( 137 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 138 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, 139 | 49E4B85E586C360289D135A0F5364F3A /* Pods */, 140 | F23EFC7AA6F650B5661ECE8F1239E974 /* Products */, 141 | 21FF7982FCED7A76D3B9EB72011DACF2 /* Targets Support Files */, 142 | ); 143 | sourceTree = ""; 144 | }; 145 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { 146 | isa = PBXGroup; 147 | children = ( 148 | 9B055D0CFEA43187E72B03DED11F5662 /* iOS */, 149 | ); 150 | name = Frameworks; 151 | sourceTree = ""; 152 | }; 153 | F23EFC7AA6F650B5661ECE8F1239E974 /* Products */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 420B87958418318F6F9A78ED6B80A848 /* Pods_Demo.framework */, 157 | ); 158 | name = Products; 159 | sourceTree = ""; 160 | }; 161 | /* End PBXGroup section */ 162 | 163 | /* Begin PBXHeadersBuildPhase section */ 164 | AA704E0F6785B459D7C57DE82769F4D8 /* Headers */ = { 165 | isa = PBXHeadersBuildPhase; 166 | buildActionMask = 2147483647; 167 | files = ( 168 | 26D2AF72A29C6C4D20AAF5B68E557900 /* Pods-Demo-umbrella.h in Headers */, 169 | ); 170 | runOnlyForDeploymentPostprocessing = 0; 171 | }; 172 | /* End PBXHeadersBuildPhase section */ 173 | 174 | /* Begin PBXNativeTarget section */ 175 | 01B64E670F2FD9DC3B1874AD4DACD734 /* Pods-Demo */ = { 176 | isa = PBXNativeTarget; 177 | buildConfigurationList = 2293777EEFD8A108F9520DFEFD862B74 /* Build configuration list for PBXNativeTarget "Pods-Demo" */; 178 | buildPhases = ( 179 | AA704E0F6785B459D7C57DE82769F4D8 /* Headers */, 180 | 87B12899ECE882E10DAE281590FA6AA4 /* Sources */, 181 | 7674F1A2870E75B51098F325403C5F88 /* Frameworks */, 182 | D670337C11FDDE31DC56E5A43D82CB24 /* Resources */, 183 | ); 184 | buildRules = ( 185 | ); 186 | dependencies = ( 187 | 7B8EFE9CF2C0E7D2A9F2EC761D5E98EF /* PBXTargetDependency */, 188 | ); 189 | name = "Pods-Demo"; 190 | productName = "Pods-Demo"; 191 | productReference = 420B87958418318F6F9A78ED6B80A848 /* Pods_Demo.framework */; 192 | productType = "com.apple.product-type.framework"; 193 | }; 194 | /* End PBXNativeTarget section */ 195 | 196 | /* Begin PBXProject section */ 197 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = { 198 | isa = PBXProject; 199 | attributes = { 200 | LastSwiftUpdateCheck = 0930; 201 | LastUpgradeCheck = 0930; 202 | }; 203 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; 204 | compatibilityVersion = "Xcode 3.2"; 205 | developmentRegion = English; 206 | hasScannedForEncodings = 0; 207 | knownRegions = ( 208 | en, 209 | ); 210 | mainGroup = CF1408CF629C7361332E53B88F7BD30C; 211 | productRefGroup = F23EFC7AA6F650B5661ECE8F1239E974 /* Products */; 212 | projectDirPath = ""; 213 | projectRoot = ""; 214 | targets = ( 215 | 01B64E670F2FD9DC3B1874AD4DACD734 /* Pods-Demo */, 216 | FAE298B0408E063D805E2F6E9496794D /* Reveal-SDK */, 217 | ); 218 | }; 219 | /* End PBXProject section */ 220 | 221 | /* Begin PBXResourcesBuildPhase section */ 222 | D670337C11FDDE31DC56E5A43D82CB24 /* Resources */ = { 223 | isa = PBXResourcesBuildPhase; 224 | buildActionMask = 2147483647; 225 | files = ( 226 | ); 227 | runOnlyForDeploymentPostprocessing = 0; 228 | }; 229 | /* End PBXResourcesBuildPhase section */ 230 | 231 | /* Begin PBXSourcesBuildPhase section */ 232 | 87B12899ECE882E10DAE281590FA6AA4 /* Sources */ = { 233 | isa = PBXSourcesBuildPhase; 234 | buildActionMask = 2147483647; 235 | files = ( 236 | AA014D0CDA361593E21B746FD332AD04 /* Pods-Demo-dummy.m in Sources */, 237 | ); 238 | runOnlyForDeploymentPostprocessing = 0; 239 | }; 240 | /* End PBXSourcesBuildPhase section */ 241 | 242 | /* Begin PBXTargetDependency section */ 243 | 7B8EFE9CF2C0E7D2A9F2EC761D5E98EF /* PBXTargetDependency */ = { 244 | isa = PBXTargetDependency; 245 | name = "Reveal-SDK"; 246 | target = FAE298B0408E063D805E2F6E9496794D /* Reveal-SDK */; 247 | targetProxy = 5515D23C8382DE8535ABEA1835351FCB /* PBXContainerItemProxy */; 248 | }; 249 | /* End PBXTargetDependency section */ 250 | 251 | /* Begin XCBuildConfiguration section */ 252 | 035E20F7B5F552BDE566A44E23BDCF09 /* Debug */ = { 253 | isa = XCBuildConfiguration; 254 | baseConfigurationReference = 4AA2AF8B93DB9343FB11CF23E274C0A0 /* Reveal-SDK.xcconfig */; 255 | buildSettings = { 256 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 257 | CODE_SIGN_IDENTITY = "iPhone Developer"; 258 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 259 | LD_RUNPATH_SEARCH_PATHS = ( 260 | "$(inherited)", 261 | "@executable_path/Frameworks", 262 | ); 263 | SDKROOT = iphoneos; 264 | TARGETED_DEVICE_FAMILY = "1,2"; 265 | }; 266 | name = Debug; 267 | }; 268 | 07488D4657FB0A78086563621D425F8A /* Debug */ = { 269 | isa = XCBuildConfiguration; 270 | buildSettings = { 271 | ALWAYS_SEARCH_USER_PATHS = NO; 272 | CLANG_ANALYZER_NONNULL = YES; 273 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 274 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 275 | CLANG_CXX_LIBRARY = "libc++"; 276 | CLANG_ENABLE_MODULES = YES; 277 | CLANG_ENABLE_OBJC_ARC = YES; 278 | CLANG_ENABLE_OBJC_WEAK = YES; 279 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 280 | CLANG_WARN_BOOL_CONVERSION = YES; 281 | CLANG_WARN_COMMA = YES; 282 | CLANG_WARN_CONSTANT_CONVERSION = YES; 283 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 284 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 285 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 286 | CLANG_WARN_EMPTY_BODY = YES; 287 | CLANG_WARN_ENUM_CONVERSION = YES; 288 | CLANG_WARN_INFINITE_RECURSION = YES; 289 | CLANG_WARN_INT_CONVERSION = YES; 290 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 291 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 292 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 293 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 294 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 295 | CLANG_WARN_STRICT_PROTOTYPES = YES; 296 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 297 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 298 | CLANG_WARN_UNREACHABLE_CODE = YES; 299 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 300 | COPY_PHASE_STRIP = NO; 301 | DEBUG_INFORMATION_FORMAT = dwarf; 302 | ENABLE_STRICT_OBJC_MSGSEND = YES; 303 | ENABLE_TESTABILITY = YES; 304 | GCC_C_LANGUAGE_STANDARD = gnu11; 305 | GCC_DYNAMIC_NO_PIC = NO; 306 | GCC_NO_COMMON_BLOCKS = YES; 307 | GCC_OPTIMIZATION_LEVEL = 0; 308 | GCC_PREPROCESSOR_DEFINITIONS = ( 309 | "POD_CONFIGURATION_DEBUG=1", 310 | "DEBUG=1", 311 | "$(inherited)", 312 | ); 313 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 314 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 315 | GCC_WARN_UNDECLARED_SELECTOR = YES; 316 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 317 | GCC_WARN_UNUSED_FUNCTION = YES; 318 | GCC_WARN_UNUSED_VARIABLE = YES; 319 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 320 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 321 | MTL_FAST_MATH = YES; 322 | ONLY_ACTIVE_ARCH = YES; 323 | PRODUCT_NAME = "$(TARGET_NAME)"; 324 | STRIP_INSTALLED_PRODUCT = NO; 325 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 326 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 327 | SWIFT_VERSION = 4.2; 328 | SYMROOT = "${SRCROOT}/../build"; 329 | }; 330 | name = Debug; 331 | }; 332 | 2602D8CD728BE47B8B4FEA364FC5B790 /* Release */ = { 333 | isa = XCBuildConfiguration; 334 | baseConfigurationReference = 4AA2AF8B93DB9343FB11CF23E274C0A0 /* Reveal-SDK.xcconfig */; 335 | buildSettings = { 336 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 337 | CODE_SIGN_IDENTITY = "iPhone Developer"; 338 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 339 | LD_RUNPATH_SEARCH_PATHS = ( 340 | "$(inherited)", 341 | "@executable_path/Frameworks", 342 | ); 343 | SDKROOT = iphoneos; 344 | TARGETED_DEVICE_FAMILY = "1,2"; 345 | VALIDATE_PRODUCT = YES; 346 | }; 347 | name = Release; 348 | }; 349 | 545964912F6F653E01B00CEBFECE43B3 /* Release */ = { 350 | isa = XCBuildConfiguration; 351 | baseConfigurationReference = 4663436857E29478C314AA5EA1247F82 /* Pods-Demo.release.xcconfig */; 352 | buildSettings = { 353 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 354 | CODE_SIGN_IDENTITY = ""; 355 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 356 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 357 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 358 | CURRENT_PROJECT_VERSION = 1; 359 | DEFINES_MODULE = YES; 360 | DYLIB_COMPATIBILITY_VERSION = 1; 361 | DYLIB_CURRENT_VERSION = 1; 362 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 363 | INFOPLIST_FILE = "Target Support Files/Pods-Demo/Pods-Demo-Info.plist"; 364 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 365 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 366 | LD_RUNPATH_SEARCH_PATHS = ( 367 | "$(inherited)", 368 | "@executable_path/Frameworks", 369 | "@loader_path/Frameworks", 370 | ); 371 | MACH_O_TYPE = staticlib; 372 | MODULEMAP_FILE = "Target Support Files/Pods-Demo/Pods-Demo.modulemap"; 373 | OTHER_LDFLAGS = ""; 374 | OTHER_LIBTOOLFLAGS = ""; 375 | PODS_ROOT = "$(SRCROOT)"; 376 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 377 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 378 | SDKROOT = iphoneos; 379 | SKIP_INSTALL = YES; 380 | TARGETED_DEVICE_FAMILY = "1,2"; 381 | VALIDATE_PRODUCT = YES; 382 | VERSIONING_SYSTEM = "apple-generic"; 383 | VERSION_INFO_PREFIX = ""; 384 | }; 385 | name = Release; 386 | }; 387 | A1962E6FF39BBAC201A2E5DDF99557DF /* Release */ = { 388 | isa = XCBuildConfiguration; 389 | buildSettings = { 390 | ALWAYS_SEARCH_USER_PATHS = NO; 391 | CLANG_ANALYZER_NONNULL = YES; 392 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 393 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 394 | CLANG_CXX_LIBRARY = "libc++"; 395 | CLANG_ENABLE_MODULES = YES; 396 | CLANG_ENABLE_OBJC_ARC = YES; 397 | CLANG_ENABLE_OBJC_WEAK = YES; 398 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 399 | CLANG_WARN_BOOL_CONVERSION = YES; 400 | CLANG_WARN_COMMA = YES; 401 | CLANG_WARN_CONSTANT_CONVERSION = YES; 402 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 403 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 404 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 405 | CLANG_WARN_EMPTY_BODY = YES; 406 | CLANG_WARN_ENUM_CONVERSION = YES; 407 | CLANG_WARN_INFINITE_RECURSION = YES; 408 | CLANG_WARN_INT_CONVERSION = YES; 409 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 410 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 411 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 412 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 413 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 414 | CLANG_WARN_STRICT_PROTOTYPES = YES; 415 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 416 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 417 | CLANG_WARN_UNREACHABLE_CODE = YES; 418 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 419 | COPY_PHASE_STRIP = NO; 420 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 421 | ENABLE_NS_ASSERTIONS = NO; 422 | ENABLE_STRICT_OBJC_MSGSEND = YES; 423 | GCC_C_LANGUAGE_STANDARD = gnu11; 424 | GCC_NO_COMMON_BLOCKS = YES; 425 | GCC_PREPROCESSOR_DEFINITIONS = ( 426 | "POD_CONFIGURATION_RELEASE=1", 427 | "$(inherited)", 428 | ); 429 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 430 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 431 | GCC_WARN_UNDECLARED_SELECTOR = YES; 432 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 433 | GCC_WARN_UNUSED_FUNCTION = YES; 434 | GCC_WARN_UNUSED_VARIABLE = YES; 435 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 436 | MTL_ENABLE_DEBUG_INFO = NO; 437 | MTL_FAST_MATH = YES; 438 | PRODUCT_NAME = "$(TARGET_NAME)"; 439 | STRIP_INSTALLED_PRODUCT = NO; 440 | SWIFT_COMPILATION_MODE = wholemodule; 441 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 442 | SWIFT_VERSION = 4.2; 443 | SYMROOT = "${SRCROOT}/../build"; 444 | }; 445 | name = Release; 446 | }; 447 | C59567841151F44264A8F2051A59DF7A /* Debug */ = { 448 | isa = XCBuildConfiguration; 449 | baseConfigurationReference = 6F5ECEEF2D76136C3B3C026EF9B59FDB /* Pods-Demo.debug.xcconfig */; 450 | buildSettings = { 451 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 452 | CODE_SIGN_IDENTITY = ""; 453 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 454 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 455 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 456 | CURRENT_PROJECT_VERSION = 1; 457 | DEFINES_MODULE = YES; 458 | DYLIB_COMPATIBILITY_VERSION = 1; 459 | DYLIB_CURRENT_VERSION = 1; 460 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 461 | INFOPLIST_FILE = "Target Support Files/Pods-Demo/Pods-Demo-Info.plist"; 462 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 463 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 464 | LD_RUNPATH_SEARCH_PATHS = ( 465 | "$(inherited)", 466 | "@executable_path/Frameworks", 467 | "@loader_path/Frameworks", 468 | ); 469 | MACH_O_TYPE = staticlib; 470 | MODULEMAP_FILE = "Target Support Files/Pods-Demo/Pods-Demo.modulemap"; 471 | OTHER_LDFLAGS = ""; 472 | OTHER_LIBTOOLFLAGS = ""; 473 | PODS_ROOT = "$(SRCROOT)"; 474 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 475 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 476 | SDKROOT = iphoneos; 477 | SKIP_INSTALL = YES; 478 | TARGETED_DEVICE_FAMILY = "1,2"; 479 | VERSIONING_SYSTEM = "apple-generic"; 480 | VERSION_INFO_PREFIX = ""; 481 | }; 482 | name = Debug; 483 | }; 484 | /* End XCBuildConfiguration section */ 485 | 486 | /* Begin XCConfigurationList section */ 487 | 2293777EEFD8A108F9520DFEFD862B74 /* Build configuration list for PBXNativeTarget "Pods-Demo" */ = { 488 | isa = XCConfigurationList; 489 | buildConfigurations = ( 490 | C59567841151F44264A8F2051A59DF7A /* Debug */, 491 | 545964912F6F653E01B00CEBFECE43B3 /* Release */, 492 | ); 493 | defaultConfigurationIsVisible = 0; 494 | defaultConfigurationName = Release; 495 | }; 496 | 2C2D97161CF19BC8F30A8C199FB05D59 /* Build configuration list for PBXAggregateTarget "Reveal-SDK" */ = { 497 | isa = XCConfigurationList; 498 | buildConfigurations = ( 499 | 035E20F7B5F552BDE566A44E23BDCF09 /* Debug */, 500 | 2602D8CD728BE47B8B4FEA364FC5B790 /* Release */, 501 | ); 502 | defaultConfigurationIsVisible = 0; 503 | defaultConfigurationName = Release; 504 | }; 505 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { 506 | isa = XCConfigurationList; 507 | buildConfigurations = ( 508 | 07488D4657FB0A78086563621D425F8A /* Debug */, 509 | A1962E6FF39BBAC201A2E5DDF99557DF /* Release */, 510 | ); 511 | defaultConfigurationIsVisible = 0; 512 | defaultConfigurationName = Release; 513 | }; 514 | /* End XCConfigurationList section */ 515 | }; 516 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; 517 | } 518 | -------------------------------------------------------------------------------- /RemainingCountIndicator.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 26492AFD0F8C208B093C2AD3 /* Pods_Demo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA13F10D24C4A3A749DE1B12 /* Pods_Demo.framework */; }; 11 | D4FAA39D221ADAEE00C5B59A /* RemainingCountIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = D4FAA39B221ADAEE00C5B59A /* RemainingCountIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12 | D4FAA3AA221ADB0100C5B59A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4FAA3A9221ADB0100C5B59A /* AppDelegate.swift */; }; 13 | D4FAA3AC221ADB0100C5B59A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4FAA3AB221ADB0100C5B59A /* ViewController.swift */; }; 14 | D4FAA3AF221ADB0100C5B59A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D4FAA3AD221ADB0100C5B59A /* Main.storyboard */; }; 15 | D4FAA3B1221ADB0200C5B59A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D4FAA3B0221ADB0200C5B59A /* Assets.xcassets */; }; 16 | D4FAA3B4221ADB0200C5B59A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D4FAA3B2221ADB0200C5B59A /* LaunchScreen.storyboard */; }; 17 | D4FAA3BA221ADB2700C5B59A /* RemainingCountIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4FAA3B9221ADB2700C5B59A /* RemainingCountIndicator.swift */; }; 18 | D4FAA3C2221AEDC100C5B59A /* RemainingCountIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4FAA3B9221ADB2700C5B59A /* RemainingCountIndicator.swift */; }; 19 | /* End PBXBuildFile section */ 20 | 21 | /* Begin PBXFileReference section */ 22 | 7C518AE0446CDD6DA3A307C1 /* Pods-Demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Demo.debug.xcconfig"; path = "Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig"; sourceTree = ""; }; 23 | AA13F10D24C4A3A749DE1B12 /* Pods_Demo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Demo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 24 | D4FAA398221ADAEE00C5B59A /* RemainingCountIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RemainingCountIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 25 | D4FAA39B221ADAEE00C5B59A /* RemainingCountIndicator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemainingCountIndicator.h; sourceTree = ""; }; 26 | D4FAA39C221ADAEE00C5B59A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 27 | D4FAA3A7221ADB0100C5B59A /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 28 | D4FAA3A9221ADB0100C5B59A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 29 | D4FAA3AB221ADB0100C5B59A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 30 | D4FAA3AE221ADB0100C5B59A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 31 | D4FAA3B0221ADB0200C5B59A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 32 | D4FAA3B3221ADB0200C5B59A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 33 | D4FAA3B5221ADB0200C5B59A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 34 | D4FAA3B9221ADB2700C5B59A /* RemainingCountIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemainingCountIndicator.swift; sourceTree = ""; }; 35 | E5E8D2FB3825076463C641CC /* Pods_RemainingCountIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RemainingCountIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | FE2DACFCACB28154C329FC7D /* Pods-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Demo.release.xcconfig"; path = "Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig"; sourceTree = ""; }; 37 | /* End PBXFileReference section */ 38 | 39 | /* Begin PBXFrameworksBuildPhase section */ 40 | D4FAA395221ADAEE00C5B59A /* Frameworks */ = { 41 | isa = PBXFrameworksBuildPhase; 42 | buildActionMask = 2147483647; 43 | files = ( 44 | ); 45 | runOnlyForDeploymentPostprocessing = 0; 46 | }; 47 | D4FAA3A4221ADB0100C5B59A /* Frameworks */ = { 48 | isa = PBXFrameworksBuildPhase; 49 | buildActionMask = 2147483647; 50 | files = ( 51 | 26492AFD0F8C208B093C2AD3 /* Pods_Demo.framework in Frameworks */, 52 | ); 53 | runOnlyForDeploymentPostprocessing = 0; 54 | }; 55 | /* End PBXFrameworksBuildPhase section */ 56 | 57 | /* Begin PBXGroup section */ 58 | 765A7CC8E452408DB18B553C /* Pods */ = { 59 | isa = PBXGroup; 60 | children = ( 61 | 7C518AE0446CDD6DA3A307C1 /* Pods-Demo.debug.xcconfig */, 62 | FE2DACFCACB28154C329FC7D /* Pods-Demo.release.xcconfig */, 63 | ); 64 | path = Pods; 65 | sourceTree = ""; 66 | }; 67 | D4FAA38E221ADAEE00C5B59A = { 68 | isa = PBXGroup; 69 | children = ( 70 | D4FAA39A221ADAEE00C5B59A /* RemainingCountIndicator */, 71 | D4FAA3A8221ADB0100C5B59A /* Demo */, 72 | D4FAA399221ADAEE00C5B59A /* Products */, 73 | D4FAA3BD221AE12E00C5B59A /* Frameworks */, 74 | 765A7CC8E452408DB18B553C /* Pods */, 75 | ); 76 | sourceTree = ""; 77 | }; 78 | D4FAA399221ADAEE00C5B59A /* Products */ = { 79 | isa = PBXGroup; 80 | children = ( 81 | D4FAA398221ADAEE00C5B59A /* RemainingCountIndicator.framework */, 82 | D4FAA3A7221ADB0100C5B59A /* Demo.app */, 83 | ); 84 | name = Products; 85 | sourceTree = ""; 86 | }; 87 | D4FAA39A221ADAEE00C5B59A /* RemainingCountIndicator */ = { 88 | isa = PBXGroup; 89 | children = ( 90 | D4FAA39B221ADAEE00C5B59A /* RemainingCountIndicator.h */, 91 | D4FAA3B9221ADB2700C5B59A /* RemainingCountIndicator.swift */, 92 | D4FAA39C221ADAEE00C5B59A /* Info.plist */, 93 | ); 94 | path = RemainingCountIndicator; 95 | sourceTree = ""; 96 | }; 97 | D4FAA3A8221ADB0100C5B59A /* Demo */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | D4FAA3A9221ADB0100C5B59A /* AppDelegate.swift */, 101 | D4FAA3AB221ADB0100C5B59A /* ViewController.swift */, 102 | D4FAA3AD221ADB0100C5B59A /* Main.storyboard */, 103 | D4FAA3B0221ADB0200C5B59A /* Assets.xcassets */, 104 | D4FAA3B2221ADB0200C5B59A /* LaunchScreen.storyboard */, 105 | D4FAA3B5221ADB0200C5B59A /* Info.plist */, 106 | ); 107 | path = Demo; 108 | sourceTree = ""; 109 | }; 110 | D4FAA3BD221AE12E00C5B59A /* Frameworks */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | AA13F10D24C4A3A749DE1B12 /* Pods_Demo.framework */, 114 | E5E8D2FB3825076463C641CC /* Pods_RemainingCountIndicator.framework */, 115 | ); 116 | name = Frameworks; 117 | sourceTree = ""; 118 | }; 119 | /* End PBXGroup section */ 120 | 121 | /* Begin PBXHeadersBuildPhase section */ 122 | D4FAA393221ADAEE00C5B59A /* Headers */ = { 123 | isa = PBXHeadersBuildPhase; 124 | buildActionMask = 2147483647; 125 | files = ( 126 | D4FAA39D221ADAEE00C5B59A /* RemainingCountIndicator.h in Headers */, 127 | ); 128 | runOnlyForDeploymentPostprocessing = 0; 129 | }; 130 | /* End PBXHeadersBuildPhase section */ 131 | 132 | /* Begin PBXNativeTarget section */ 133 | D4FAA397221ADAEE00C5B59A /* RemainingCountIndicator */ = { 134 | isa = PBXNativeTarget; 135 | buildConfigurationList = D4FAA3A0221ADAEE00C5B59A /* Build configuration list for PBXNativeTarget "RemainingCountIndicator" */; 136 | buildPhases = ( 137 | D4FAA393221ADAEE00C5B59A /* Headers */, 138 | D4FAA394221ADAEE00C5B59A /* Sources */, 139 | D4FAA395221ADAEE00C5B59A /* Frameworks */, 140 | D4FAA396221ADAEE00C5B59A /* Resources */, 141 | ); 142 | buildRules = ( 143 | ); 144 | dependencies = ( 145 | ); 146 | name = RemainingCountIndicator; 147 | productName = RemainingCountIndicator; 148 | productReference = D4FAA398221ADAEE00C5B59A /* RemainingCountIndicator.framework */; 149 | productType = "com.apple.product-type.framework"; 150 | }; 151 | D4FAA3A6221ADB0100C5B59A /* Demo */ = { 152 | isa = PBXNativeTarget; 153 | buildConfigurationList = D4FAA3B6221ADB0200C5B59A /* Build configuration list for PBXNativeTarget "Demo" */; 154 | buildPhases = ( 155 | 3562FA9A11F678EDEE7911F0 /* [CP] Check Pods Manifest.lock */, 156 | D4FAA3A3221ADB0100C5B59A /* Sources */, 157 | D4FAA3A4221ADB0100C5B59A /* Frameworks */, 158 | D4FAA3A5221ADB0100C5B59A /* Resources */, 159 | 307A954440BC928DCC7F7564 /* [CP] Embed Pods Frameworks */, 160 | ); 161 | buildRules = ( 162 | ); 163 | dependencies = ( 164 | ); 165 | name = Demo; 166 | productName = Demo; 167 | productReference = D4FAA3A7221ADB0100C5B59A /* Demo.app */; 168 | productType = "com.apple.product-type.application"; 169 | }; 170 | /* End PBXNativeTarget section */ 171 | 172 | /* Begin PBXProject section */ 173 | D4FAA38F221ADAEE00C5B59A /* Project object */ = { 174 | isa = PBXProject; 175 | attributes = { 176 | LastSwiftUpdateCheck = 1010; 177 | LastUpgradeCheck = 1010; 178 | ORGANIZATIONNAME = "Jinsei Shima"; 179 | TargetAttributes = { 180 | D4FAA397221ADAEE00C5B59A = { 181 | CreatedOnToolsVersion = 10.1; 182 | LastSwiftMigration = 1010; 183 | }; 184 | D4FAA3A6221ADB0100C5B59A = { 185 | CreatedOnToolsVersion = 10.1; 186 | }; 187 | }; 188 | }; 189 | buildConfigurationList = D4FAA392221ADAEE00C5B59A /* Build configuration list for PBXProject "RemainingCountIndicator" */; 190 | compatibilityVersion = "Xcode 9.3"; 191 | developmentRegion = en; 192 | hasScannedForEncodings = 0; 193 | knownRegions = ( 194 | en, 195 | Base, 196 | ); 197 | mainGroup = D4FAA38E221ADAEE00C5B59A; 198 | productRefGroup = D4FAA399221ADAEE00C5B59A /* Products */; 199 | projectDirPath = ""; 200 | projectRoot = ""; 201 | targets = ( 202 | D4FAA397221ADAEE00C5B59A /* RemainingCountIndicator */, 203 | D4FAA3A6221ADB0100C5B59A /* Demo */, 204 | ); 205 | }; 206 | /* End PBXProject section */ 207 | 208 | /* Begin PBXResourcesBuildPhase section */ 209 | D4FAA396221ADAEE00C5B59A /* Resources */ = { 210 | isa = PBXResourcesBuildPhase; 211 | buildActionMask = 2147483647; 212 | files = ( 213 | ); 214 | runOnlyForDeploymentPostprocessing = 0; 215 | }; 216 | D4FAA3A5221ADB0100C5B59A /* Resources */ = { 217 | isa = PBXResourcesBuildPhase; 218 | buildActionMask = 2147483647; 219 | files = ( 220 | D4FAA3B4221ADB0200C5B59A /* LaunchScreen.storyboard in Resources */, 221 | D4FAA3B1221ADB0200C5B59A /* Assets.xcassets in Resources */, 222 | D4FAA3AF221ADB0100C5B59A /* Main.storyboard in Resources */, 223 | ); 224 | runOnlyForDeploymentPostprocessing = 0; 225 | }; 226 | /* End PBXResourcesBuildPhase section */ 227 | 228 | /* Begin PBXShellScriptBuildPhase section */ 229 | 307A954440BC928DCC7F7564 /* [CP] Embed Pods Frameworks */ = { 230 | isa = PBXShellScriptBuildPhase; 231 | buildActionMask = 2147483647; 232 | files = ( 233 | ); 234 | inputFileListPaths = ( 235 | ); 236 | inputPaths = ( 237 | "${PODS_ROOT}/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh", 238 | "${PODS_ROOT}/Reveal-SDK/RevealServer-20/iOS/RevealServer.framework", 239 | ); 240 | name = "[CP] Embed Pods Frameworks"; 241 | outputFileListPaths = ( 242 | ); 243 | outputPaths = ( 244 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RevealServer.framework", 245 | ); 246 | runOnlyForDeploymentPostprocessing = 0; 247 | shellPath = /bin/sh; 248 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh\"\n"; 249 | showEnvVarsInLog = 0; 250 | }; 251 | 3562FA9A11F678EDEE7911F0 /* [CP] Check Pods Manifest.lock */ = { 252 | isa = PBXShellScriptBuildPhase; 253 | buildActionMask = 2147483647; 254 | files = ( 255 | ); 256 | inputFileListPaths = ( 257 | ); 258 | inputPaths = ( 259 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 260 | "${PODS_ROOT}/Manifest.lock", 261 | ); 262 | name = "[CP] Check Pods Manifest.lock"; 263 | outputFileListPaths = ( 264 | ); 265 | outputPaths = ( 266 | "$(DERIVED_FILE_DIR)/Pods-Demo-checkManifestLockResult.txt", 267 | ); 268 | runOnlyForDeploymentPostprocessing = 0; 269 | shellPath = /bin/sh; 270 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 271 | showEnvVarsInLog = 0; 272 | }; 273 | /* End PBXShellScriptBuildPhase section */ 274 | 275 | /* Begin PBXSourcesBuildPhase section */ 276 | D4FAA394221ADAEE00C5B59A /* Sources */ = { 277 | isa = PBXSourcesBuildPhase; 278 | buildActionMask = 2147483647; 279 | files = ( 280 | D4FAA3BA221ADB2700C5B59A /* RemainingCountIndicator.swift in Sources */, 281 | ); 282 | runOnlyForDeploymentPostprocessing = 0; 283 | }; 284 | D4FAA3A3221ADB0100C5B59A /* Sources */ = { 285 | isa = PBXSourcesBuildPhase; 286 | buildActionMask = 2147483647; 287 | files = ( 288 | D4FAA3C2221AEDC100C5B59A /* RemainingCountIndicator.swift in Sources */, 289 | D4FAA3AC221ADB0100C5B59A /* ViewController.swift in Sources */, 290 | D4FAA3AA221ADB0100C5B59A /* AppDelegate.swift in Sources */, 291 | ); 292 | runOnlyForDeploymentPostprocessing = 0; 293 | }; 294 | /* End PBXSourcesBuildPhase section */ 295 | 296 | /* Begin PBXVariantGroup section */ 297 | D4FAA3AD221ADB0100C5B59A /* Main.storyboard */ = { 298 | isa = PBXVariantGroup; 299 | children = ( 300 | D4FAA3AE221ADB0100C5B59A /* Base */, 301 | ); 302 | name = Main.storyboard; 303 | sourceTree = ""; 304 | }; 305 | D4FAA3B2221ADB0200C5B59A /* LaunchScreen.storyboard */ = { 306 | isa = PBXVariantGroup; 307 | children = ( 308 | D4FAA3B3221ADB0200C5B59A /* Base */, 309 | ); 310 | name = LaunchScreen.storyboard; 311 | sourceTree = ""; 312 | }; 313 | /* End PBXVariantGroup section */ 314 | 315 | /* Begin XCBuildConfiguration section */ 316 | D4FAA39E221ADAEE00C5B59A /* Debug */ = { 317 | isa = XCBuildConfiguration; 318 | buildSettings = { 319 | ALWAYS_SEARCH_USER_PATHS = NO; 320 | CLANG_ANALYZER_NONNULL = YES; 321 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 322 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 323 | CLANG_CXX_LIBRARY = "libc++"; 324 | CLANG_ENABLE_MODULES = YES; 325 | CLANG_ENABLE_OBJC_ARC = YES; 326 | CLANG_ENABLE_OBJC_WEAK = YES; 327 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 328 | CLANG_WARN_BOOL_CONVERSION = YES; 329 | CLANG_WARN_COMMA = YES; 330 | CLANG_WARN_CONSTANT_CONVERSION = YES; 331 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 332 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 333 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 334 | CLANG_WARN_EMPTY_BODY = YES; 335 | CLANG_WARN_ENUM_CONVERSION = YES; 336 | CLANG_WARN_INFINITE_RECURSION = YES; 337 | CLANG_WARN_INT_CONVERSION = YES; 338 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 339 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 340 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 341 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 342 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 343 | CLANG_WARN_STRICT_PROTOTYPES = YES; 344 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 345 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 346 | CLANG_WARN_UNREACHABLE_CODE = YES; 347 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 348 | CODE_SIGN_IDENTITY = "iPhone Developer"; 349 | COPY_PHASE_STRIP = NO; 350 | CURRENT_PROJECT_VERSION = 1; 351 | DEBUG_INFORMATION_FORMAT = dwarf; 352 | ENABLE_STRICT_OBJC_MSGSEND = YES; 353 | ENABLE_TESTABILITY = YES; 354 | GCC_C_LANGUAGE_STANDARD = gnu11; 355 | GCC_DYNAMIC_NO_PIC = NO; 356 | GCC_NO_COMMON_BLOCKS = YES; 357 | GCC_OPTIMIZATION_LEVEL = 0; 358 | GCC_PREPROCESSOR_DEFINITIONS = ( 359 | "DEBUG=1", 360 | "$(inherited)", 361 | ); 362 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 363 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 364 | GCC_WARN_UNDECLARED_SELECTOR = YES; 365 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 366 | GCC_WARN_UNUSED_FUNCTION = YES; 367 | GCC_WARN_UNUSED_VARIABLE = YES; 368 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 369 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 370 | MTL_FAST_MATH = YES; 371 | ONLY_ACTIVE_ARCH = YES; 372 | SDKROOT = iphoneos; 373 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 374 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 375 | VERSIONING_SYSTEM = "apple-generic"; 376 | VERSION_INFO_PREFIX = ""; 377 | }; 378 | name = Debug; 379 | }; 380 | D4FAA39F221ADAEE00C5B59A /* Release */ = { 381 | isa = XCBuildConfiguration; 382 | buildSettings = { 383 | ALWAYS_SEARCH_USER_PATHS = NO; 384 | CLANG_ANALYZER_NONNULL = YES; 385 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 386 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 387 | CLANG_CXX_LIBRARY = "libc++"; 388 | CLANG_ENABLE_MODULES = YES; 389 | CLANG_ENABLE_OBJC_ARC = YES; 390 | CLANG_ENABLE_OBJC_WEAK = YES; 391 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 392 | CLANG_WARN_BOOL_CONVERSION = YES; 393 | CLANG_WARN_COMMA = YES; 394 | CLANG_WARN_CONSTANT_CONVERSION = YES; 395 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 396 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 397 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 398 | CLANG_WARN_EMPTY_BODY = YES; 399 | CLANG_WARN_ENUM_CONVERSION = YES; 400 | CLANG_WARN_INFINITE_RECURSION = YES; 401 | CLANG_WARN_INT_CONVERSION = YES; 402 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 403 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 404 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 405 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 406 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 407 | CLANG_WARN_STRICT_PROTOTYPES = YES; 408 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 409 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 410 | CLANG_WARN_UNREACHABLE_CODE = YES; 411 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 412 | CODE_SIGN_IDENTITY = "iPhone Developer"; 413 | COPY_PHASE_STRIP = NO; 414 | CURRENT_PROJECT_VERSION = 1; 415 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 416 | ENABLE_NS_ASSERTIONS = NO; 417 | ENABLE_STRICT_OBJC_MSGSEND = YES; 418 | GCC_C_LANGUAGE_STANDARD = gnu11; 419 | GCC_NO_COMMON_BLOCKS = YES; 420 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 421 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 422 | GCC_WARN_UNDECLARED_SELECTOR = YES; 423 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 424 | GCC_WARN_UNUSED_FUNCTION = YES; 425 | GCC_WARN_UNUSED_VARIABLE = YES; 426 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 427 | MTL_ENABLE_DEBUG_INFO = NO; 428 | MTL_FAST_MATH = YES; 429 | SDKROOT = iphoneos; 430 | SWIFT_COMPILATION_MODE = wholemodule; 431 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 432 | VALIDATE_PRODUCT = YES; 433 | VERSIONING_SYSTEM = "apple-generic"; 434 | VERSION_INFO_PREFIX = ""; 435 | }; 436 | name = Release; 437 | }; 438 | D4FAA3A1221ADAEE00C5B59A /* Debug */ = { 439 | isa = XCBuildConfiguration; 440 | buildSettings = { 441 | CLANG_ENABLE_MODULES = YES; 442 | CODE_SIGN_IDENTITY = ""; 443 | CODE_SIGN_STYLE = Automatic; 444 | DEFINES_MODULE = YES; 445 | DYLIB_COMPATIBILITY_VERSION = 1; 446 | DYLIB_CURRENT_VERSION = 1; 447 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 448 | ENABLE_BITCODE = YES; 449 | INFOPLIST_FILE = RemainingCountIndicator/Info.plist; 450 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 451 | LD_RUNPATH_SEARCH_PATHS = ( 452 | "$(inherited)", 453 | "@executable_path/Frameworks", 454 | "@loader_path/Frameworks", 455 | ); 456 | PRODUCT_BUNDLE_IDENTIFIER = com.shima.app.RemainingCountIndicator; 457 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 458 | SKIP_INSTALL = YES; 459 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 460 | SWIFT_VERSION = 4.2; 461 | TARGETED_DEVICE_FAMILY = "1,2"; 462 | }; 463 | name = Debug; 464 | }; 465 | D4FAA3A2221ADAEE00C5B59A /* Release */ = { 466 | isa = XCBuildConfiguration; 467 | buildSettings = { 468 | CLANG_ENABLE_MODULES = YES; 469 | CODE_SIGN_IDENTITY = ""; 470 | CODE_SIGN_STYLE = Automatic; 471 | DEFINES_MODULE = YES; 472 | DYLIB_COMPATIBILITY_VERSION = 1; 473 | DYLIB_CURRENT_VERSION = 1; 474 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 475 | ENABLE_BITCODE = YES; 476 | INFOPLIST_FILE = RemainingCountIndicator/Info.plist; 477 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 478 | LD_RUNPATH_SEARCH_PATHS = ( 479 | "$(inherited)", 480 | "@executable_path/Frameworks", 481 | "@loader_path/Frameworks", 482 | ); 483 | PRODUCT_BUNDLE_IDENTIFIER = com.shima.app.RemainingCountIndicator; 484 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 485 | SKIP_INSTALL = YES; 486 | SWIFT_VERSION = 4.2; 487 | TARGETED_DEVICE_FAMILY = "1,2"; 488 | }; 489 | name = Release; 490 | }; 491 | D4FAA3B7221ADB0200C5B59A /* Debug */ = { 492 | isa = XCBuildConfiguration; 493 | baseConfigurationReference = 7C518AE0446CDD6DA3A307C1 /* Pods-Demo.debug.xcconfig */; 494 | buildSettings = { 495 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 496 | CODE_SIGN_STYLE = Automatic; 497 | DEVELOPMENT_TEAM = 64T4PJ8WCZ; 498 | INFOPLIST_FILE = Demo/Info.plist; 499 | LD_RUNPATH_SEARCH_PATHS = ( 500 | "$(inherited)", 501 | "@executable_path/Frameworks", 502 | ); 503 | PRODUCT_BUNDLE_IDENTIFIER = com.shima.app.Demo; 504 | PRODUCT_NAME = "$(TARGET_NAME)"; 505 | SWIFT_VERSION = 4.2; 506 | TARGETED_DEVICE_FAMILY = "1,2"; 507 | }; 508 | name = Debug; 509 | }; 510 | D4FAA3B8221ADB0200C5B59A /* Release */ = { 511 | isa = XCBuildConfiguration; 512 | baseConfigurationReference = FE2DACFCACB28154C329FC7D /* Pods-Demo.release.xcconfig */; 513 | buildSettings = { 514 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 515 | CODE_SIGN_STYLE = Automatic; 516 | DEVELOPMENT_TEAM = 64T4PJ8WCZ; 517 | INFOPLIST_FILE = Demo/Info.plist; 518 | LD_RUNPATH_SEARCH_PATHS = ( 519 | "$(inherited)", 520 | "@executable_path/Frameworks", 521 | ); 522 | PRODUCT_BUNDLE_IDENTIFIER = com.shima.app.Demo; 523 | PRODUCT_NAME = "$(TARGET_NAME)"; 524 | SWIFT_VERSION = 4.2; 525 | TARGETED_DEVICE_FAMILY = "1,2"; 526 | }; 527 | name = Release; 528 | }; 529 | /* End XCBuildConfiguration section */ 530 | 531 | /* Begin XCConfigurationList section */ 532 | D4FAA392221ADAEE00C5B59A /* Build configuration list for PBXProject "RemainingCountIndicator" */ = { 533 | isa = XCConfigurationList; 534 | buildConfigurations = ( 535 | D4FAA39E221ADAEE00C5B59A /* Debug */, 536 | D4FAA39F221ADAEE00C5B59A /* Release */, 537 | ); 538 | defaultConfigurationIsVisible = 0; 539 | defaultConfigurationName = Release; 540 | }; 541 | D4FAA3A0221ADAEE00C5B59A /* Build configuration list for PBXNativeTarget "RemainingCountIndicator" */ = { 542 | isa = XCConfigurationList; 543 | buildConfigurations = ( 544 | D4FAA3A1221ADAEE00C5B59A /* Debug */, 545 | D4FAA3A2221ADAEE00C5B59A /* Release */, 546 | ); 547 | defaultConfigurationIsVisible = 0; 548 | defaultConfigurationName = Release; 549 | }; 550 | D4FAA3B6221ADB0200C5B59A /* Build configuration list for PBXNativeTarget "Demo" */ = { 551 | isa = XCConfigurationList; 552 | buildConfigurations = ( 553 | D4FAA3B7221ADB0200C5B59A /* Debug */, 554 | D4FAA3B8221ADB0200C5B59A /* Release */, 555 | ); 556 | defaultConfigurationIsVisible = 0; 557 | defaultConfigurationName = Release; 558 | }; 559 | /* End XCConfigurationList section */ 560 | }; 561 | rootObject = D4FAA38F221ADAEE00C5B59A /* Project object */; 562 | } 563 | --------------------------------------------------------------------------------