├── ScreenGuardDemo ├── Assets.xcassets │ ├── Contents.json │ ├── AccentColor.colorset │ │ └── Contents.json │ └── AppIcon.appiconset │ │ └── Contents.json ├── AppDelegate.swift ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── ViewController.swift ├── Info.plist └── SceneDelegate.swift ├── Pods ├── Target Support Files │ ├── Pods-ScreenGuardDemo │ │ ├── Pods-ScreenGuardDemo-frameworks-Debug-output-files.xcfilelist │ │ ├── Pods-ScreenGuardDemo-frameworks-Release-output-files.xcfilelist │ │ ├── Pods-ScreenGuardDemo.modulemap │ │ ├── Pods-ScreenGuardDemo-acknowledgements.markdown │ │ ├── Pods-ScreenGuardDemo-dummy.m │ │ ├── Pods-ScreenGuardDemo-frameworks-Debug-input-files.xcfilelist │ │ ├── Pods-ScreenGuardDemo-frameworks-Release-input-files.xcfilelist │ │ ├── Pods-ScreenGuardDemo-umbrella.h │ │ ├── Pods-ScreenGuardDemo.debug.xcconfig │ │ ├── Pods-ScreenGuardDemo.release.xcconfig │ │ ├── Pods-ScreenGuardDemo-Info.plist │ │ ├── Pods-ScreenGuardDemo-acknowledgements.plist │ │ └── Pods-ScreenGuardDemo-frameworks.sh │ ├── ScreenGuard │ │ ├── ScreenGuard.modulemap │ │ ├── ScreenGuard-dummy.m │ │ ├── ScreenGuard-prefix.pch │ │ ├── ScreenGuard-umbrella.h │ │ ├── ScreenGuard.debug.xcconfig │ │ ├── ScreenGuard.release.xcconfig │ │ └── ScreenGuard-Info.plist │ ├── Pods-ScreenGuard │ │ ├── Pods-ScreenGuard.modulemap │ │ ├── Pods-ScreenGuard-dummy.m │ │ ├── Pods-ScreenGuard-acknowledgements.markdown │ │ ├── Pods-ScreenGuard-umbrella.h │ │ ├── Pods-ScreenGuard.debug.xcconfig │ │ ├── Pods-ScreenGuard.release.xcconfig │ │ ├── Pods-ScreenGuard-Info.plist │ │ └── Pods-ScreenGuard-acknowledgements.plist │ └── Pods-ScreenGuard-ScreenGuardTests │ │ ├── Pods-ScreenGuard-ScreenGuardTests-acknowledgements.markdown │ │ ├── Pods-ScreenGuard-ScreenGuardTests.modulemap │ │ ├── Pods-ScreenGuard-ScreenGuardTests-dummy.m │ │ ├── Pods-ScreenGuard-ScreenGuardTests-umbrella.h │ │ ├── Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig │ │ ├── Pods-ScreenGuard-ScreenGuardTests.release.xcconfig │ │ ├── Pods-ScreenGuard-ScreenGuardTests-Info.plist │ │ └── Pods-ScreenGuard-ScreenGuardTests-acknowledgements.plist ├── Manifest.lock ├── Local Podspecs │ └── ScreenGuard.podspec.json └── Pods.xcodeproj │ ├── xcuserdata │ └── vprabhu.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ ├── Pods-ScreenGuard.xcscheme │ │ ├── Pods-ScreenGuardDemo.xcscheme │ │ ├── Pods-ScreenGuard-ScreenGuardTests.xcscheme │ │ └── ScreenGuard.xcscheme │ └── project.pbxproj ├── ScreenGuard.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcuserdata │ │ └── vprabhu.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── xcuserdata │ └── vprabhu.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist └── project.pbxproj ├── ScreenGuard.xcworkspace ├── xcuserdata │ └── vprabhu.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── Podfile.lock ├── FUNDING.yml ├── ScreenGuard ├── ScreenGuard.h ├── Info.plist └── ScreenGuardManager.swift ├── Podfile ├── ScreenGuard.podspec ├── ScreenGuardTests ├── Info.plist └── ScreenGuardTests.swift └── README.md /ScreenGuardDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ScreenGuard.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ScreenGuard.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/ScreenGuard/ScreenGuard.modulemap: -------------------------------------------------------------------------------- 1 | framework module ScreenGuard { 2 | umbrella header "ScreenGuard-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ScreenGuard/ScreenGuard-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_ScreenGuard : NSObject 3 | @end 4 | @implementation PodsDummy_ScreenGuard 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ScreenGuard { 2 | umbrella header "Pods-ScreenGuard-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ScreenGuard : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ScreenGuard 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ScreenGuardDemo { 2 | umbrella header "Pods-ScreenGuardDemo-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ScreenGuard.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ScreenGuard.xcworkspace/xcuserdata/vprabhu.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devCracker/ScreenGuard-iOS/HEAD/ScreenGuard.xcworkspace/xcuserdata/vprabhu.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ScreenGuardDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ScreenGuardDemo 5 | @end 6 | -------------------------------------------------------------------------------- /ScreenGuardDemo/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/ScreenGuard/ScreenGuard.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/ScreenGuard/ScreenGuard.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /ScreenGuard.xcodeproj/project.xcworkspace/xcuserdata/vprabhu.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devCracker/ScreenGuard-iOS/HEAD/ScreenGuard.xcodeproj/project.xcworkspace/xcuserdata/vprabhu.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ScreenGuard_ScreenGuardTests { 2 | umbrella header "Pods-ScreenGuard-ScreenGuardTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ScreenGuard_ScreenGuardTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ScreenGuard_ScreenGuardTests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ScreenGuard/ScreenGuard-prefix.pch: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /ScreenGuard.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ScreenGuard.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ScreenGuard.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - ScreenGuard (0.0.1) 3 | 4 | DEPENDENCIES: 5 | - ScreenGuard (from `.`) 6 | 7 | EXTERNAL SOURCES: 8 | ScreenGuard: 9 | :path: "." 10 | 11 | SPEC CHECKSUMS: 12 | ScreenGuard: 9b050b5062d030542cdb0b625295dcb68744b530 13 | 14 | PODFILE CHECKSUM: 37171dd71ee22ce12b5dc44986e6f6c66273f606 15 | 16 | COCOAPODS: 1.10.1 17 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - ScreenGuard (0.0.1) 3 | 4 | DEPENDENCIES: 5 | - ScreenGuard (from `.`) 6 | 7 | EXTERNAL SOURCES: 8 | ScreenGuard: 9 | :path: "." 10 | 11 | SPEC CHECKSUMS: 12 | ScreenGuard: 9b050b5062d030542cdb0b625295dcb68744b530 13 | 14 | PODFILE CHECKSUM: 37171dd71ee22ce12b5dc44986e6f6c66273f606 15 | 16 | COCOAPODS: 1.10.1 17 | -------------------------------------------------------------------------------- /FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | custom: https://paypal.me/devcracker 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard-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_ScreenGuardVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ScreenGuardVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ScreenGuard/ScreenGuard-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 | #import "ScreenGuard.h" 14 | 15 | FOUNDATION_EXPORT double ScreenGuardVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char ScreenGuardVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-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_ScreenGuardDemoVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ScreenGuardDemoVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 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_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests-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_ScreenGuard_ScreenGuardTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ScreenGuard_ScreenGuardTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 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_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 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_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 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_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /ScreenGuard/ScreenGuard.h: -------------------------------------------------------------------------------- 1 | // 2 | // ScreenGuard.h 3 | // ScreenGuard 4 | // 5 | // Created by devCracker on 22/04/21. 6 | // 7 | 8 | #import 9 | 10 | //! Project version number for ScreenGuard. 11 | FOUNDATION_EXPORT double ScreenGuardVersionNumber; 12 | 13 | //! Project version string for ScreenGuard. 14 | FOUNDATION_EXPORT const unsigned char ScreenGuardVersionString[]; 15 | 16 | // In this header, you should import all the public headers of your framework using statements like #import 17 | 18 | 19 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'ScreenGuard' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for ScreenGuard 9 | 10 | target 'ScreenGuardTests' do 11 | # Pods for testing 12 | end 13 | 14 | end 15 | 16 | target 'ScreenGuardDemo' do 17 | # Comment the next line if you don't want to use dynamic frameworks 18 | use_frameworks! 19 | 20 | # Pods for ScreenGuardDemo 21 | pod 'ScreenGuard', :path => '.' 22 | 23 | end 24 | -------------------------------------------------------------------------------- /Pods/Local Podspecs/ScreenGuard.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ScreenGuard", 3 | "version": "0.0.1", 4 | "summary": "Simple lib to protect the app from screen capture and record", 5 | "description": "simple lib to solve most iOS developers pain to protect the screenshot.", 6 | "homepage": "https://github.com/devcracker", 7 | "license": "MIT", 8 | "authors": "devCracker", 9 | "platforms": { 10 | "ios": "11.0" 11 | }, 12 | "source": { 13 | "git": "https://github.com/devcracker/ScreenGuard-iOS.git", 14 | "tag": "0.0.1" 15 | }, 16 | "source_files": "ScreenGuard/**/*.{swift,m,h}" 17 | } 18 | -------------------------------------------------------------------------------- /ScreenGuard.xcodeproj/xcuserdata/vprabhu.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ScreenGuard.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 1 11 | 12 | ScreenGuardDemo.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 4 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ScreenGuard.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "ScreenGuard" 3 | s.version = "0.0.1" 4 | s.summary = "Simple lib to protect the app from screen capture and record" 5 | s.description = <<-DESC 6 | simple lib to solve most iOS developers pain to protect the screenshot. 7 | DESC 8 | s.homepage = "https://github.com/devcracker" 9 | s.license = "MIT" 10 | s.author = "devCracker" 11 | s.platform = :ios, "11.0" 12 | s.swift_version = '5.3' 13 | s.source = { 14 | :git => "https://github.com/devcracker/ScreenGuard-iOS.git", 15 | :tag => "#{s.version}" 16 | } 17 | s.source_files = 'ScreenGuard/**/*.{swift,m,h}' 18 | end 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ScreenGuard/ScreenGuard.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ScreenGuard 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ScreenGuard/ScreenGuard.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ScreenGuard 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /ScreenGuardTests/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ScreenGuard/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ScreenGuard" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ScreenGuard/ScreenGuard.framework/Headers" 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | OTHER_LDFLAGS = $(inherited) -framework "ScreenGuard" 8 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 9 | PODS_BUILD_DIR = ${BUILD_DIR} 10 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 11 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 12 | PODS_ROOT = ${SRCROOT}/Pods 13 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ScreenGuard" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ScreenGuard/ScreenGuard.framework/Headers" 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | OTHER_LDFLAGS = $(inherited) -framework "ScreenGuard" 8 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 9 | PODS_BUILD_DIR = ${BUILD_DIR} 10 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 11 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 12 | PODS_ROOT = ${SRCROOT}/Pods 13 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ScreenGuard/ScreenGuard-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 | 0.0.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard-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 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-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 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests-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 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /ScreenGuardTests/ScreenGuardTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScreenGuardTests.swift 3 | // ScreenGuardTests 4 | // 5 | // Created by devCracker on 22/04/21. 6 | // 7 | 8 | import XCTest 9 | @testable import ScreenGuard 10 | 11 | class ScreenGuardTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testExample() throws { 22 | // This is an example of a functional test case. 23 | // Use XCTAssert and related functions to verify your tests produce the correct results. 24 | } 25 | 26 | func testPerformanceExample() throws { 27 | // This is an example of a performance test case. 28 | self.measure { 29 | // Put the code you want to measure the time of here. 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/vprabhu.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Pods-ScreenGuard-ScreenGuardTests.xcscheme 8 | 9 | isShown 10 | 11 | orderHint 12 | 1 13 | 14 | Pods-ScreenGuard.xcscheme 15 | 16 | isShown 17 | 18 | orderHint 19 | 0 20 | 21 | Pods-ScreenGuardDemo.xcscheme 22 | 23 | isShown 24 | 25 | orderHint 26 | 2 27 | 28 | ScreenGuard.xcscheme 29 | 30 | isShown 31 | 32 | orderHint 33 | 3 34 | 35 | 36 | SuppressBuildableAutocreation 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ScreenGuardDemo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ScreenGuardDemo 4 | // 5 | // Created by devCracker on 22/04/21. 6 | // 7 | 8 | import UIKit 9 | 10 | @main 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | // MARK: UISceneSession Lifecycle 21 | 22 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 23 | // Called when a new scene session is being created. 24 | // Use this method to select a configuration to create the new scene with. 25 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 26 | } 27 | 28 | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { 29 | // Called when the user discards a scene session. 30 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 31 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 32 | } 33 | 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /ScreenGuardDemo/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 | -------------------------------------------------------------------------------- /ScreenGuardDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "1x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "76x76" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "scale" : "2x", 86 | "size" : "83.5x83.5" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "scale" : "1x", 91 | "size" : "1024x1024" 92 | } 93 | ], 94 | "info" : { 95 | "author" : "xcode", 96 | "version" : 1 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /ScreenGuardDemo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ScreenGuardDemo 4 | // 5 | // Created by devCracker on 22/04/21. 6 | // 7 | 8 | import UIKit 9 | import ScreenGuard 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view. 16 | 17 | ScreenGuardManager.shared.screenRecordDelegate = self 18 | ScreenGuardManager.shared.listenForScreenRecord() 19 | 20 | } 21 | 22 | @IBAction func guardCompleteWindowAction(_ sender: Any) { 23 | guard let window = UIApplication.shared.windows.last else { 24 | return 25 | } 26 | 27 | ScreenGuardManager.shared.guardScreenshot(for: window) 28 | } 29 | 30 | @IBAction func guardCompleteView(_ sender: Any) { 31 | ScreenGuardManager.shared.guardScreenshot(for: self.view) 32 | } 33 | 34 | @IBAction func guardThisButtonAction(_ sender: Any) { 35 | guard let button = sender as? UIView else { 36 | return 37 | } 38 | 39 | ScreenGuardManager.shared.guardScreenshot(for: button) 40 | } 41 | } 42 | 43 | extension ViewController: ScreenRecordDelegate { 44 | func screen(_ screen: UIScreen, didRecordStarted isRecording: Bool) { 45 | showAlert(with: "Recording Started", title: "Recording") 46 | } 47 | 48 | func screen(_ screen: UIScreen, didRecordEnded isRecording: Bool) { 49 | showAlert(with: "Recording ended", title: "Recording") 50 | } 51 | 52 | } 53 | 54 | extension ViewController { 55 | 56 | func showAlert(with message: String, title: String) { 57 | let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert) 58 | let okAction = UIAlertAction(title: "Ok", style: .default) { _ in 59 | alertController.dismiss(animated: true) 60 | } 61 | 62 | alertController.addAction(okAction) 63 | present(alertController, animated: true) 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ScreenGuard 2 | The aim of this pod is to give a tip to fellow iOS developers community to handle your senstive app contents from screen shot and recording. 3 | 4 | ## ScreenShot & Recording Protection 5 | 6 | ### Features 7 | 1. Ability to protect the complete app when someone takes a screenshot when they are using your app. 8 | 2. Ability to protect a specific view from screenshots(Please see the video where one button is selected to hide from screenshots). 9 | 3. Ability to protect a specific screen from screenshots. 10 | 4. Abitlity to protect the data when they are mirroring the app to external screens. 11 | 5. Abiltiy to protect and get call back methods when screen recording is started/ended 12 | 13 | #### Known issues & TODO 14 | 1. We didnt test this completely, but it will give you an idea how you can protect your app content from screenshots and recoding. 15 | 2. some logic needs to be fine tuned. 16 | 3. Need to check for SwiftUI? 17 | 18 | Please feel free to add new enhancements and raise pull requests. Thank You!!!. 19 | 20 | ### Demo Video: 21 | 22 | 23 | https://user-images.githubusercontent.com/26670329/115957680-79267780-a521-11eb-873a-6b4360ead3a4.MP4 24 | 25 | 26 | ### Want to know about my path to this solution?. 27 | Compelte story is written [here](https://meetmurali88.medium.com/a-way-to-protect-your-app-content-from-screenshots-in-ios-ea23153a3bc7), please have a look. 28 | 29 | ### ToDo: 30 | 31 | 1. Fine tuning Topmost View's logic. 32 | 2. Go for a Deep Testing compeltely in a big app to make sure that it is not breaking any views. 33 | 3. Add a delegate method after screenshot is taken by listening apple's notification. 34 | 35 | ### Support: 36 | 37 | As this screenshot protection is a pain for every iOS developers so far, and some paid versions like screenshieldkit are available with well tested functionality. But here i am providing a tip and library to use for the people who can not buy a paid version. If you like to support my work by paying a coffee/beer money, please click on this [link](https://paypal.me/devcracker). If you cant pay, please give a star that would make my life easier. 38 | 39 | 40 | ### Thanks 41 | 42 | 43 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/vprabhu.xcuserdatad/xcschemes/Pods-ScreenGuard.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /ScreenGuardDemo/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UIApplicationSceneManifest 24 | 25 | UIApplicationSupportsMultipleScenes 26 | 27 | UISceneConfigurations 28 | 29 | UIWindowSceneSessionRoleApplication 30 | 31 | 32 | UISceneConfigurationName 33 | Default Configuration 34 | UISceneDelegateClassName 35 | $(PRODUCT_MODULE_NAME).SceneDelegate 36 | UISceneStoryboardFile 37 | Main 38 | 39 | 40 | 41 | 42 | UIApplicationSupportsIndirectInputEvents 43 | 44 | UILaunchStoryboardName 45 | LaunchScreen 46 | UIMainStoryboardFile 47 | Main 48 | UIRequiredDeviceCapabilities 49 | 50 | armv7 51 | 52 | UISupportedInterfaceOrientations 53 | 54 | UIInterfaceOrientationPortrait 55 | UIInterfaceOrientationLandscapeLeft 56 | UIInterfaceOrientationLandscapeRight 57 | 58 | UISupportedInterfaceOrientations~ipad 59 | 60 | UIInterfaceOrientationPortrait 61 | UIInterfaceOrientationPortraitUpsideDown 62 | UIInterfaceOrientationLandscapeLeft 63 | UIInterfaceOrientationLandscapeRight 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/vprabhu.xcuserdatad/xcschemes/Pods-ScreenGuardDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/vprabhu.xcuserdatad/xcschemes/Pods-ScreenGuard-ScreenGuardTests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/vprabhu.xcuserdatad/xcschemes/ScreenGuard.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /ScreenGuardDemo/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.swift 3 | // ScreenGuardDemo 4 | // 5 | // Created by devCracker on 22/04/21. 6 | // 7 | 8 | import UIKit 9 | 10 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 11 | 12 | var window: UIWindow? 13 | 14 | 15 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 16 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. 17 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. 18 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). 19 | guard let _ = (scene as? UIWindowScene) else { return } 20 | } 21 | 22 | func sceneDidDisconnect(_ scene: UIScene) { 23 | // Called as the scene is being released by the system. 24 | // This occurs shortly after the scene enters the background, or when its session is discarded. 25 | // Release any resources associated with this scene that can be re-created the next time the scene connects. 26 | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). 27 | } 28 | 29 | func sceneDidBecomeActive(_ scene: UIScene) { 30 | // Called when the scene has moved from an inactive state to an active state. 31 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. 32 | } 33 | 34 | func sceneWillResignActive(_ scene: UIScene) { 35 | // Called when the scene will move from an active state to an inactive state. 36 | // This may occur due to temporary interruptions (ex. an incoming phone call). 37 | } 38 | 39 | func sceneWillEnterForeground(_ scene: UIScene) { 40 | // Called as the scene transitions from the background to the foreground. 41 | // Use this method to undo the changes made on entering the background. 42 | } 43 | 44 | func sceneDidEnterBackground(_ scene: UIScene) { 45 | // Called as the scene transitions from the foreground to the background. 46 | // Use this method to save data, release shared resources, and store enough scene-specific state information 47 | // to restore the scene back to its current state. 48 | } 49 | 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /ScreenGuard/ScreenGuardManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScreenCaptureProtector.swift 3 | // ScreenGuard 4 | // 5 | // Created by devCracker on 22/04/21. 6 | // 7 | 8 | import Foundation 9 | 10 | private extension UIView { 11 | 12 | struct Constants { 13 | static var texfieldTag: Int { Int.max } 14 | } 15 | 16 | func setScreenCaptureProtection() { 17 | 18 | guard superview != nil else { 19 | for subview in subviews { //to avoid layer cyclic crash, when it is a topmost view, adding all its subviews in textfield's layer, TODO: Find a better logic. 20 | subview.setScreenCaptureProtection() 21 | } 22 | return 23 | } 24 | 25 | let guardTextField = UITextField() 26 | guardTextField.backgroundColor = .red 27 | guardTextField.translatesAutoresizingMaskIntoConstraints = false 28 | guardTextField.tag = Constants.texfieldTag 29 | guardTextField.isSecureTextEntry = true 30 | 31 | addSubview(guardTextField) 32 | guardTextField.isUserInteractionEnabled = false 33 | sendSubviewToBack(guardTextField) 34 | 35 | layer.superlayer?.addSublayer(guardTextField.layer) 36 | guardTextField.layer.sublayers?.first?.addSublayer(layer) 37 | 38 | guardTextField.topAnchor.constraint(equalTo: self.topAnchor, constant: 0).isActive = true 39 | guardTextField.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0).isActive = true 40 | guardTextField.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 0).isActive = true 41 | guardTextField.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: 0).isActive = true 42 | } 43 | 44 | // These remove method are only for demo purpose, didnt even test it... 45 | 46 | func removeGuardTextView() { 47 | guard let guardView = subviews.first(where: { $0.tag == Constants.texfieldTag }) else { 48 | return 49 | } 50 | 51 | guardView.removeFromSuperview() 52 | } 53 | 54 | } 55 | 56 | public protocol ScreenRecordDelegate { 57 | func screen(_ screen: UIScreen, didRecordStarted isRecording: Bool) 58 | func screen(_ screen: UIScreen, didRecordEnded isRecording: Bool) 59 | } 60 | 61 | public class ScreenGuardManager { 62 | 63 | // MARK: Shared 64 | 65 | public static let shared = ScreenGuardManager() 66 | public var screenRecordDelegate: ScreenRecordDelegate? 67 | private var recordingObservation: NSKeyValueObservation? 68 | 69 | // MARK: Init 70 | 71 | private init() { } 72 | 73 | // MARK: Functions 74 | 75 | public func guardScreenshot(`for` window: UIWindow) { 76 | window.setScreenCaptureProtection() 77 | } 78 | 79 | public func guardScreenshot(`for` view: UIView) { 80 | view.setScreenCaptureProtection() 81 | } 82 | 83 | // These disable methods are only for demo purpose... 84 | 85 | public func disableScreenshotProtection(`for` window: UIWindow) { 86 | window.removeGuardTextView() 87 | } 88 | 89 | public func disableScreenshotProtection(`for` view: UIView) { 90 | view.removeGuardTextView() 91 | } 92 | 93 | public func listenForScreenRecord() { 94 | recordingObservation = UIScreen.main.observe(\UIScreen.isCaptured, options: [.new]) { [weak self] screen, change in 95 | let isRecording = change.newValue ?? false 96 | 97 | if isRecording { 98 | self?.screenRecordDelegate?.screen(screen, didRecordStarted: isRecording) 99 | } else { 100 | self?.screenRecordDelegate?.screen(screen, didRecordEnded: isRecording) 101 | } 102 | } 103 | } 104 | 105 | // MARK: Deinit 106 | 107 | deinit { 108 | screenRecordDelegate = nil 109 | } 110 | 111 | } 112 | -------------------------------------------------------------------------------- /ScreenGuard.xcworkspace/xcuserdata/vprabhu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 21 | 22 | 23 | 25 | 37 | 38 | 39 | 41 | 53 | 54 | 55 | 57 | 69 | 70 | 71 | 73 | 85 | 86 | 87 | 89 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /ScreenGuardDemo/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 | 29 | 39 | 49 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-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 | BCSYMBOLMAP_DIR="BCSymbolMaps" 23 | 24 | 25 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 26 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 27 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 28 | 29 | # Copies and strips a vendored framework 30 | install_framework() 31 | { 32 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 33 | local source="${BUILT_PRODUCTS_DIR}/$1" 34 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 35 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 36 | elif [ -r "$1" ]; then 37 | local source="$1" 38 | fi 39 | 40 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 41 | 42 | if [ -L "${source}" ]; then 43 | echo "Symlinked..." 44 | source="$(readlink "${source}")" 45 | fi 46 | 47 | if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then 48 | # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied 49 | find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do 50 | echo "Installing $f" 51 | install_bcsymbolmap "$f" "$destination" 52 | rm "$f" 53 | done 54 | rmdir "${source}/${BCSYMBOLMAP_DIR}" 55 | fi 56 | 57 | # Use filter instead of exclude so missing patterns don't throw errors. 58 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 59 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 60 | 61 | local basename 62 | basename="$(basename -s .framework "$1")" 63 | binary="${destination}/${basename}.framework/${basename}" 64 | 65 | if ! [ -r "$binary" ]; then 66 | binary="${destination}/${basename}" 67 | elif [ -L "${binary}" ]; then 68 | echo "Destination binary is symlinked..." 69 | dirname="$(dirname "${binary}")" 70 | binary="${dirname}/$(readlink "${binary}")" 71 | fi 72 | 73 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 74 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 75 | strip_invalid_archs "$binary" 76 | fi 77 | 78 | # Resign the code if required by the build settings to avoid unstable apps 79 | code_sign_if_enabled "${destination}/$(basename "$1")" 80 | 81 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 82 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 83 | local swift_runtime_libs 84 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) 85 | for lib in $swift_runtime_libs; do 86 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 87 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 88 | code_sign_if_enabled "${destination}/${lib}" 89 | done 90 | fi 91 | } 92 | # Copies and strips a vendored dSYM 93 | install_dsym() { 94 | local source="$1" 95 | warn_missing_arch=${2:-true} 96 | if [ -r "$source" ]; then 97 | # Copy the dSYM into the targets temp dir. 98 | 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}\"" 99 | 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}" 100 | 101 | local basename 102 | basename="$(basename -s .dSYM "$source")" 103 | binary_name="$(ls "$source/Contents/Resources/DWARF")" 104 | binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" 105 | 106 | # Strip invalid architectures from the dSYM. 107 | if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then 108 | strip_invalid_archs "$binary" "$warn_missing_arch" 109 | fi 110 | if [[ $STRIP_BINARY_RETVAL == 0 ]]; then 111 | # Move the stripped file into its final destination. 112 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 113 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 114 | else 115 | # 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. 116 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" 117 | fi 118 | fi 119 | } 120 | 121 | # Used as a return value for each invocation of `strip_invalid_archs` function. 122 | STRIP_BINARY_RETVAL=0 123 | 124 | # Strip invalid architectures 125 | strip_invalid_archs() { 126 | binary="$1" 127 | warn_missing_arch=${2:-true} 128 | # Get architectures for current target binary 129 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 130 | # Intersect them with the architectures we are building for 131 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 132 | # If there are no archs supported by this binary then warn the user 133 | if [[ -z "$intersected_archs" ]]; then 134 | if [[ "$warn_missing_arch" == "true" ]]; then 135 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 136 | fi 137 | STRIP_BINARY_RETVAL=1 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=0 152 | } 153 | 154 | # Copies the bcsymbolmap files of a vendored framework 155 | install_bcsymbolmap() { 156 | local bcsymbolmap_path="$1" 157 | local destination="${BUILT_PRODUCTS_DIR}" 158 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" 159 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" 160 | } 161 | 162 | # Signs a framework with the provided identity 163 | code_sign_if_enabled() { 164 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 165 | # Use the current code_sign_identity 166 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 167 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 168 | 169 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 170 | code_sign_cmd="$code_sign_cmd &" 171 | fi 172 | echo "$code_sign_cmd" 173 | eval "$code_sign_cmd" 174 | fi 175 | } 176 | 177 | if [[ "$CONFIGURATION" == "Debug" ]]; then 178 | install_framework "${BUILT_PRODUCTS_DIR}/ScreenGuard/ScreenGuard.framework" 179 | fi 180 | if [[ "$CONFIGURATION" == "Release" ]]; then 181 | install_framework "${BUILT_PRODUCTS_DIR}/ScreenGuard/ScreenGuard.framework" 182 | fi 183 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 184 | wait 185 | fi 186 | -------------------------------------------------------------------------------- /ScreenGuard.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 51; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 49F7359CA68B43459D34608A /* Pods_ScreenGuardDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97B6C0EA67E4574511481C4A /* Pods_ScreenGuardDemo.framework */; }; 11 | 75A24F2B5C71B90C6A925603 /* Pods_ScreenGuard_ScreenGuardTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4267FFE17A21C400ECB2FD0C /* Pods_ScreenGuard_ScreenGuardTests.framework */; }; 12 | 75CCFD41CBD1A4F5F1BC7FFF /* Pods_ScreenGuard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E23BB3D34813F8391E2821FB /* Pods_ScreenGuard.framework */; }; 13 | ABC234A226318CAE0045BA59 /* ScreenGuard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC2349826318CAE0045BA59 /* ScreenGuard.framework */; }; 14 | ABC234A726318CAE0045BA59 /* ScreenGuardTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABC234A626318CAE0045BA59 /* ScreenGuardTests.swift */; }; 15 | ABC234A926318CAE0045BA59 /* ScreenGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = ABC2349B26318CAE0045BA59 /* ScreenGuard.h */; settings = {ATTRIBUTES = (Public, ); }; }; 16 | ABC234BF26318D070045BA59 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABC234BE26318D070045BA59 /* AppDelegate.swift */; }; 17 | ABC234C126318D070045BA59 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABC234C026318D070045BA59 /* SceneDelegate.swift */; }; 18 | ABC234C326318D070045BA59 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABC234C226318D070045BA59 /* ViewController.swift */; }; 19 | ABC234C626318D070045BA59 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ABC234C426318D070045BA59 /* Main.storyboard */; }; 20 | ABC234C826318D080045BA59 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ABC234C726318D080045BA59 /* Assets.xcassets */; }; 21 | ABC234CB26318D080045BA59 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ABC234C926318D080045BA59 /* LaunchScreen.storyboard */; }; 22 | ABC234D926318FBD0045BA59 /* ScreenGuard.podspec in Resources */ = {isa = PBXBuildFile; fileRef = ABC234D826318FBD0045BA59 /* ScreenGuard.podspec */; }; 23 | ABC234DE263190380045BA59 /* Podfile in Resources */ = {isa = PBXBuildFile; fileRef = ABC234DD263190380045BA59 /* Podfile */; }; 24 | /* End PBXBuildFile section */ 25 | 26 | /* Begin PBXContainerItemProxy section */ 27 | ABC234A326318CAE0045BA59 /* PBXContainerItemProxy */ = { 28 | isa = PBXContainerItemProxy; 29 | containerPortal = ABC2348F26318CAE0045BA59 /* Project object */; 30 | proxyType = 1; 31 | remoteGlobalIDString = ABC2349726318CAE0045BA59; 32 | remoteInfo = ScreenGuard; 33 | }; 34 | /* End PBXContainerItemProxy section */ 35 | 36 | /* Begin PBXFileReference section */ 37 | 403D3C41CB82B5FCD4D4EDD2 /* Pods-ScreenGuardDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ScreenGuardDemo.debug.xcconfig"; path = "Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo.debug.xcconfig"; sourceTree = ""; }; 38 | 4267FFE17A21C400ECB2FD0C /* Pods_ScreenGuard_ScreenGuardTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ScreenGuard_ScreenGuardTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 529B22D38685B12B551B0E95 /* Pods-ScreenGuard-ScreenGuardTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ScreenGuard-ScreenGuardTests.release.xcconfig"; path = "Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests.release.xcconfig"; sourceTree = ""; }; 40 | 941E270C9774090785A884D9 /* Pods-ScreenGuard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ScreenGuard.release.xcconfig"; path = "Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard.release.xcconfig"; sourceTree = ""; }; 41 | 97B6C0EA67E4574511481C4A /* Pods_ScreenGuardDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ScreenGuardDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 42 | A16BEA4984B6AB720476F126 /* Pods-ScreenGuardDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ScreenGuardDemo.release.xcconfig"; path = "Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo.release.xcconfig"; sourceTree = ""; }; 43 | ABC2349826318CAE0045BA59 /* ScreenGuard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ScreenGuard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | ABC2349B26318CAE0045BA59 /* ScreenGuard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScreenGuard.h; sourceTree = ""; }; 45 | ABC2349C26318CAE0045BA59 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 46 | ABC234A126318CAE0045BA59 /* ScreenGuardTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ScreenGuardTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | ABC234A626318CAE0045BA59 /* ScreenGuardTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenGuardTests.swift; sourceTree = ""; }; 48 | ABC234A826318CAE0045BA59 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 49 | ABC234BC26318D070045BA59 /* ScreenGuardDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ScreenGuardDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 50 | ABC234BE26318D070045BA59 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 51 | ABC234C026318D070045BA59 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; 52 | ABC234C226318D070045BA59 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 53 | ABC234C526318D070045BA59 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 54 | ABC234C726318D080045BA59 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 55 | ABC234CA26318D080045BA59 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 56 | ABC234CC26318D080045BA59 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 57 | ABC234D826318FBD0045BA59 /* ScreenGuard.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = ScreenGuard.podspec; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 58 | ABC234DD263190380045BA59 /* Podfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 59 | ABEF19932632D1A900114932 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 60 | E15E5858B479EC7817755C48 /* Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig"; path = "Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig"; sourceTree = ""; }; 61 | E23BB3D34813F8391E2821FB /* Pods_ScreenGuard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ScreenGuard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 62 | EB892EBFCB4EAE16F5EAE7EC /* Pods-ScreenGuard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ScreenGuard.debug.xcconfig"; path = "Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard.debug.xcconfig"; sourceTree = ""; }; 63 | /* End PBXFileReference section */ 64 | 65 | /* Begin PBXFrameworksBuildPhase section */ 66 | ABC2349526318CAE0045BA59 /* Frameworks */ = { 67 | isa = PBXFrameworksBuildPhase; 68 | buildActionMask = 2147483647; 69 | files = ( 70 | 75CCFD41CBD1A4F5F1BC7FFF /* Pods_ScreenGuard.framework in Frameworks */, 71 | ); 72 | runOnlyForDeploymentPostprocessing = 0; 73 | }; 74 | ABC2349E26318CAE0045BA59 /* Frameworks */ = { 75 | isa = PBXFrameworksBuildPhase; 76 | buildActionMask = 2147483647; 77 | files = ( 78 | ABC234A226318CAE0045BA59 /* ScreenGuard.framework in Frameworks */, 79 | 75A24F2B5C71B90C6A925603 /* Pods_ScreenGuard_ScreenGuardTests.framework in Frameworks */, 80 | ); 81 | runOnlyForDeploymentPostprocessing = 0; 82 | }; 83 | ABC234B926318D070045BA59 /* Frameworks */ = { 84 | isa = PBXFrameworksBuildPhase; 85 | buildActionMask = 2147483647; 86 | files = ( 87 | 49F7359CA68B43459D34608A /* Pods_ScreenGuardDemo.framework in Frameworks */, 88 | ); 89 | runOnlyForDeploymentPostprocessing = 0; 90 | }; 91 | /* End PBXFrameworksBuildPhase section */ 92 | 93 | /* Begin PBXGroup section */ 94 | 4A90F2039E409EA99FB61118 /* Frameworks */ = { 95 | isa = PBXGroup; 96 | children = ( 97 | E23BB3D34813F8391E2821FB /* Pods_ScreenGuard.framework */, 98 | 4267FFE17A21C400ECB2FD0C /* Pods_ScreenGuard_ScreenGuardTests.framework */, 99 | 97B6C0EA67E4574511481C4A /* Pods_ScreenGuardDemo.framework */, 100 | ); 101 | name = Frameworks; 102 | sourceTree = ""; 103 | }; 104 | 5F73477D79B1D62DA1807721 /* Pods */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | EB892EBFCB4EAE16F5EAE7EC /* Pods-ScreenGuard.debug.xcconfig */, 108 | 941E270C9774090785A884D9 /* Pods-ScreenGuard.release.xcconfig */, 109 | E15E5858B479EC7817755C48 /* Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig */, 110 | 529B22D38685B12B551B0E95 /* Pods-ScreenGuard-ScreenGuardTests.release.xcconfig */, 111 | 403D3C41CB82B5FCD4D4EDD2 /* Pods-ScreenGuardDemo.debug.xcconfig */, 112 | A16BEA4984B6AB720476F126 /* Pods-ScreenGuardDemo.release.xcconfig */, 113 | ); 114 | path = Pods; 115 | sourceTree = ""; 116 | }; 117 | ABC2348E26318CAE0045BA59 = { 118 | isa = PBXGroup; 119 | children = ( 120 | ABEF19932632D1A900114932 /* README.md */, 121 | ABC2349A26318CAE0045BA59 /* ScreenGuard */, 122 | ABC234A526318CAE0045BA59 /* ScreenGuardTests */, 123 | ABC234BD26318D070045BA59 /* ScreenGuardDemo */, 124 | ABC2349926318CAE0045BA59 /* Products */, 125 | 5F73477D79B1D62DA1807721 /* Pods */, 126 | 4A90F2039E409EA99FB61118 /* Frameworks */, 127 | ); 128 | sourceTree = ""; 129 | }; 130 | ABC2349926318CAE0045BA59 /* Products */ = { 131 | isa = PBXGroup; 132 | children = ( 133 | ABC2349826318CAE0045BA59 /* ScreenGuard.framework */, 134 | ABC234A126318CAE0045BA59 /* ScreenGuardTests.xctest */, 135 | ABC234BC26318D070045BA59 /* ScreenGuardDemo.app */, 136 | ); 137 | name = Products; 138 | sourceTree = ""; 139 | }; 140 | ABC2349A26318CAE0045BA59 /* ScreenGuard */ = { 141 | isa = PBXGroup; 142 | children = ( 143 | ABC2349B26318CAE0045BA59 /* ScreenGuard.h */, 144 | ABC234D826318FBD0045BA59 /* ScreenGuard.podspec */, 145 | ABC2349C26318CAE0045BA59 /* Info.plist */, 146 | ); 147 | path = ScreenGuard; 148 | sourceTree = ""; 149 | }; 150 | ABC234A526318CAE0045BA59 /* ScreenGuardTests */ = { 151 | isa = PBXGroup; 152 | children = ( 153 | ABC234A626318CAE0045BA59 /* ScreenGuardTests.swift */, 154 | ABC234A826318CAE0045BA59 /* Info.plist */, 155 | ); 156 | path = ScreenGuardTests; 157 | sourceTree = ""; 158 | }; 159 | ABC234BD26318D070045BA59 /* ScreenGuardDemo */ = { 160 | isa = PBXGroup; 161 | children = ( 162 | ABC234DD263190380045BA59 /* Podfile */, 163 | ABC234BE26318D070045BA59 /* AppDelegate.swift */, 164 | ABC234C026318D070045BA59 /* SceneDelegate.swift */, 165 | ABC234C226318D070045BA59 /* ViewController.swift */, 166 | ABC234C426318D070045BA59 /* Main.storyboard */, 167 | ABC234C726318D080045BA59 /* Assets.xcassets */, 168 | ABC234C926318D080045BA59 /* LaunchScreen.storyboard */, 169 | ABC234CC26318D080045BA59 /* Info.plist */, 170 | ); 171 | path = ScreenGuardDemo; 172 | sourceTree = ""; 173 | }; 174 | /* End PBXGroup section */ 175 | 176 | /* Begin PBXHeadersBuildPhase section */ 177 | ABC2349326318CAE0045BA59 /* Headers */ = { 178 | isa = PBXHeadersBuildPhase; 179 | buildActionMask = 2147483647; 180 | files = ( 181 | ABC234A926318CAE0045BA59 /* ScreenGuard.h in Headers */, 182 | ); 183 | runOnlyForDeploymentPostprocessing = 0; 184 | }; 185 | /* End PBXHeadersBuildPhase section */ 186 | 187 | /* Begin PBXNativeTarget section */ 188 | ABC2349726318CAE0045BA59 /* ScreenGuard */ = { 189 | isa = PBXNativeTarget; 190 | buildConfigurationList = ABC234AC26318CAE0045BA59 /* Build configuration list for PBXNativeTarget "ScreenGuard" */; 191 | buildPhases = ( 192 | 4C5EE65D0E60BAF101DBAB64 /* [CP] Check Pods Manifest.lock */, 193 | ABC2349326318CAE0045BA59 /* Headers */, 194 | ABC2349426318CAE0045BA59 /* Sources */, 195 | ABC2349526318CAE0045BA59 /* Frameworks */, 196 | ABC2349626318CAE0045BA59 /* Resources */, 197 | ); 198 | buildRules = ( 199 | ); 200 | dependencies = ( 201 | ); 202 | name = ScreenGuard; 203 | productName = ScreenGuard; 204 | productReference = ABC2349826318CAE0045BA59 /* ScreenGuard.framework */; 205 | productType = "com.apple.product-type.framework"; 206 | }; 207 | ABC234A026318CAE0045BA59 /* ScreenGuardTests */ = { 208 | isa = PBXNativeTarget; 209 | buildConfigurationList = ABC234AF26318CAE0045BA59 /* Build configuration list for PBXNativeTarget "ScreenGuardTests" */; 210 | buildPhases = ( 211 | F207E37C46932BAAC826DEEF /* [CP] Check Pods Manifest.lock */, 212 | ABC2349D26318CAE0045BA59 /* Sources */, 213 | ABC2349E26318CAE0045BA59 /* Frameworks */, 214 | ABC2349F26318CAE0045BA59 /* Resources */, 215 | ); 216 | buildRules = ( 217 | ); 218 | dependencies = ( 219 | ABC234A426318CAE0045BA59 /* PBXTargetDependency */, 220 | ); 221 | name = ScreenGuardTests; 222 | productName = ScreenGuardTests; 223 | productReference = ABC234A126318CAE0045BA59 /* ScreenGuardTests.xctest */; 224 | productType = "com.apple.product-type.bundle.unit-test"; 225 | }; 226 | ABC234BB26318D070045BA59 /* ScreenGuardDemo */ = { 227 | isa = PBXNativeTarget; 228 | buildConfigurationList = ABC234CD26318D080045BA59 /* Build configuration list for PBXNativeTarget "ScreenGuardDemo" */; 229 | buildPhases = ( 230 | 3B9830E898D0ACE671FC5D7D /* [CP] Check Pods Manifest.lock */, 231 | ABC234B826318D070045BA59 /* Sources */, 232 | ABC234B926318D070045BA59 /* Frameworks */, 233 | ABC234BA26318D070045BA59 /* Resources */, 234 | 00ED357A5D561BF98525AD8C /* [CP] Embed Pods Frameworks */, 235 | ); 236 | buildRules = ( 237 | ); 238 | dependencies = ( 239 | ); 240 | name = ScreenGuardDemo; 241 | productName = ScreenGuardDemo; 242 | productReference = ABC234BC26318D070045BA59 /* ScreenGuardDemo.app */; 243 | productType = "com.apple.product-type.application"; 244 | }; 245 | /* End PBXNativeTarget section */ 246 | 247 | /* Begin PBXProject section */ 248 | ABC2348F26318CAE0045BA59 /* Project object */ = { 249 | isa = PBXProject; 250 | attributes = { 251 | LastSwiftUpdateCheck = 1240; 252 | LastUpgradeCheck = 1240; 253 | TargetAttributes = { 254 | ABC2349726318CAE0045BA59 = { 255 | CreatedOnToolsVersion = 12.4; 256 | LastSwiftMigration = 1240; 257 | }; 258 | ABC234A026318CAE0045BA59 = { 259 | CreatedOnToolsVersion = 12.4; 260 | }; 261 | ABC234BB26318D070045BA59 = { 262 | CreatedOnToolsVersion = 12.4; 263 | }; 264 | }; 265 | }; 266 | buildConfigurationList = ABC2349226318CAE0045BA59 /* Build configuration list for PBXProject "ScreenGuard" */; 267 | compatibilityVersion = "Xcode 9.3"; 268 | developmentRegion = en; 269 | hasScannedForEncodings = 0; 270 | knownRegions = ( 271 | en, 272 | Base, 273 | ); 274 | mainGroup = ABC2348E26318CAE0045BA59; 275 | productRefGroup = ABC2349926318CAE0045BA59 /* Products */; 276 | projectDirPath = ""; 277 | projectRoot = ""; 278 | targets = ( 279 | ABC2349726318CAE0045BA59 /* ScreenGuard */, 280 | ABC234A026318CAE0045BA59 /* ScreenGuardTests */, 281 | ABC234BB26318D070045BA59 /* ScreenGuardDemo */, 282 | ); 283 | }; 284 | /* End PBXProject section */ 285 | 286 | /* Begin PBXResourcesBuildPhase section */ 287 | ABC2349626318CAE0045BA59 /* Resources */ = { 288 | isa = PBXResourcesBuildPhase; 289 | buildActionMask = 2147483647; 290 | files = ( 291 | ABC234D926318FBD0045BA59 /* ScreenGuard.podspec in Resources */, 292 | ); 293 | runOnlyForDeploymentPostprocessing = 0; 294 | }; 295 | ABC2349F26318CAE0045BA59 /* Resources */ = { 296 | isa = PBXResourcesBuildPhase; 297 | buildActionMask = 2147483647; 298 | files = ( 299 | ); 300 | runOnlyForDeploymentPostprocessing = 0; 301 | }; 302 | ABC234BA26318D070045BA59 /* Resources */ = { 303 | isa = PBXResourcesBuildPhase; 304 | buildActionMask = 2147483647; 305 | files = ( 306 | ABC234CB26318D080045BA59 /* LaunchScreen.storyboard in Resources */, 307 | ABC234C826318D080045BA59 /* Assets.xcassets in Resources */, 308 | ABC234DE263190380045BA59 /* Podfile in Resources */, 309 | ABC234C626318D070045BA59 /* Main.storyboard in Resources */, 310 | ); 311 | runOnlyForDeploymentPostprocessing = 0; 312 | }; 313 | /* End PBXResourcesBuildPhase section */ 314 | 315 | /* Begin PBXShellScriptBuildPhase section */ 316 | 00ED357A5D561BF98525AD8C /* [CP] Embed Pods Frameworks */ = { 317 | isa = PBXShellScriptBuildPhase; 318 | buildActionMask = 2147483647; 319 | files = ( 320 | ); 321 | inputFileListPaths = ( 322 | "${PODS_ROOT}/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist", 323 | ); 324 | name = "[CP] Embed Pods Frameworks"; 325 | outputFileListPaths = ( 326 | "${PODS_ROOT}/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist", 327 | ); 328 | runOnlyForDeploymentPostprocessing = 0; 329 | shellPath = /bin/sh; 330 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-frameworks.sh\"\n"; 331 | showEnvVarsInLog = 0; 332 | }; 333 | 3B9830E898D0ACE671FC5D7D /* [CP] Check Pods Manifest.lock */ = { 334 | isa = PBXShellScriptBuildPhase; 335 | buildActionMask = 2147483647; 336 | files = ( 337 | ); 338 | inputFileListPaths = ( 339 | ); 340 | inputPaths = ( 341 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 342 | "${PODS_ROOT}/Manifest.lock", 343 | ); 344 | name = "[CP] Check Pods Manifest.lock"; 345 | outputFileListPaths = ( 346 | ); 347 | outputPaths = ( 348 | "$(DERIVED_FILE_DIR)/Pods-ScreenGuardDemo-checkManifestLockResult.txt", 349 | ); 350 | runOnlyForDeploymentPostprocessing = 0; 351 | shellPath = /bin/sh; 352 | 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"; 353 | showEnvVarsInLog = 0; 354 | }; 355 | 4C5EE65D0E60BAF101DBAB64 /* [CP] Check Pods Manifest.lock */ = { 356 | isa = PBXShellScriptBuildPhase; 357 | buildActionMask = 2147483647; 358 | files = ( 359 | ); 360 | inputFileListPaths = ( 361 | ); 362 | inputPaths = ( 363 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 364 | "${PODS_ROOT}/Manifest.lock", 365 | ); 366 | name = "[CP] Check Pods Manifest.lock"; 367 | outputFileListPaths = ( 368 | ); 369 | outputPaths = ( 370 | "$(DERIVED_FILE_DIR)/Pods-ScreenGuard-checkManifestLockResult.txt", 371 | ); 372 | runOnlyForDeploymentPostprocessing = 0; 373 | shellPath = /bin/sh; 374 | 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"; 375 | showEnvVarsInLog = 0; 376 | }; 377 | F207E37C46932BAAC826DEEF /* [CP] Check Pods Manifest.lock */ = { 378 | isa = PBXShellScriptBuildPhase; 379 | buildActionMask = 2147483647; 380 | files = ( 381 | ); 382 | inputFileListPaths = ( 383 | ); 384 | inputPaths = ( 385 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 386 | "${PODS_ROOT}/Manifest.lock", 387 | ); 388 | name = "[CP] Check Pods Manifest.lock"; 389 | outputFileListPaths = ( 390 | ); 391 | outputPaths = ( 392 | "$(DERIVED_FILE_DIR)/Pods-ScreenGuard-ScreenGuardTests-checkManifestLockResult.txt", 393 | ); 394 | runOnlyForDeploymentPostprocessing = 0; 395 | shellPath = /bin/sh; 396 | 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"; 397 | showEnvVarsInLog = 0; 398 | }; 399 | /* End PBXShellScriptBuildPhase section */ 400 | 401 | /* Begin PBXSourcesBuildPhase section */ 402 | ABC2349426318CAE0045BA59 /* Sources */ = { 403 | isa = PBXSourcesBuildPhase; 404 | buildActionMask = 2147483647; 405 | files = ( 406 | ); 407 | runOnlyForDeploymentPostprocessing = 0; 408 | }; 409 | ABC2349D26318CAE0045BA59 /* Sources */ = { 410 | isa = PBXSourcesBuildPhase; 411 | buildActionMask = 2147483647; 412 | files = ( 413 | ABC234A726318CAE0045BA59 /* ScreenGuardTests.swift in Sources */, 414 | ); 415 | runOnlyForDeploymentPostprocessing = 0; 416 | }; 417 | ABC234B826318D070045BA59 /* Sources */ = { 418 | isa = PBXSourcesBuildPhase; 419 | buildActionMask = 2147483647; 420 | files = ( 421 | ABC234C326318D070045BA59 /* ViewController.swift in Sources */, 422 | ABC234BF26318D070045BA59 /* AppDelegate.swift in Sources */, 423 | ABC234C126318D070045BA59 /* SceneDelegate.swift in Sources */, 424 | ); 425 | runOnlyForDeploymentPostprocessing = 0; 426 | }; 427 | /* End PBXSourcesBuildPhase section */ 428 | 429 | /* Begin PBXTargetDependency section */ 430 | ABC234A426318CAE0045BA59 /* PBXTargetDependency */ = { 431 | isa = PBXTargetDependency; 432 | target = ABC2349726318CAE0045BA59 /* ScreenGuard */; 433 | targetProxy = ABC234A326318CAE0045BA59 /* PBXContainerItemProxy */; 434 | }; 435 | /* End PBXTargetDependency section */ 436 | 437 | /* Begin PBXVariantGroup section */ 438 | ABC234C426318D070045BA59 /* Main.storyboard */ = { 439 | isa = PBXVariantGroup; 440 | children = ( 441 | ABC234C526318D070045BA59 /* Base */, 442 | ); 443 | name = Main.storyboard; 444 | sourceTree = ""; 445 | }; 446 | ABC234C926318D080045BA59 /* LaunchScreen.storyboard */ = { 447 | isa = PBXVariantGroup; 448 | children = ( 449 | ABC234CA26318D080045BA59 /* Base */, 450 | ); 451 | name = LaunchScreen.storyboard; 452 | sourceTree = ""; 453 | }; 454 | /* End PBXVariantGroup section */ 455 | 456 | /* Begin XCBuildConfiguration section */ 457 | ABC234AA26318CAE0045BA59 /* Debug */ = { 458 | isa = XCBuildConfiguration; 459 | buildSettings = { 460 | ALWAYS_SEARCH_USER_PATHS = NO; 461 | CLANG_ANALYZER_NONNULL = YES; 462 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 463 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 464 | CLANG_CXX_LIBRARY = "libc++"; 465 | CLANG_ENABLE_MODULES = YES; 466 | CLANG_ENABLE_OBJC_ARC = YES; 467 | CLANG_ENABLE_OBJC_WEAK = YES; 468 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 469 | CLANG_WARN_BOOL_CONVERSION = YES; 470 | CLANG_WARN_COMMA = YES; 471 | CLANG_WARN_CONSTANT_CONVERSION = YES; 472 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 473 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 474 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 475 | CLANG_WARN_EMPTY_BODY = YES; 476 | CLANG_WARN_ENUM_CONVERSION = YES; 477 | CLANG_WARN_INFINITE_RECURSION = YES; 478 | CLANG_WARN_INT_CONVERSION = YES; 479 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 480 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 481 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 482 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 483 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 484 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 485 | CLANG_WARN_STRICT_PROTOTYPES = YES; 486 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 487 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 488 | CLANG_WARN_UNREACHABLE_CODE = YES; 489 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 490 | COPY_PHASE_STRIP = NO; 491 | CURRENT_PROJECT_VERSION = 1; 492 | DEBUG_INFORMATION_FORMAT = dwarf; 493 | ENABLE_STRICT_OBJC_MSGSEND = YES; 494 | ENABLE_TESTABILITY = YES; 495 | GCC_C_LANGUAGE_STANDARD = gnu11; 496 | GCC_DYNAMIC_NO_PIC = NO; 497 | GCC_NO_COMMON_BLOCKS = YES; 498 | GCC_OPTIMIZATION_LEVEL = 0; 499 | GCC_PREPROCESSOR_DEFINITIONS = ( 500 | "DEBUG=1", 501 | "$(inherited)", 502 | ); 503 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 504 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 505 | GCC_WARN_UNDECLARED_SELECTOR = YES; 506 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 507 | GCC_WARN_UNUSED_FUNCTION = YES; 508 | GCC_WARN_UNUSED_VARIABLE = YES; 509 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 510 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 511 | MTL_FAST_MATH = YES; 512 | ONLY_ACTIVE_ARCH = YES; 513 | SDKROOT = iphoneos; 514 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 515 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 516 | VERSIONING_SYSTEM = "apple-generic"; 517 | VERSION_INFO_PREFIX = ""; 518 | }; 519 | name = Debug; 520 | }; 521 | ABC234AB26318CAE0045BA59 /* Release */ = { 522 | isa = XCBuildConfiguration; 523 | buildSettings = { 524 | ALWAYS_SEARCH_USER_PATHS = NO; 525 | CLANG_ANALYZER_NONNULL = YES; 526 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 527 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 528 | CLANG_CXX_LIBRARY = "libc++"; 529 | CLANG_ENABLE_MODULES = YES; 530 | CLANG_ENABLE_OBJC_ARC = YES; 531 | CLANG_ENABLE_OBJC_WEAK = YES; 532 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 533 | CLANG_WARN_BOOL_CONVERSION = YES; 534 | CLANG_WARN_COMMA = YES; 535 | CLANG_WARN_CONSTANT_CONVERSION = YES; 536 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 537 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 538 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 539 | CLANG_WARN_EMPTY_BODY = YES; 540 | CLANG_WARN_ENUM_CONVERSION = YES; 541 | CLANG_WARN_INFINITE_RECURSION = YES; 542 | CLANG_WARN_INT_CONVERSION = YES; 543 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 544 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 545 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 546 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 547 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 548 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 549 | CLANG_WARN_STRICT_PROTOTYPES = YES; 550 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 551 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 552 | CLANG_WARN_UNREACHABLE_CODE = YES; 553 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 554 | COPY_PHASE_STRIP = NO; 555 | CURRENT_PROJECT_VERSION = 1; 556 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 557 | ENABLE_NS_ASSERTIONS = NO; 558 | ENABLE_STRICT_OBJC_MSGSEND = YES; 559 | GCC_C_LANGUAGE_STANDARD = gnu11; 560 | GCC_NO_COMMON_BLOCKS = YES; 561 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 562 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 563 | GCC_WARN_UNDECLARED_SELECTOR = YES; 564 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 565 | GCC_WARN_UNUSED_FUNCTION = YES; 566 | GCC_WARN_UNUSED_VARIABLE = YES; 567 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 568 | MTL_ENABLE_DEBUG_INFO = NO; 569 | MTL_FAST_MATH = YES; 570 | SDKROOT = iphoneos; 571 | SWIFT_COMPILATION_MODE = wholemodule; 572 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 573 | VALIDATE_PRODUCT = YES; 574 | VERSIONING_SYSTEM = "apple-generic"; 575 | VERSION_INFO_PREFIX = ""; 576 | }; 577 | name = Release; 578 | }; 579 | ABC234AD26318CAE0045BA59 /* Debug */ = { 580 | isa = XCBuildConfiguration; 581 | baseConfigurationReference = EB892EBFCB4EAE16F5EAE7EC /* Pods-ScreenGuard.debug.xcconfig */; 582 | buildSettings = { 583 | CLANG_ENABLE_MODULES = YES; 584 | CODE_SIGN_STYLE = Automatic; 585 | DEFINES_MODULE = YES; 586 | DEVELOPMENT_TEAM = 7AP743B8SS; 587 | DYLIB_COMPATIBILITY_VERSION = 1; 588 | DYLIB_CURRENT_VERSION = 1; 589 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 590 | INFOPLIST_FILE = ScreenGuard/Info.plist; 591 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 592 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 593 | LD_RUNPATH_SEARCH_PATHS = ( 594 | "$(inherited)", 595 | "@executable_path/Frameworks", 596 | "@loader_path/Frameworks", 597 | ); 598 | PRODUCT_BUNDLE_IDENTIFIER = learning.ScreenGuard; 599 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 600 | SKIP_INSTALL = YES; 601 | SUPPORTS_MACCATALYST = NO; 602 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 603 | SWIFT_VERSION = 5.0; 604 | TARGETED_DEVICE_FAMILY = "1,2"; 605 | TVOS_DEPLOYMENT_TARGET = 14.0; 606 | }; 607 | name = Debug; 608 | }; 609 | ABC234AE26318CAE0045BA59 /* Release */ = { 610 | isa = XCBuildConfiguration; 611 | baseConfigurationReference = 941E270C9774090785A884D9 /* Pods-ScreenGuard.release.xcconfig */; 612 | buildSettings = { 613 | CLANG_ENABLE_MODULES = YES; 614 | CODE_SIGN_STYLE = Automatic; 615 | DEFINES_MODULE = YES; 616 | DEVELOPMENT_TEAM = 7AP743B8SS; 617 | DYLIB_COMPATIBILITY_VERSION = 1; 618 | DYLIB_CURRENT_VERSION = 1; 619 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 620 | INFOPLIST_FILE = ScreenGuard/Info.plist; 621 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 622 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 623 | LD_RUNPATH_SEARCH_PATHS = ( 624 | "$(inherited)", 625 | "@executable_path/Frameworks", 626 | "@loader_path/Frameworks", 627 | ); 628 | PRODUCT_BUNDLE_IDENTIFIER = learning.ScreenGuard; 629 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 630 | SKIP_INSTALL = YES; 631 | SUPPORTS_MACCATALYST = NO; 632 | SWIFT_VERSION = 5.0; 633 | TARGETED_DEVICE_FAMILY = "1,2"; 634 | TVOS_DEPLOYMENT_TARGET = 14.0; 635 | }; 636 | name = Release; 637 | }; 638 | ABC234B026318CAE0045BA59 /* Debug */ = { 639 | isa = XCBuildConfiguration; 640 | baseConfigurationReference = E15E5858B479EC7817755C48 /* Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig */; 641 | buildSettings = { 642 | CODE_SIGN_STYLE = Automatic; 643 | DEVELOPMENT_TEAM = 7AP743B8SS; 644 | INFOPLIST_FILE = ScreenGuardTests/Info.plist; 645 | LD_RUNPATH_SEARCH_PATHS = ( 646 | "$(inherited)", 647 | "@executable_path/Frameworks", 648 | "@loader_path/Frameworks", 649 | ); 650 | PRODUCT_BUNDLE_IDENTIFIER = learning.ScreenGuardTests; 651 | PRODUCT_NAME = "$(TARGET_NAME)"; 652 | SWIFT_VERSION = 5.0; 653 | TARGETED_DEVICE_FAMILY = "1,2"; 654 | }; 655 | name = Debug; 656 | }; 657 | ABC234B126318CAE0045BA59 /* Release */ = { 658 | isa = XCBuildConfiguration; 659 | baseConfigurationReference = 529B22D38685B12B551B0E95 /* Pods-ScreenGuard-ScreenGuardTests.release.xcconfig */; 660 | buildSettings = { 661 | CODE_SIGN_STYLE = Automatic; 662 | DEVELOPMENT_TEAM = 7AP743B8SS; 663 | INFOPLIST_FILE = ScreenGuardTests/Info.plist; 664 | LD_RUNPATH_SEARCH_PATHS = ( 665 | "$(inherited)", 666 | "@executable_path/Frameworks", 667 | "@loader_path/Frameworks", 668 | ); 669 | PRODUCT_BUNDLE_IDENTIFIER = learning.ScreenGuardTests; 670 | PRODUCT_NAME = "$(TARGET_NAME)"; 671 | SWIFT_VERSION = 5.0; 672 | TARGETED_DEVICE_FAMILY = "1,2"; 673 | }; 674 | name = Release; 675 | }; 676 | ABC234CE26318D080045BA59 /* Debug */ = { 677 | isa = XCBuildConfiguration; 678 | baseConfigurationReference = 403D3C41CB82B5FCD4D4EDD2 /* Pods-ScreenGuardDemo.debug.xcconfig */; 679 | buildSettings = { 680 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 681 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 682 | CODE_SIGN_STYLE = Automatic; 683 | DEVELOPMENT_TEAM = 7AP743B8SS; 684 | INFOPLIST_FILE = ScreenGuardDemo/Info.plist; 685 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 686 | LD_RUNPATH_SEARCH_PATHS = ( 687 | "$(inherited)", 688 | "@executable_path/Frameworks", 689 | ); 690 | PRODUCT_BUNDLE_IDENTIFIER = learning.ScreenGuardDemo; 691 | PRODUCT_NAME = "$(TARGET_NAME)"; 692 | SWIFT_VERSION = 5.0; 693 | TARGETED_DEVICE_FAMILY = "1,2"; 694 | }; 695 | name = Debug; 696 | }; 697 | ABC234CF26318D080045BA59 /* Release */ = { 698 | isa = XCBuildConfiguration; 699 | baseConfigurationReference = A16BEA4984B6AB720476F126 /* Pods-ScreenGuardDemo.release.xcconfig */; 700 | buildSettings = { 701 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 702 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 703 | CODE_SIGN_STYLE = Automatic; 704 | DEVELOPMENT_TEAM = 7AP743B8SS; 705 | INFOPLIST_FILE = ScreenGuardDemo/Info.plist; 706 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 707 | LD_RUNPATH_SEARCH_PATHS = ( 708 | "$(inherited)", 709 | "@executable_path/Frameworks", 710 | ); 711 | PRODUCT_BUNDLE_IDENTIFIER = learning.ScreenGuardDemo; 712 | PRODUCT_NAME = "$(TARGET_NAME)"; 713 | SWIFT_VERSION = 5.0; 714 | TARGETED_DEVICE_FAMILY = "1,2"; 715 | }; 716 | name = Release; 717 | }; 718 | /* End XCBuildConfiguration section */ 719 | 720 | /* Begin XCConfigurationList section */ 721 | ABC2349226318CAE0045BA59 /* Build configuration list for PBXProject "ScreenGuard" */ = { 722 | isa = XCConfigurationList; 723 | buildConfigurations = ( 724 | ABC234AA26318CAE0045BA59 /* Debug */, 725 | ABC234AB26318CAE0045BA59 /* Release */, 726 | ); 727 | defaultConfigurationIsVisible = 0; 728 | defaultConfigurationName = Release; 729 | }; 730 | ABC234AC26318CAE0045BA59 /* Build configuration list for PBXNativeTarget "ScreenGuard" */ = { 731 | isa = XCConfigurationList; 732 | buildConfigurations = ( 733 | ABC234AD26318CAE0045BA59 /* Debug */, 734 | ABC234AE26318CAE0045BA59 /* Release */, 735 | ); 736 | defaultConfigurationIsVisible = 0; 737 | defaultConfigurationName = Release; 738 | }; 739 | ABC234AF26318CAE0045BA59 /* Build configuration list for PBXNativeTarget "ScreenGuardTests" */ = { 740 | isa = XCConfigurationList; 741 | buildConfigurations = ( 742 | ABC234B026318CAE0045BA59 /* Debug */, 743 | ABC234B126318CAE0045BA59 /* Release */, 744 | ); 745 | defaultConfigurationIsVisible = 0; 746 | defaultConfigurationName = Release; 747 | }; 748 | ABC234CD26318D080045BA59 /* Build configuration list for PBXNativeTarget "ScreenGuardDemo" */ = { 749 | isa = XCConfigurationList; 750 | buildConfigurations = ( 751 | ABC234CE26318D080045BA59 /* Debug */, 752 | ABC234CF26318D080045BA59 /* Release */, 753 | ); 754 | defaultConfigurationIsVisible = 0; 755 | defaultConfigurationName = Release; 756 | }; 757 | /* End XCConfigurationList section */ 758 | }; 759 | rootObject = ABC2348F26318CAE0045BA59 /* Project object */; 760 | } 761 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 51; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 0FA8A460FBE37C69F4CAB8C49201EDAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 11 | 1A045EE2A9A9529CE1A3AC955E23588B /* ScreenGuardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9852989C54EBC9631621945C29C07F5A /* ScreenGuardManager.swift */; }; 12 | 20211CFEFDB65E3E96641EEC05B7E50A /* Pods-ScreenGuard-ScreenGuardTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C8966E8B12223703B16BF3E1D302A000 /* Pods-ScreenGuard-ScreenGuardTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 | 5369BC79F17AD7D4CB1ACF3982137E29 /* ScreenGuard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6037B58E7BA2757974CDD339CF3AE71D /* ScreenGuard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 14 | 594ADDB06C7A0783C40A50B55FB5ABD3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 15 | 5D7FFF71DEF9125D33762C5FA2BD1594 /* Pods-ScreenGuardDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 568C378268363DDF126C058DC7C8B05F /* Pods-ScreenGuardDemo-dummy.m */; }; 16 | 67C735B4DC7199A0D82017AE30BA53E1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 17 | 80D9D4589CC46F28D4C818D500AE5BC7 /* ScreenGuard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0925D7BCEC3DCE9F982C84D20658D35F /* ScreenGuard-dummy.m */; }; 18 | 8CE4B070520211BB8757CD416ADA9426 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 19 | A4FEBC3C5A5047360F04548973B02EEC /* Pods-ScreenGuard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F4DAE5B5E65BA5064D0F7D2492B782E7 /* Pods-ScreenGuard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 20 | B0FFB1884B7E029919C7C5668ADE45FE /* ScreenGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D5995C5759BB1530A580F66E334A7FF /* ScreenGuard.h */; settings = {ATTRIBUTES = (Public, ); }; }; 21 | F018560FE8732C06C032440B74E6A1F4 /* Pods-ScreenGuardDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C9B92F1DF952AC3DA844D7EC6FF45C05 /* Pods-ScreenGuardDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 22 | F060940103F3EA9FC76AA0094E52A5B3 /* Pods-ScreenGuard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B141570E246A58D455236D822A7D8EB /* Pods-ScreenGuard-dummy.m */; }; 23 | FC5AB6249EB4F933A441768B60555B3E /* Pods-ScreenGuard-ScreenGuardTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BF2AE3833528C8E362CC1DE29A06369 /* Pods-ScreenGuard-ScreenGuardTests-dummy.m */; }; 24 | /* End PBXBuildFile section */ 25 | 26 | /* Begin PBXContainerItemProxy section */ 27 | 97AC90DF78EF29F02EA153FD160C40AE /* PBXContainerItemProxy */ = { 28 | isa = PBXContainerItemProxy; 29 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 30 | proxyType = 1; 31 | remoteGlobalIDString = 01DB57ADA99B3ECFB8339EA1E0DAE0E4; 32 | remoteInfo = ScreenGuard; 33 | }; 34 | /* End PBXContainerItemProxy section */ 35 | 36 | /* Begin PBXFileReference section */ 37 | 008C02751C0E3A0D8ABB56912ED3BE67 /* Pods-ScreenGuard-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScreenGuard-Info.plist"; sourceTree = ""; }; 38 | 01A370CE4AF753790233CE08C07B33D1 /* Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig"; sourceTree = ""; }; 39 | 0925D7BCEC3DCE9F982C84D20658D35F /* ScreenGuard-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ScreenGuard-dummy.m"; sourceTree = ""; }; 40 | 0F244DBC3FA33037E1638C35C3055658 /* Pods-ScreenGuardDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ScreenGuardDemo-frameworks.sh"; sourceTree = ""; }; 41 | 1B880560E40A36485C6F4D64745F26FA /* Pods-ScreenGuard-ScreenGuardTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ScreenGuard-ScreenGuardTests-acknowledgements.markdown"; sourceTree = ""; }; 42 | 1D1DDD2C5596CEFC62914D6D1C96EBE0 /* Pods_ScreenGuard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ScreenGuard.framework; path = "Pods-ScreenGuard.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 2B84CCD0D194E32EA0DBF1D0D4B7C498 /* Pods-ScreenGuard-ScreenGuardTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ScreenGuard-ScreenGuardTests.modulemap"; sourceTree = ""; }; 44 | 34B885A2BE30615F4AA11092860EA799 /* Pods-ScreenGuard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScreenGuard.release.xcconfig"; sourceTree = ""; }; 45 | 448ECFFCE3F079413591A772E5B7B135 /* ScreenGuard.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ScreenGuard.modulemap; sourceTree = ""; }; 46 | 48021FC26F7793ED253E28BB6FF9D573 /* Pods_ScreenGuardDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ScreenGuardDemo.framework; path = "Pods-ScreenGuardDemo.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 4AAD014261A76185FB0BC6E6B195DF3D /* Pods-ScreenGuardDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScreenGuardDemo.release.xcconfig"; sourceTree = ""; }; 48 | 568C378268363DDF126C058DC7C8B05F /* Pods-ScreenGuardDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ScreenGuardDemo-dummy.m"; sourceTree = ""; }; 49 | 5B141570E246A58D455236D822A7D8EB /* Pods-ScreenGuard-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ScreenGuard-dummy.m"; sourceTree = ""; }; 50 | 5BE7A5FDBD8EC78604A2FB7ACD6DAD14 /* ScreenGuard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ScreenGuard.debug.xcconfig; sourceTree = ""; }; 51 | 5D5995C5759BB1530A580F66E334A7FF /* ScreenGuard.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ScreenGuard.h; path = ScreenGuard/ScreenGuard.h; sourceTree = ""; }; 52 | 6037B58E7BA2757974CDD339CF3AE71D /* ScreenGuard-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ScreenGuard-umbrella.h"; sourceTree = ""; }; 53 | 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 54 | 744AF3BF5B577FB303A26B595ADAFE4F /* ScreenGuard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ScreenGuard.release.xcconfig; sourceTree = ""; }; 55 | 7BE7F8F9678198543C45D2DED5669962 /* Pods-ScreenGuard-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScreenGuard-acknowledgements.plist"; sourceTree = ""; }; 56 | 7BF2AE3833528C8E362CC1DE29A06369 /* Pods-ScreenGuard-ScreenGuardTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ScreenGuard-ScreenGuardTests-dummy.m"; sourceTree = ""; }; 57 | 7D4079D631FFA020D570E670D7893B0E /* ScreenGuard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ScreenGuard.framework; path = ScreenGuard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 58 | 7FB11B14850EE65C903E54DB75128467 /* Pods-ScreenGuardDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScreenGuardDemo-Info.plist"; sourceTree = ""; }; 59 | 818C673782D587BA6E2F082D512FFD21 /* Pods-ScreenGuardDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ScreenGuardDemo.modulemap"; sourceTree = ""; }; 60 | 8471F1B0AB38BCAF5A10AB439B88FD48 /* Pods-ScreenGuard-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ScreenGuard-acknowledgements.markdown"; sourceTree = ""; }; 61 | 87EABA9A4C118232A5825EC4AC990304 /* Pods-ScreenGuardDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScreenGuardDemo.debug.xcconfig"; sourceTree = ""; }; 62 | 8FF99DE19776ED6E7AA49B0A62429A4F /* Pods-ScreenGuardDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScreenGuardDemo-acknowledgements.plist"; sourceTree = ""; }; 63 | 920B3C8654CB5EE5026EA20800362B4E /* ScreenGuard.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ScreenGuard.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 64 | 9852989C54EBC9631621945C29C07F5A /* ScreenGuardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenGuardManager.swift; path = ScreenGuard/ScreenGuardManager.swift; sourceTree = ""; }; 65 | 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; }; 66 | B8623E792FDBC15EC901D1825C11BD3E /* Pods-ScreenGuardDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ScreenGuardDemo-acknowledgements.markdown"; sourceTree = ""; }; 67 | B9CD7F77E97A3F9C65019256CF29D8D7 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; 68 | BDCA0EB97FE9F13BB693318821CE1BAD /* Pods-ScreenGuard-ScreenGuardTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScreenGuard-ScreenGuardTests-Info.plist"; sourceTree = ""; }; 69 | C8966E8B12223703B16BF3E1D302A000 /* Pods-ScreenGuard-ScreenGuardTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ScreenGuard-ScreenGuardTests-umbrella.h"; sourceTree = ""; }; 70 | C901C376290E32FE3F371333739E64D2 /* Pods_ScreenGuard_ScreenGuardTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ScreenGuard_ScreenGuardTests.framework; path = "Pods-ScreenGuard-ScreenGuardTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 71 | C9B92F1DF952AC3DA844D7EC6FF45C05 /* Pods-ScreenGuardDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ScreenGuardDemo-umbrella.h"; sourceTree = ""; }; 72 | D304C7DC214D5A90917178B40027E0BC /* ScreenGuard-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ScreenGuard-Info.plist"; sourceTree = ""; }; 73 | DE419CCEF59CEA02CB7AD70D56A84581 /* Pods-ScreenGuard-ScreenGuardTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScreenGuard-ScreenGuardTests.release.xcconfig"; sourceTree = ""; }; 74 | E903CEBE93AD58F4A0307E4FEF991D63 /* ScreenGuard-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ScreenGuard-prefix.pch"; sourceTree = ""; }; 75 | EBAA91B3A65541D627BC7CC02F837DFD /* Pods-ScreenGuard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScreenGuard.debug.xcconfig"; sourceTree = ""; }; 76 | EFA67EF2A61A52C025EC051D8BE75396 /* Pods-ScreenGuard.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ScreenGuard.modulemap"; sourceTree = ""; }; 77 | F4DAE5B5E65BA5064D0F7D2492B782E7 /* Pods-ScreenGuard-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ScreenGuard-umbrella.h"; sourceTree = ""; }; 78 | FE75077BF26024B20CE321A9BD70BDE4 /* Pods-ScreenGuard-ScreenGuardTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScreenGuard-ScreenGuardTests-acknowledgements.plist"; sourceTree = ""; }; 79 | /* End PBXFileReference section */ 80 | 81 | /* Begin PBXFrameworksBuildPhase section */ 82 | 193C123306786A0B2C83DAB7B4194CE4 /* Frameworks */ = { 83 | isa = PBXFrameworksBuildPhase; 84 | buildActionMask = 2147483647; 85 | files = ( 86 | 0FA8A460FBE37C69F4CAB8C49201EDAE /* Foundation.framework in Frameworks */, 87 | ); 88 | runOnlyForDeploymentPostprocessing = 0; 89 | }; 90 | 6CC39312D5B2541FE9CE90AACFD919A1 /* Frameworks */ = { 91 | isa = PBXFrameworksBuildPhase; 92 | buildActionMask = 2147483647; 93 | files = ( 94 | 594ADDB06C7A0783C40A50B55FB5ABD3 /* Foundation.framework in Frameworks */, 95 | ); 96 | runOnlyForDeploymentPostprocessing = 0; 97 | }; 98 | 931C0ED41BB662D50170FD10EE8AEBAB /* Frameworks */ = { 99 | isa = PBXFrameworksBuildPhase; 100 | buildActionMask = 2147483647; 101 | files = ( 102 | 8CE4B070520211BB8757CD416ADA9426 /* Foundation.framework in Frameworks */, 103 | ); 104 | runOnlyForDeploymentPostprocessing = 0; 105 | }; 106 | C896CBAB39FFFC22711CB85C8E6DA595 /* Frameworks */ = { 107 | isa = PBXFrameworksBuildPhase; 108 | buildActionMask = 2147483647; 109 | files = ( 110 | 67C735B4DC7199A0D82017AE30BA53E1 /* Foundation.framework in Frameworks */, 111 | ); 112 | runOnlyForDeploymentPostprocessing = 0; 113 | }; 114 | /* End PBXFrameworksBuildPhase section */ 115 | 116 | /* Begin PBXGroup section */ 117 | 1C75707AC6FA1521769DA68FE005D4C2 /* Pods-ScreenGuardDemo */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 818C673782D587BA6E2F082D512FFD21 /* Pods-ScreenGuardDemo.modulemap */, 121 | B8623E792FDBC15EC901D1825C11BD3E /* Pods-ScreenGuardDemo-acknowledgements.markdown */, 122 | 8FF99DE19776ED6E7AA49B0A62429A4F /* Pods-ScreenGuardDemo-acknowledgements.plist */, 123 | 568C378268363DDF126C058DC7C8B05F /* Pods-ScreenGuardDemo-dummy.m */, 124 | 0F244DBC3FA33037E1638C35C3055658 /* Pods-ScreenGuardDemo-frameworks.sh */, 125 | 7FB11B14850EE65C903E54DB75128467 /* Pods-ScreenGuardDemo-Info.plist */, 126 | C9B92F1DF952AC3DA844D7EC6FF45C05 /* Pods-ScreenGuardDemo-umbrella.h */, 127 | 87EABA9A4C118232A5825EC4AC990304 /* Pods-ScreenGuardDemo.debug.xcconfig */, 128 | 4AAD014261A76185FB0BC6E6B195DF3D /* Pods-ScreenGuardDemo.release.xcconfig */, 129 | ); 130 | name = "Pods-ScreenGuardDemo"; 131 | path = "Target Support Files/Pods-ScreenGuardDemo"; 132 | sourceTree = ""; 133 | }; 134 | 1E9C3E6BF030C1B00D239A1B4D084710 /* Pod */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | B9CD7F77E97A3F9C65019256CF29D8D7 /* README.md */, 138 | 920B3C8654CB5EE5026EA20800362B4E /* ScreenGuard.podspec */, 139 | ); 140 | name = Pod; 141 | sourceTree = ""; 142 | }; 143 | 314F8F72DE7B46EA5701B782623CAB50 /* ScreenGuard */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 5D5995C5759BB1530A580F66E334A7FF /* ScreenGuard.h */, 147 | 9852989C54EBC9631621945C29C07F5A /* ScreenGuardManager.swift */, 148 | 1E9C3E6BF030C1B00D239A1B4D084710 /* Pod */, 149 | F9E8B24EBD7B5111A371DD13A6AFEF09 /* Support Files */, 150 | ); 151 | name = ScreenGuard; 152 | path = ..; 153 | sourceTree = ""; 154 | }; 155 | 578452D2E740E91742655AC8F1636D1F /* iOS */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, 159 | ); 160 | name = iOS; 161 | sourceTree = ""; 162 | }; 163 | 5EDE59BBDF5BDCEF4878DCD1DDCA7826 /* Pods-ScreenGuard-ScreenGuardTests */ = { 164 | isa = PBXGroup; 165 | children = ( 166 | 2B84CCD0D194E32EA0DBF1D0D4B7C498 /* Pods-ScreenGuard-ScreenGuardTests.modulemap */, 167 | 1B880560E40A36485C6F4D64745F26FA /* Pods-ScreenGuard-ScreenGuardTests-acknowledgements.markdown */, 168 | FE75077BF26024B20CE321A9BD70BDE4 /* Pods-ScreenGuard-ScreenGuardTests-acknowledgements.plist */, 169 | 7BF2AE3833528C8E362CC1DE29A06369 /* Pods-ScreenGuard-ScreenGuardTests-dummy.m */, 170 | BDCA0EB97FE9F13BB693318821CE1BAD /* Pods-ScreenGuard-ScreenGuardTests-Info.plist */, 171 | C8966E8B12223703B16BF3E1D302A000 /* Pods-ScreenGuard-ScreenGuardTests-umbrella.h */, 172 | 01A370CE4AF753790233CE08C07B33D1 /* Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig */, 173 | DE419CCEF59CEA02CB7AD70D56A84581 /* Pods-ScreenGuard-ScreenGuardTests.release.xcconfig */, 174 | ); 175 | name = "Pods-ScreenGuard-ScreenGuardTests"; 176 | path = "Target Support Files/Pods-ScreenGuard-ScreenGuardTests"; 177 | sourceTree = ""; 178 | }; 179 | 6AE08020C181DC1380AC6EE885B87D16 /* Products */ = { 180 | isa = PBXGroup; 181 | children = ( 182 | 1D1DDD2C5596CEFC62914D6D1C96EBE0 /* Pods_ScreenGuard.framework */, 183 | C901C376290E32FE3F371333739E64D2 /* Pods_ScreenGuard_ScreenGuardTests.framework */, 184 | 48021FC26F7793ED253E28BB6FF9D573 /* Pods_ScreenGuardDemo.framework */, 185 | 7D4079D631FFA020D570E670D7893B0E /* ScreenGuard.framework */, 186 | ); 187 | name = Products; 188 | sourceTree = ""; 189 | }; 190 | C1F167BE5905CDA4DD05915BC9C23622 /* Pods-ScreenGuard */ = { 191 | isa = PBXGroup; 192 | children = ( 193 | EFA67EF2A61A52C025EC051D8BE75396 /* Pods-ScreenGuard.modulemap */, 194 | 8471F1B0AB38BCAF5A10AB439B88FD48 /* Pods-ScreenGuard-acknowledgements.markdown */, 195 | 7BE7F8F9678198543C45D2DED5669962 /* Pods-ScreenGuard-acknowledgements.plist */, 196 | 5B141570E246A58D455236D822A7D8EB /* Pods-ScreenGuard-dummy.m */, 197 | 008C02751C0E3A0D8ABB56912ED3BE67 /* Pods-ScreenGuard-Info.plist */, 198 | F4DAE5B5E65BA5064D0F7D2492B782E7 /* Pods-ScreenGuard-umbrella.h */, 199 | EBAA91B3A65541D627BC7CC02F837DFD /* Pods-ScreenGuard.debug.xcconfig */, 200 | 34B885A2BE30615F4AA11092860EA799 /* Pods-ScreenGuard.release.xcconfig */, 201 | ); 202 | name = "Pods-ScreenGuard"; 203 | path = "Target Support Files/Pods-ScreenGuard"; 204 | sourceTree = ""; 205 | }; 206 | CF1408CF629C7361332E53B88F7BD30C = { 207 | isa = PBXGroup; 208 | children = ( 209 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 210 | D982D671A2055C6926ADAE769D6AF4E6 /* Development Pods */, 211 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, 212 | 6AE08020C181DC1380AC6EE885B87D16 /* Products */, 213 | D5506DD0B633EDAD08C48F03F87D573D /* Targets Support Files */, 214 | ); 215 | sourceTree = ""; 216 | }; 217 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { 218 | isa = PBXGroup; 219 | children = ( 220 | 578452D2E740E91742655AC8F1636D1F /* iOS */, 221 | ); 222 | name = Frameworks; 223 | sourceTree = ""; 224 | }; 225 | D5506DD0B633EDAD08C48F03F87D573D /* Targets Support Files */ = { 226 | isa = PBXGroup; 227 | children = ( 228 | C1F167BE5905CDA4DD05915BC9C23622 /* Pods-ScreenGuard */, 229 | 5EDE59BBDF5BDCEF4878DCD1DDCA7826 /* Pods-ScreenGuard-ScreenGuardTests */, 230 | 1C75707AC6FA1521769DA68FE005D4C2 /* Pods-ScreenGuardDemo */, 231 | ); 232 | name = "Targets Support Files"; 233 | sourceTree = ""; 234 | }; 235 | D982D671A2055C6926ADAE769D6AF4E6 /* Development Pods */ = { 236 | isa = PBXGroup; 237 | children = ( 238 | 314F8F72DE7B46EA5701B782623CAB50 /* ScreenGuard */, 239 | ); 240 | name = "Development Pods"; 241 | sourceTree = ""; 242 | }; 243 | F9E8B24EBD7B5111A371DD13A6AFEF09 /* Support Files */ = { 244 | isa = PBXGroup; 245 | children = ( 246 | 448ECFFCE3F079413591A772E5B7B135 /* ScreenGuard.modulemap */, 247 | 0925D7BCEC3DCE9F982C84D20658D35F /* ScreenGuard-dummy.m */, 248 | D304C7DC214D5A90917178B40027E0BC /* ScreenGuard-Info.plist */, 249 | E903CEBE93AD58F4A0307E4FEF991D63 /* ScreenGuard-prefix.pch */, 250 | 6037B58E7BA2757974CDD339CF3AE71D /* ScreenGuard-umbrella.h */, 251 | 5BE7A5FDBD8EC78604A2FB7ACD6DAD14 /* ScreenGuard.debug.xcconfig */, 252 | 744AF3BF5B577FB303A26B595ADAFE4F /* ScreenGuard.release.xcconfig */, 253 | ); 254 | name = "Support Files"; 255 | path = "Pods/Target Support Files/ScreenGuard"; 256 | sourceTree = ""; 257 | }; 258 | /* End PBXGroup section */ 259 | 260 | /* Begin PBXHeadersBuildPhase section */ 261 | 1BB5E435E6561C482625901D20145E91 /* Headers */ = { 262 | isa = PBXHeadersBuildPhase; 263 | buildActionMask = 2147483647; 264 | files = ( 265 | F018560FE8732C06C032440B74E6A1F4 /* Pods-ScreenGuardDemo-umbrella.h in Headers */, 266 | ); 267 | runOnlyForDeploymentPostprocessing = 0; 268 | }; 269 | 3611B17F2AF6151FD8473BBD5F213A48 /* Headers */ = { 270 | isa = PBXHeadersBuildPhase; 271 | buildActionMask = 2147483647; 272 | files = ( 273 | A4FEBC3C5A5047360F04548973B02EEC /* Pods-ScreenGuard-umbrella.h in Headers */, 274 | ); 275 | runOnlyForDeploymentPostprocessing = 0; 276 | }; 277 | 4F4B1AD67219731DD3A725161FA1EF6C /* Headers */ = { 278 | isa = PBXHeadersBuildPhase; 279 | buildActionMask = 2147483647; 280 | files = ( 281 | 20211CFEFDB65E3E96641EEC05B7E50A /* Pods-ScreenGuard-ScreenGuardTests-umbrella.h in Headers */, 282 | ); 283 | runOnlyForDeploymentPostprocessing = 0; 284 | }; 285 | 7F7F98ECDDE9A74556C8BB6236292880 /* Headers */ = { 286 | isa = PBXHeadersBuildPhase; 287 | buildActionMask = 2147483647; 288 | files = ( 289 | 5369BC79F17AD7D4CB1ACF3982137E29 /* ScreenGuard-umbrella.h in Headers */, 290 | B0FFB1884B7E029919C7C5668ADE45FE /* ScreenGuard.h in Headers */, 291 | ); 292 | runOnlyForDeploymentPostprocessing = 0; 293 | }; 294 | /* End PBXHeadersBuildPhase section */ 295 | 296 | /* Begin PBXNativeTarget section */ 297 | 01DB57ADA99B3ECFB8339EA1E0DAE0E4 /* ScreenGuard */ = { 298 | isa = PBXNativeTarget; 299 | buildConfigurationList = 2EDB84624E8F84F180583AC6504509F8 /* Build configuration list for PBXNativeTarget "ScreenGuard" */; 300 | buildPhases = ( 301 | 7F7F98ECDDE9A74556C8BB6236292880 /* Headers */, 302 | 14BD4F60A0CD9B01F5CE10FD3114740F /* Sources */, 303 | C896CBAB39FFFC22711CB85C8E6DA595 /* Frameworks */, 304 | 114C4232CE4FCD0465B8F436C61A6699 /* Resources */, 305 | ); 306 | buildRules = ( 307 | ); 308 | dependencies = ( 309 | ); 310 | name = ScreenGuard; 311 | productName = ScreenGuard; 312 | productReference = 7D4079D631FFA020D570E670D7893B0E /* ScreenGuard.framework */; 313 | productType = "com.apple.product-type.framework"; 314 | }; 315 | 809E4CB789E68814B0685B5EF70B5FD5 /* Pods-ScreenGuardDemo */ = { 316 | isa = PBXNativeTarget; 317 | buildConfigurationList = 3592889E18296355EC904D9F5DADD7CD /* Build configuration list for PBXNativeTarget "Pods-ScreenGuardDemo" */; 318 | buildPhases = ( 319 | 1BB5E435E6561C482625901D20145E91 /* Headers */, 320 | 48E49D384B8CBAB2781A711556975A9B /* Sources */, 321 | 6CC39312D5B2541FE9CE90AACFD919A1 /* Frameworks */, 322 | 577CB88C98A295742D7C9B171E8A2547 /* Resources */, 323 | ); 324 | buildRules = ( 325 | ); 326 | dependencies = ( 327 | 8259554C5195B41ECBDA73809C5374E4 /* PBXTargetDependency */, 328 | ); 329 | name = "Pods-ScreenGuardDemo"; 330 | productName = "Pods-ScreenGuardDemo"; 331 | productReference = 48021FC26F7793ED253E28BB6FF9D573 /* Pods_ScreenGuardDemo.framework */; 332 | productType = "com.apple.product-type.framework"; 333 | }; 334 | A6C4ECB805BCD44FBC263B7EA4C99DEF /* Pods-ScreenGuard */ = { 335 | isa = PBXNativeTarget; 336 | buildConfigurationList = EEC437E9C2456F934A3845D1878C4E9C /* Build configuration list for PBXNativeTarget "Pods-ScreenGuard" */; 337 | buildPhases = ( 338 | 3611B17F2AF6151FD8473BBD5F213A48 /* Headers */, 339 | 59987650F163639CE89FE4629C377BC3 /* Sources */, 340 | 193C123306786A0B2C83DAB7B4194CE4 /* Frameworks */, 341 | BBC693E44D5686459081B076D4CC660C /* Resources */, 342 | ); 343 | buildRules = ( 344 | ); 345 | dependencies = ( 346 | ); 347 | name = "Pods-ScreenGuard"; 348 | productName = "Pods-ScreenGuard"; 349 | productReference = 1D1DDD2C5596CEFC62914D6D1C96EBE0 /* Pods_ScreenGuard.framework */; 350 | productType = "com.apple.product-type.framework"; 351 | }; 352 | DAE92312E2DCDE293CCBAEF187BE02A5 /* Pods-ScreenGuard-ScreenGuardTests */ = { 353 | isa = PBXNativeTarget; 354 | buildConfigurationList = 39311F14BFB347F62E01A58A0DA32161 /* Build configuration list for PBXNativeTarget "Pods-ScreenGuard-ScreenGuardTests" */; 355 | buildPhases = ( 356 | 4F4B1AD67219731DD3A725161FA1EF6C /* Headers */, 357 | BB653FF7617F93B1AE48BD78EE70FA8C /* Sources */, 358 | 931C0ED41BB662D50170FD10EE8AEBAB /* Frameworks */, 359 | A22813554F571011B177ADB9F404E4A4 /* Resources */, 360 | ); 361 | buildRules = ( 362 | ); 363 | dependencies = ( 364 | ); 365 | name = "Pods-ScreenGuard-ScreenGuardTests"; 366 | productName = "Pods-ScreenGuard-ScreenGuardTests"; 367 | productReference = C901C376290E32FE3F371333739E64D2 /* Pods_ScreenGuard_ScreenGuardTests.framework */; 368 | productType = "com.apple.product-type.framework"; 369 | }; 370 | /* End PBXNativeTarget section */ 371 | 372 | /* Begin PBXProject section */ 373 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = { 374 | isa = PBXProject; 375 | attributes = { 376 | LastSwiftUpdateCheck = 1100; 377 | LastUpgradeCheck = 1100; 378 | }; 379 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; 380 | compatibilityVersion = "Xcode 10.0"; 381 | developmentRegion = en; 382 | hasScannedForEncodings = 0; 383 | knownRegions = ( 384 | en, 385 | Base, 386 | ); 387 | mainGroup = CF1408CF629C7361332E53B88F7BD30C; 388 | productRefGroup = 6AE08020C181DC1380AC6EE885B87D16 /* Products */; 389 | projectDirPath = ""; 390 | projectRoot = ""; 391 | targets = ( 392 | A6C4ECB805BCD44FBC263B7EA4C99DEF /* Pods-ScreenGuard */, 393 | DAE92312E2DCDE293CCBAEF187BE02A5 /* Pods-ScreenGuard-ScreenGuardTests */, 394 | 809E4CB789E68814B0685B5EF70B5FD5 /* Pods-ScreenGuardDemo */, 395 | 01DB57ADA99B3ECFB8339EA1E0DAE0E4 /* ScreenGuard */, 396 | ); 397 | }; 398 | /* End PBXProject section */ 399 | 400 | /* Begin PBXResourcesBuildPhase section */ 401 | 114C4232CE4FCD0465B8F436C61A6699 /* Resources */ = { 402 | isa = PBXResourcesBuildPhase; 403 | buildActionMask = 2147483647; 404 | files = ( 405 | ); 406 | runOnlyForDeploymentPostprocessing = 0; 407 | }; 408 | 577CB88C98A295742D7C9B171E8A2547 /* Resources */ = { 409 | isa = PBXResourcesBuildPhase; 410 | buildActionMask = 2147483647; 411 | files = ( 412 | ); 413 | runOnlyForDeploymentPostprocessing = 0; 414 | }; 415 | A22813554F571011B177ADB9F404E4A4 /* Resources */ = { 416 | isa = PBXResourcesBuildPhase; 417 | buildActionMask = 2147483647; 418 | files = ( 419 | ); 420 | runOnlyForDeploymentPostprocessing = 0; 421 | }; 422 | BBC693E44D5686459081B076D4CC660C /* Resources */ = { 423 | isa = PBXResourcesBuildPhase; 424 | buildActionMask = 2147483647; 425 | files = ( 426 | ); 427 | runOnlyForDeploymentPostprocessing = 0; 428 | }; 429 | /* End PBXResourcesBuildPhase section */ 430 | 431 | /* Begin PBXSourcesBuildPhase section */ 432 | 14BD4F60A0CD9B01F5CE10FD3114740F /* Sources */ = { 433 | isa = PBXSourcesBuildPhase; 434 | buildActionMask = 2147483647; 435 | files = ( 436 | 80D9D4589CC46F28D4C818D500AE5BC7 /* ScreenGuard-dummy.m in Sources */, 437 | 1A045EE2A9A9529CE1A3AC955E23588B /* ScreenGuardManager.swift in Sources */, 438 | ); 439 | runOnlyForDeploymentPostprocessing = 0; 440 | }; 441 | 48E49D384B8CBAB2781A711556975A9B /* Sources */ = { 442 | isa = PBXSourcesBuildPhase; 443 | buildActionMask = 2147483647; 444 | files = ( 445 | 5D7FFF71DEF9125D33762C5FA2BD1594 /* Pods-ScreenGuardDemo-dummy.m in Sources */, 446 | ); 447 | runOnlyForDeploymentPostprocessing = 0; 448 | }; 449 | 59987650F163639CE89FE4629C377BC3 /* Sources */ = { 450 | isa = PBXSourcesBuildPhase; 451 | buildActionMask = 2147483647; 452 | files = ( 453 | F060940103F3EA9FC76AA0094E52A5B3 /* Pods-ScreenGuard-dummy.m in Sources */, 454 | ); 455 | runOnlyForDeploymentPostprocessing = 0; 456 | }; 457 | BB653FF7617F93B1AE48BD78EE70FA8C /* Sources */ = { 458 | isa = PBXSourcesBuildPhase; 459 | buildActionMask = 2147483647; 460 | files = ( 461 | FC5AB6249EB4F933A441768B60555B3E /* Pods-ScreenGuard-ScreenGuardTests-dummy.m in Sources */, 462 | ); 463 | runOnlyForDeploymentPostprocessing = 0; 464 | }; 465 | /* End PBXSourcesBuildPhase section */ 466 | 467 | /* Begin PBXTargetDependency section */ 468 | 8259554C5195B41ECBDA73809C5374E4 /* PBXTargetDependency */ = { 469 | isa = PBXTargetDependency; 470 | name = ScreenGuard; 471 | target = 01DB57ADA99B3ECFB8339EA1E0DAE0E4 /* ScreenGuard */; 472 | targetProxy = 97AC90DF78EF29F02EA153FD160C40AE /* PBXContainerItemProxy */; 473 | }; 474 | /* End PBXTargetDependency section */ 475 | 476 | /* Begin XCBuildConfiguration section */ 477 | 012BE73DFBD0C7158CF5EAA4E15AA4F9 /* Release */ = { 478 | isa = XCBuildConfiguration; 479 | baseConfigurationReference = 34B885A2BE30615F4AA11092860EA799 /* Pods-ScreenGuard.release.xcconfig */; 480 | buildSettings = { 481 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 482 | CLANG_ENABLE_OBJC_WEAK = NO; 483 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 484 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 485 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 486 | CURRENT_PROJECT_VERSION = 1; 487 | DEFINES_MODULE = YES; 488 | DYLIB_COMPATIBILITY_VERSION = 1; 489 | DYLIB_CURRENT_VERSION = 1; 490 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 491 | INFOPLIST_FILE = "Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard-Info.plist"; 492 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 493 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 494 | LD_RUNPATH_SEARCH_PATHS = ( 495 | "$(inherited)", 496 | "@executable_path/Frameworks", 497 | "@loader_path/Frameworks", 498 | ); 499 | MACH_O_TYPE = staticlib; 500 | MODULEMAP_FILE = "Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard.modulemap"; 501 | OTHER_LDFLAGS = ""; 502 | OTHER_LIBTOOLFLAGS = ""; 503 | PODS_ROOT = "$(SRCROOT)"; 504 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 505 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 506 | SDKROOT = iphoneos; 507 | SKIP_INSTALL = YES; 508 | TARGETED_DEVICE_FAMILY = "1,2"; 509 | VALIDATE_PRODUCT = YES; 510 | VERSIONING_SYSTEM = "apple-generic"; 511 | VERSION_INFO_PREFIX = ""; 512 | }; 513 | name = Release; 514 | }; 515 | 373600326BB2F02E5EE81B4F18FB3645 /* Release */ = { 516 | isa = XCBuildConfiguration; 517 | baseConfigurationReference = 744AF3BF5B577FB303A26B595ADAFE4F /* ScreenGuard.release.xcconfig */; 518 | buildSettings = { 519 | CLANG_ENABLE_OBJC_WEAK = NO; 520 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 521 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 522 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 523 | CURRENT_PROJECT_VERSION = 1; 524 | DEFINES_MODULE = YES; 525 | DYLIB_COMPATIBILITY_VERSION = 1; 526 | DYLIB_CURRENT_VERSION = 1; 527 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 528 | GCC_PREFIX_HEADER = "Target Support Files/ScreenGuard/ScreenGuard-prefix.pch"; 529 | INFOPLIST_FILE = "Target Support Files/ScreenGuard/ScreenGuard-Info.plist"; 530 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 531 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 532 | LD_RUNPATH_SEARCH_PATHS = ( 533 | "$(inherited)", 534 | "@executable_path/Frameworks", 535 | "@loader_path/Frameworks", 536 | ); 537 | MODULEMAP_FILE = "Target Support Files/ScreenGuard/ScreenGuard.modulemap"; 538 | PRODUCT_MODULE_NAME = ScreenGuard; 539 | PRODUCT_NAME = ScreenGuard; 540 | SDKROOT = iphoneos; 541 | SKIP_INSTALL = YES; 542 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 543 | SWIFT_VERSION = 5.0; 544 | TARGETED_DEVICE_FAMILY = "1,2"; 545 | VALIDATE_PRODUCT = YES; 546 | VERSIONING_SYSTEM = "apple-generic"; 547 | VERSION_INFO_PREFIX = ""; 548 | }; 549 | name = Release; 550 | }; 551 | 3F1C6C5E9241CC650F68AE55476F0FEE /* Debug */ = { 552 | isa = XCBuildConfiguration; 553 | baseConfigurationReference = 01A370CE4AF753790233CE08C07B33D1 /* Pods-ScreenGuard-ScreenGuardTests.debug.xcconfig */; 554 | buildSettings = { 555 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 556 | CLANG_ENABLE_OBJC_WEAK = NO; 557 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 558 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 559 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 560 | CURRENT_PROJECT_VERSION = 1; 561 | DEFINES_MODULE = YES; 562 | DYLIB_COMPATIBILITY_VERSION = 1; 563 | DYLIB_CURRENT_VERSION = 1; 564 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 565 | INFOPLIST_FILE = "Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests-Info.plist"; 566 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 567 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 568 | LD_RUNPATH_SEARCH_PATHS = ( 569 | "$(inherited)", 570 | "@executable_path/Frameworks", 571 | "@loader_path/Frameworks", 572 | ); 573 | MACH_O_TYPE = staticlib; 574 | MODULEMAP_FILE = "Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests.modulemap"; 575 | OTHER_LDFLAGS = ""; 576 | OTHER_LIBTOOLFLAGS = ""; 577 | PODS_ROOT = "$(SRCROOT)"; 578 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 579 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 580 | SDKROOT = iphoneos; 581 | SKIP_INSTALL = YES; 582 | TARGETED_DEVICE_FAMILY = "1,2"; 583 | VERSIONING_SYSTEM = "apple-generic"; 584 | VERSION_INFO_PREFIX = ""; 585 | }; 586 | name = Debug; 587 | }; 588 | 593F10BFFA94DAC7D6E17FB8A7F32D72 /* Release */ = { 589 | isa = XCBuildConfiguration; 590 | buildSettings = { 591 | ALWAYS_SEARCH_USER_PATHS = NO; 592 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 593 | CLANG_ANALYZER_NONNULL = YES; 594 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 595 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 596 | CLANG_CXX_LIBRARY = "libc++"; 597 | CLANG_ENABLE_MODULES = YES; 598 | CLANG_ENABLE_OBJC_ARC = YES; 599 | CLANG_ENABLE_OBJC_WEAK = YES; 600 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 601 | CLANG_WARN_BOOL_CONVERSION = YES; 602 | CLANG_WARN_COMMA = YES; 603 | CLANG_WARN_CONSTANT_CONVERSION = YES; 604 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 605 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 606 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 607 | CLANG_WARN_EMPTY_BODY = YES; 608 | CLANG_WARN_ENUM_CONVERSION = YES; 609 | CLANG_WARN_INFINITE_RECURSION = YES; 610 | CLANG_WARN_INT_CONVERSION = YES; 611 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 612 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 613 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 614 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 615 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 616 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 617 | CLANG_WARN_STRICT_PROTOTYPES = YES; 618 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 619 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 620 | CLANG_WARN_UNREACHABLE_CODE = YES; 621 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 622 | COPY_PHASE_STRIP = NO; 623 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 624 | ENABLE_NS_ASSERTIONS = NO; 625 | ENABLE_STRICT_OBJC_MSGSEND = YES; 626 | GCC_C_LANGUAGE_STANDARD = gnu11; 627 | GCC_NO_COMMON_BLOCKS = YES; 628 | GCC_PREPROCESSOR_DEFINITIONS = ( 629 | "POD_CONFIGURATION_RELEASE=1", 630 | "$(inherited)", 631 | ); 632 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 633 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 634 | GCC_WARN_UNDECLARED_SELECTOR = YES; 635 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 636 | GCC_WARN_UNUSED_FUNCTION = YES; 637 | GCC_WARN_UNUSED_VARIABLE = YES; 638 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 639 | MTL_ENABLE_DEBUG_INFO = NO; 640 | MTL_FAST_MATH = YES; 641 | PRODUCT_NAME = "$(TARGET_NAME)"; 642 | STRIP_INSTALLED_PRODUCT = NO; 643 | SWIFT_COMPILATION_MODE = wholemodule; 644 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 645 | SWIFT_VERSION = 5.0; 646 | SYMROOT = "${SRCROOT}/../build"; 647 | }; 648 | name = Release; 649 | }; 650 | A0374B8CF9A7D6A45F6D116D698D1C19 /* Debug */ = { 651 | isa = XCBuildConfiguration; 652 | buildSettings = { 653 | ALWAYS_SEARCH_USER_PATHS = NO; 654 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 655 | CLANG_ANALYZER_NONNULL = YES; 656 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 657 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 658 | CLANG_CXX_LIBRARY = "libc++"; 659 | CLANG_ENABLE_MODULES = YES; 660 | CLANG_ENABLE_OBJC_ARC = YES; 661 | CLANG_ENABLE_OBJC_WEAK = YES; 662 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 663 | CLANG_WARN_BOOL_CONVERSION = YES; 664 | CLANG_WARN_COMMA = YES; 665 | CLANG_WARN_CONSTANT_CONVERSION = YES; 666 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 667 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 668 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 669 | CLANG_WARN_EMPTY_BODY = YES; 670 | CLANG_WARN_ENUM_CONVERSION = YES; 671 | CLANG_WARN_INFINITE_RECURSION = YES; 672 | CLANG_WARN_INT_CONVERSION = YES; 673 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 674 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 675 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 676 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 677 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 678 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 679 | CLANG_WARN_STRICT_PROTOTYPES = YES; 680 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 681 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 682 | CLANG_WARN_UNREACHABLE_CODE = YES; 683 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 684 | COPY_PHASE_STRIP = NO; 685 | DEBUG_INFORMATION_FORMAT = dwarf; 686 | ENABLE_STRICT_OBJC_MSGSEND = YES; 687 | ENABLE_TESTABILITY = YES; 688 | GCC_C_LANGUAGE_STANDARD = gnu11; 689 | GCC_DYNAMIC_NO_PIC = NO; 690 | GCC_NO_COMMON_BLOCKS = YES; 691 | GCC_OPTIMIZATION_LEVEL = 0; 692 | GCC_PREPROCESSOR_DEFINITIONS = ( 693 | "POD_CONFIGURATION_DEBUG=1", 694 | "DEBUG=1", 695 | "$(inherited)", 696 | ); 697 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 698 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 699 | GCC_WARN_UNDECLARED_SELECTOR = YES; 700 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 701 | GCC_WARN_UNUSED_FUNCTION = YES; 702 | GCC_WARN_UNUSED_VARIABLE = YES; 703 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 704 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 705 | MTL_FAST_MATH = YES; 706 | ONLY_ACTIVE_ARCH = YES; 707 | PRODUCT_NAME = "$(TARGET_NAME)"; 708 | STRIP_INSTALLED_PRODUCT = NO; 709 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 710 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 711 | SWIFT_VERSION = 5.0; 712 | SYMROOT = "${SRCROOT}/../build"; 713 | }; 714 | name = Debug; 715 | }; 716 | B1AEBDB2D547078721037797C0466009 /* Release */ = { 717 | isa = XCBuildConfiguration; 718 | baseConfigurationReference = DE419CCEF59CEA02CB7AD70D56A84581 /* Pods-ScreenGuard-ScreenGuardTests.release.xcconfig */; 719 | buildSettings = { 720 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 721 | CLANG_ENABLE_OBJC_WEAK = NO; 722 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 723 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 724 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 725 | CURRENT_PROJECT_VERSION = 1; 726 | DEFINES_MODULE = YES; 727 | DYLIB_COMPATIBILITY_VERSION = 1; 728 | DYLIB_CURRENT_VERSION = 1; 729 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 730 | INFOPLIST_FILE = "Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests-Info.plist"; 731 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 732 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 733 | LD_RUNPATH_SEARCH_PATHS = ( 734 | "$(inherited)", 735 | "@executable_path/Frameworks", 736 | "@loader_path/Frameworks", 737 | ); 738 | MACH_O_TYPE = staticlib; 739 | MODULEMAP_FILE = "Target Support Files/Pods-ScreenGuard-ScreenGuardTests/Pods-ScreenGuard-ScreenGuardTests.modulemap"; 740 | OTHER_LDFLAGS = ""; 741 | OTHER_LIBTOOLFLAGS = ""; 742 | PODS_ROOT = "$(SRCROOT)"; 743 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 744 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 745 | SDKROOT = iphoneos; 746 | SKIP_INSTALL = YES; 747 | TARGETED_DEVICE_FAMILY = "1,2"; 748 | VALIDATE_PRODUCT = YES; 749 | VERSIONING_SYSTEM = "apple-generic"; 750 | VERSION_INFO_PREFIX = ""; 751 | }; 752 | name = Release; 753 | }; 754 | E137216F81C940047F6B2AC911031893 /* Debug */ = { 755 | isa = XCBuildConfiguration; 756 | baseConfigurationReference = EBAA91B3A65541D627BC7CC02F837DFD /* Pods-ScreenGuard.debug.xcconfig */; 757 | buildSettings = { 758 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 759 | CLANG_ENABLE_OBJC_WEAK = NO; 760 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 761 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 762 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 763 | CURRENT_PROJECT_VERSION = 1; 764 | DEFINES_MODULE = YES; 765 | DYLIB_COMPATIBILITY_VERSION = 1; 766 | DYLIB_CURRENT_VERSION = 1; 767 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 768 | INFOPLIST_FILE = "Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard-Info.plist"; 769 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 770 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 771 | LD_RUNPATH_SEARCH_PATHS = ( 772 | "$(inherited)", 773 | "@executable_path/Frameworks", 774 | "@loader_path/Frameworks", 775 | ); 776 | MACH_O_TYPE = staticlib; 777 | MODULEMAP_FILE = "Target Support Files/Pods-ScreenGuard/Pods-ScreenGuard.modulemap"; 778 | OTHER_LDFLAGS = ""; 779 | OTHER_LIBTOOLFLAGS = ""; 780 | PODS_ROOT = "$(SRCROOT)"; 781 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 782 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 783 | SDKROOT = iphoneos; 784 | SKIP_INSTALL = YES; 785 | TARGETED_DEVICE_FAMILY = "1,2"; 786 | VERSIONING_SYSTEM = "apple-generic"; 787 | VERSION_INFO_PREFIX = ""; 788 | }; 789 | name = Debug; 790 | }; 791 | E658D2E9AC608B10D29237B0B0058D63 /* Release */ = { 792 | isa = XCBuildConfiguration; 793 | baseConfigurationReference = 4AAD014261A76185FB0BC6E6B195DF3D /* Pods-ScreenGuardDemo.release.xcconfig */; 794 | buildSettings = { 795 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 796 | CLANG_ENABLE_OBJC_WEAK = NO; 797 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 798 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 799 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 800 | CURRENT_PROJECT_VERSION = 1; 801 | DEFINES_MODULE = YES; 802 | DYLIB_COMPATIBILITY_VERSION = 1; 803 | DYLIB_CURRENT_VERSION = 1; 804 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 805 | INFOPLIST_FILE = "Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-Info.plist"; 806 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 807 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 808 | LD_RUNPATH_SEARCH_PATHS = ( 809 | "$(inherited)", 810 | "@executable_path/Frameworks", 811 | "@loader_path/Frameworks", 812 | ); 813 | MACH_O_TYPE = staticlib; 814 | MODULEMAP_FILE = "Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo.modulemap"; 815 | OTHER_LDFLAGS = ""; 816 | OTHER_LIBTOOLFLAGS = ""; 817 | PODS_ROOT = "$(SRCROOT)"; 818 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 819 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 820 | SDKROOT = iphoneos; 821 | SKIP_INSTALL = YES; 822 | TARGETED_DEVICE_FAMILY = "1,2"; 823 | VALIDATE_PRODUCT = YES; 824 | VERSIONING_SYSTEM = "apple-generic"; 825 | VERSION_INFO_PREFIX = ""; 826 | }; 827 | name = Release; 828 | }; 829 | F4EF633C667C790AE7BF39FACA9C3942 /* Debug */ = { 830 | isa = XCBuildConfiguration; 831 | baseConfigurationReference = 87EABA9A4C118232A5825EC4AC990304 /* Pods-ScreenGuardDemo.debug.xcconfig */; 832 | buildSettings = { 833 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 834 | CLANG_ENABLE_OBJC_WEAK = NO; 835 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 836 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 837 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 838 | CURRENT_PROJECT_VERSION = 1; 839 | DEFINES_MODULE = YES; 840 | DYLIB_COMPATIBILITY_VERSION = 1; 841 | DYLIB_CURRENT_VERSION = 1; 842 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 843 | INFOPLIST_FILE = "Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo-Info.plist"; 844 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 845 | IPHONEOS_DEPLOYMENT_TARGET = 14.1; 846 | LD_RUNPATH_SEARCH_PATHS = ( 847 | "$(inherited)", 848 | "@executable_path/Frameworks", 849 | "@loader_path/Frameworks", 850 | ); 851 | MACH_O_TYPE = staticlib; 852 | MODULEMAP_FILE = "Target Support Files/Pods-ScreenGuardDemo/Pods-ScreenGuardDemo.modulemap"; 853 | OTHER_LDFLAGS = ""; 854 | OTHER_LIBTOOLFLAGS = ""; 855 | PODS_ROOT = "$(SRCROOT)"; 856 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 857 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 858 | SDKROOT = iphoneos; 859 | SKIP_INSTALL = YES; 860 | TARGETED_DEVICE_FAMILY = "1,2"; 861 | VERSIONING_SYSTEM = "apple-generic"; 862 | VERSION_INFO_PREFIX = ""; 863 | }; 864 | name = Debug; 865 | }; 866 | FDE3D4C264848DDEFC98709E6DB9536F /* Debug */ = { 867 | isa = XCBuildConfiguration; 868 | baseConfigurationReference = 5BE7A5FDBD8EC78604A2FB7ACD6DAD14 /* ScreenGuard.debug.xcconfig */; 869 | buildSettings = { 870 | CLANG_ENABLE_OBJC_WEAK = NO; 871 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 872 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 873 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 874 | CURRENT_PROJECT_VERSION = 1; 875 | DEFINES_MODULE = YES; 876 | DYLIB_COMPATIBILITY_VERSION = 1; 877 | DYLIB_CURRENT_VERSION = 1; 878 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 879 | GCC_PREFIX_HEADER = "Target Support Files/ScreenGuard/ScreenGuard-prefix.pch"; 880 | INFOPLIST_FILE = "Target Support Files/ScreenGuard/ScreenGuard-Info.plist"; 881 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 882 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 883 | LD_RUNPATH_SEARCH_PATHS = ( 884 | "$(inherited)", 885 | "@executable_path/Frameworks", 886 | "@loader_path/Frameworks", 887 | ); 888 | MODULEMAP_FILE = "Target Support Files/ScreenGuard/ScreenGuard.modulemap"; 889 | PRODUCT_MODULE_NAME = ScreenGuard; 890 | PRODUCT_NAME = ScreenGuard; 891 | SDKROOT = iphoneos; 892 | SKIP_INSTALL = YES; 893 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 894 | SWIFT_VERSION = 5.0; 895 | TARGETED_DEVICE_FAMILY = "1,2"; 896 | VERSIONING_SYSTEM = "apple-generic"; 897 | VERSION_INFO_PREFIX = ""; 898 | }; 899 | name = Debug; 900 | }; 901 | /* End XCBuildConfiguration section */ 902 | 903 | /* Begin XCConfigurationList section */ 904 | 2EDB84624E8F84F180583AC6504509F8 /* Build configuration list for PBXNativeTarget "ScreenGuard" */ = { 905 | isa = XCConfigurationList; 906 | buildConfigurations = ( 907 | FDE3D4C264848DDEFC98709E6DB9536F /* Debug */, 908 | 373600326BB2F02E5EE81B4F18FB3645 /* Release */, 909 | ); 910 | defaultConfigurationIsVisible = 0; 911 | defaultConfigurationName = Release; 912 | }; 913 | 3592889E18296355EC904D9F5DADD7CD /* Build configuration list for PBXNativeTarget "Pods-ScreenGuardDemo" */ = { 914 | isa = XCConfigurationList; 915 | buildConfigurations = ( 916 | F4EF633C667C790AE7BF39FACA9C3942 /* Debug */, 917 | E658D2E9AC608B10D29237B0B0058D63 /* Release */, 918 | ); 919 | defaultConfigurationIsVisible = 0; 920 | defaultConfigurationName = Release; 921 | }; 922 | 39311F14BFB347F62E01A58A0DA32161 /* Build configuration list for PBXNativeTarget "Pods-ScreenGuard-ScreenGuardTests" */ = { 923 | isa = XCConfigurationList; 924 | buildConfigurations = ( 925 | 3F1C6C5E9241CC650F68AE55476F0FEE /* Debug */, 926 | B1AEBDB2D547078721037797C0466009 /* Release */, 927 | ); 928 | defaultConfigurationIsVisible = 0; 929 | defaultConfigurationName = Release; 930 | }; 931 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { 932 | isa = XCConfigurationList; 933 | buildConfigurations = ( 934 | A0374B8CF9A7D6A45F6D116D698D1C19 /* Debug */, 935 | 593F10BFFA94DAC7D6E17FB8A7F32D72 /* Release */, 936 | ); 937 | defaultConfigurationIsVisible = 0; 938 | defaultConfigurationName = Release; 939 | }; 940 | EEC437E9C2456F934A3845D1878C4E9C /* Build configuration list for PBXNativeTarget "Pods-ScreenGuard" */ = { 941 | isa = XCConfigurationList; 942 | buildConfigurations = ( 943 | E137216F81C940047F6B2AC911031893 /* Debug */, 944 | 012BE73DFBD0C7158CF5EAA4E15AA4F9 /* Release */, 945 | ); 946 | defaultConfigurationIsVisible = 0; 947 | defaultConfigurationName = Release; 948 | }; 949 | /* End XCConfigurationList section */ 950 | }; 951 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; 952 | } 953 | --------------------------------------------------------------------------------