반응형
iOS11 녹화기능 감지
- iOS11의 녹화기능에 대해 보안이 필요한 경우가 생겼으며 별도의 DRM을 사용하지 않고 간단한 방법으로 감지하는 차선책을 찾게 되었습니다.
- 아래 방법 및 설명이 정확한 정보가 아닐수도 있으며 개인적인 테스트 이후에 작성하는 글입니다.
- 제가 작성하는 글보다 더 좋은 방법이 있을수도 있으니 참고해주시면 감사하겠습니다.
방법
- isCaptured 를 사용하여 메소드 이용
- AppDelegate 에서 앱의 상태에 따라 실행되는 delegate 함수 사용
감지 Method
iOS 버전 체크 후에 isCaptured가 true 인 경우에 그에 대한 정보를 서버에 전송하거나 기타 작업을 진행합니다.
func recordingLog(){
if #available(iOS 11.0, *) {
let isCaptured = UIScreen.main.isCaptured
if(isCaptured){
// 녹화에 대한 사용자 정보 서버 전송 OR 기타 작업
}
} else {
// Fallback on earlier versions
}
delegate 함수 적용
코드 아래의 실행되는 예시를 고려하여 적절한 delegate 함수에 사용하였습니다.
func applicationWillResignActive(_ application: UIApplication) {
recordingLog()
}
func applicationDidBecomeActive(_ application: UIApplication) {
recordingLog()
}
Delegate 함수 관련
- application
- applicationWillResignActive
- applicationDidEnterBackground
- applicationWillEnterForeground
- applicationDidBecomeActive
- applicationWillTerminate
실행되는 예시
- 앱 최초 실행할때 1 , 5 약간 텀
- 앱 백그라운드 나갈때 2 , 3 약간 텀
- 앱 백그라운드에서 다시 들어올 때 4, 5 동시
- 앱 제어센터 올릴 때 2
- 앱 제어센터 내릴 때 5
- 멀티태스킹 볼 때(다른앱 같이보는것) 2
- 멀티태스킹 끌 때(다른앱 같이보는것) 5
- 앱안에서 폰 화면 끌 때 2 ,3 동시
- 앱안에서 폰 화면 킬 때 4, 5 동시
반응형
'Swift' 카테고리의 다른 글
여러 타입을 저장하기 위한 enum 만들기 (0) | 2018.11.02 |
---|---|
do-try-catch 유닛테스트 하기 위한 코드 (0) | 2018.11.02 |
인증서 p12 -> pem 변환 방법 (바이두 - 푸시서비스에 사용) (0) | 2018.11.02 |
iOS 배포 이미지 준비 (0) | 2018.11.02 |
Swift one IBAction for multiple buttons (0) | 2018.11.02 |