prongbang/screenprotectorkit
> Secure your iOS app's sensitive data by preventing screenshots and protecting background app snapshots with ease.
β¨ Features
- πΈ Screenshot Prevention - Detect and handle screenshot attempts
- πΌοΈ Custom Background Protection - Replace app preview with custom content
- π¨ Multiple Protection Styles:
- Blur effect - Custom image - Solid color
- π¬ Screen Recording Detection - Know when screen is being recorded
- π Easy Integration - Simple API with clear documentation
- π¦ Multiple Installation Options - CocoaPods and Swift Package Manager support
π¦ Installation
CocoaPods
Add to your Podfile:
pod 'ScreenProtectorKit'Then run:
pod installSwift Package Manager
Add to your Package.swift:
let package = Package(
dependencies: [
.package(url: "https://github.com/prongbang/ScreenProtectorKit.git", from: "1.5.1"),
],
)Or via Xcode:
- File β Add Packages...
- Enter package URL:
https://github.com/prongbang/ScreenProtectorKit.git - Select version:
1.5.1or later
π Quick Start
Basic Setup
Do not attach or manipulate UIKit views/layers for screenshot protection. Use a separate overlay window or a SwiftUI-based view instead. This avoids conflicts with the systemβs CALayer layout and prevents crashes.
- AppDelegate
import ScreenProtectorKit
class AppDelegate: UIApplicationDelegate {
private lazy var screenProtectorKit = {
return ScreenProtectorKit(window: window)
}()
}π± Protection Methods
1. Screenshot Prevention
Detect and respond to screenshot attempts:
override func applicationDidBecomeActive(_ application: UIApplication) {
screenProtectorKit.enabledPreventScreenshot()
}
override func applicationWillResignActive(_ application: UIApplication) {
screenProtectorKit.disablePreventScreenshot()
}2. Blur Background Protection
Apply blur effect when app goes to background:
override func applicationDidBecomeActive(_ application: UIApplication) {
screenProtectorKit.disableBlurScreen()
}
override func applicationWillResignActive(_ application: UIApplication) {
screenProtectorKit.enabledBlurScreen()
}3. Image Background Protection
Show custom image when app is in background:
override func applicationDidBecomeActive(_ application: UIApplication) {
screenProtectorKit.disableImageScreen()
}
override func applicationWillResignActive(_ application: UIApplication) {
screenProtectorKit.enabledImageScreen(named: "LaunchImage")
}4. Color Background Protection
Display solid color when app is in background:
override func applicationDidBecomeActive(_ application: UIApplication) {
screenProtectorKit.disableColorScreen()
}
override func applicationWillResignActive(_ application: UIApplication) {
screenProtectorKit.enabledColorScreen(hexColor: "#ffffff")
}5. Screen Recording Detection
Check if screen is being recorded:
let isRecording = screenProtectorKit.screenIsRecording()
if isRecording {
// Handle screen recording scenario
}π‘ Usage Examples
Complete Implementation
import ScreenProtectorKit
class AppDelegate: UIApplicationDelegate {
private lazy var screenProtectorKit = {
return ScreenProtectorKit(window: window)
}()
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Handle screen recording if needed
if screenProtectorKit.screenIsRecording() {
showRecordingWarning()
}
return true
}
override func applicationDidBecomeActive(_ application: UIApplication) {
// Remove protection overlay
screenProtectorKit.disableBlurScreen()
}
override func applicationWillResignActive(_ application: UIApplication) {
// Add protection overlay
screenProtectorKit.enabledBlurScreen()
}
private func showRecordingWarning() {
// Show alert to user about screen recording
}
}β οΈ Important Notes
- Screenshot prevention on iOS works by detecting attempts, not blocking them entirely
- Background protection helps prevent data leaks in app switcher
- Screen recording detection only indicates if recording is in progress
- Test thoroughly across different iOS versions and devices
π§ Requirements
- iOS 11.0+
- Swift 5.5+
- Xcode 13.0+
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
π License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
π Support the Project
If you find this package helpful, please consider supporting it:
[["Buy Me A Coffee"]](https://www.buymeacoffee.com/prongbang)
π Links
Package Metadata
Repository: prongbang/screenprotectorkit
Default branch: main
README: README.md