본문 바로가기
개발/swift

스크린샷 캡쳐시 컨텐츠 내용 안보이게 숨기기 (제스쳐 동작 가능 버전)

by 꼬마상어 2022. 1. 25.
반응형

예~~전부터 스크린샷 캡쳐시 컨텐츠 내용이 보이지 않게 처리해달라는 요구사항이 있었는데, 

앱에서 감지할 수 있는 이벤트라고는 찍고 나서!(Did) 밖에 없었다.

UIApplication.userDidTakeScreenshotNotification

 

그래서 현재 개발중인 앱에서는 스크린샷을 하고나서 안내 알럿을 띄워주고 있었는데,

최근에 시간이 남아서(사실은 다른거 미루고..ㅎ) 생각이나서 검색해보니까 

야매로 방법이 있었다.

 

iOS 13버전대부터 스크린샷이랑 스크린레코드시 isSecureTextEntry 가 true면 정보가 노출되지 않는데,

그 기능을 약간 야매로 돌려돌려 만들었다.

 

Prevent screen capture in an iOS app

I need to prevent screen capture by users of my app, for security reasons. The contents I display are confidential and should not be copied onto the device. I saw one answer on Stack Overflow, bu...

stackoverflow.com

https://stackoverflow.com/questions/18680028/prevent-screen-capture-in-an-ios-app

--

근데 중요한건 우리는 스크롤과 같은 제스쳐를 필요로 하는 뷰에다가 추가를 하려고 했기때문에 살짝 삽질이 필요했다. (위에 처럼 하면 제스쳐가 먹지 않음)

self.scrollView.addSubview(self.screenshotField)
self.screenshotField.centerYAnchor.constraint(equalTo: self.scrollView.centerYAnchor).isActive = true
self.screenshotField.centerXAnchor.constraint(equalTo: self.scrollView.centerXAnchor).isActive = true
self.scrollView.layer.superlayer?.insertSublayer(self.screenshotField.layer, at: 0)
self.screenshotField.layer.sublayers?.last?.addSublayer(self.scrollView.layer)

레이어를 addSublayer를 하면.. append기때문에 뒤쪽에 하나씩 붙는다.

근데 그렇게 되게 되면 제스쳐가 안먹기때문에, insertSublayer로 바꿔야 함!

 

 

반응형

'개발 > swift' 카테고리의 다른 글

UISwitch 버그  (0) 2021.06.09
NSPredicate 요상한 버그..  (0) 2021.06.02
앱 상태 복원 (UIViewControllerRestoration)  (3) 2020.05.04
하이브리드 앱 개선하기..(노력 1)  (0) 2018.11.12
@ attribute, @ symbol  (0) 2018.06.07

댓글