iOS 개인 정보 경고
중요
Visual Studio App Center는 2025년 3월 31일에 사용 중지될 예정입니다. Visual Studio App Center가 완전히 사용 중지될 때까지 계속 사용할 수 있지만 마이그레이션을 고려할 수 있는 몇 가지 권장 대안이 있습니다.
참고
이 문서에서는 애플리케이션에서 를 사용하여 만든 UIAlertViewController
경고를 다루지 않습니다. 적절한 테스트 쿼리를 통해 직접 처리할 수 있습니다. 대신 이 문서는 표준 UI 쿼리가 처리할 수 없는 iOS에서 생성된 경고에 관한 것입니다.
iOS 애플리케이션이 실행되는 동안 애플리케이션이 Apple 푸시 알림, 위치 서비스, 연락처, 디바이스 마이크 또는 카메라 등을 활성화하거나 액세스하여 권한을 요청하려고 할 때 운영 체제에서 사용자에게 경고를 여러 번 표시할 수 있습니다. 이러한 팝업을 경고, 시스템 경고, 시스템 팝업, 스프링보드 경고 또는 개인 정보 대화 상자라고도 합니다. 이러한 요청이 수락되면 해당 수락 상태가 유지되므로 사용자는 일반적으로 디바이스에서 해당 앱에 대한 해당 경고를 다시 볼 수 없습니다.
앱이 처음 설치되면 이러한 경고를 해결해야 합니다. 로컬로 실행되는 테스트는 요청이 이전에 수락된 경우 경고를 찾지 못할 수 있습니다.
테스트가 App Center 테스트에서 실행되면 기본 디바이스에서 실행되고 애플리케이션이 보호된 서비스 또는 기능에 액세스하려고 할 때 경고가 트리거됩니다.
App Center 테스트에서 이러한 경고를 처리하는 것은 테스트 프레임워크에 따라 다릅니다.
Xamarin.UITest 및 Calabash iOS
Xamarin.UITest 및 Calabash는 알고 있는 경고를 자동으로 수락합니다. 알려진 경고는 텍스트 일치를 기반으로 합니다. SpringBoard 경고가 해제되지 않는 경우 DeviceAgent.json 파일에서 경고 제목을 검색합니다.
$ cd DeviceAgent.iOS
$ git pull
$ find Server/Resources.xcassets -name "alerts.json" -exec grep -q "to access your location" {} \; -print
Server/Resources.xcassets/springboard-alerts/springboard-alerts-en_GB.dataset/alerts.json
Server/Resources.xcassets/springboard-alerts/springboard-alerts-en_AU.dataset/alerts.json
Server/Resources.xcassets/springboard-alerts/springboard-alerts-en.dataset/alerts.json
애플리케이션에 해당 파일에 없는 경고가 있는 경우 으로 이동합니다 . > 추가하려면 App Center 웹 사이트의 지원에 문의하세요. 이미 해당 파일에 있는 경우 App Center 테스트 지원에 버그로 보고되어야 하는 디바이스 구성에 문제가 있을 수 있습니다.
참고
Xamarin.UITest API에서 확인할 DismissSpringboardAlerts()
수 있습니다. DismissSpringboardAlerts()
는 Xamarin.UITest가 내부적으로 사용하는 메서드입니다. 일반적으로 사용자 테스트 코드에서 를 호출 DismissSpringboardAlerts()
할 필요가 없습니다.
XCUITest 및 UIAutomation
Xamarin.UITest 및 Calabash는 디바이스와 상호 작용하기 위해 두 개의 Apple 테스트 프레임워크 중 하나를 사용합니다.
- 로컬에서 테스트를 실행하는 경우 Apple Test Framework는 XCUITest입니다.
- iOS 10 이상에서 App Center Test에서 테스트를 실행하는 경우 Apple Test Framework는 XCUITest입니다.
- iOS 버전이 iOS 10보다 오래된 App Center 테스트에서 테스트를 실행하는 경우 Apple의 UIAutomation을 사용하는 것입니다.
UIAutomation을 사용하여 테스트하려면 Apple의 UIAutomation 프레임워크가 테스트 중인 애플리케이션을 제어하기 위해 첫 번째 경고가 발생하기 전에 애플리케이션이 지연되어야 합니다. 애플리케이션 및 테스트에 문제가 있는 경우 개인 정보 경고 관리: 위치 서비스, APNS, 연락처를 참조하세요.
Calabash iOS
Calabash는 Xamarin.UITest와 같은 경고를 자동으로 처리하는 것 외에도 경고를 수동으로 관리할 수 있습니다.
- 경고가 표시되는지 검사 해당 특성을 쿼리하려면 QueryRoutes.m을 참조
/springboard-alert
하세요. - 지정된 제목으로 단추를 터치하여 경고를 해제하려면 GestureRoutes.m에서 를 참조
/set-dismiss-springboard-alert
하세요. - 알려진 경고를 해제하고 자동 해제를 전환하려면 MetaRoutes.m에서 및
/set-dismiss-springboard-alerts-automatically
를 참조/dismiss-springboard-alerts
하세요. 가 호출되고/dismiss-spring-board-alerts
알 수 없는 경고가 발생하면 예외가 발생합니다.
이 Calabash iOS 코드 조각은 다음 메서드를 사용하는 방법을 보여 줍니다.
...
# Turn off automatic alert dismissal
device_agent.dismiss_springboard_alerts_manually!
# Do whatever triggers the alert, then wait for the alert
# that may or may not appear.
begin
device_agent.wait_for_springboard_alert(10) # timeout is optional
device_agent.dismiss_springboard_alert("OK")
rescue RuntimeError
# Alert didn't appear, so there's nothing to do
end
...
# Turn automatic dismiss back on
dismiss_springboard_alerts_automatically!
Appium
경고에 대한 Appium 설명서를 참조하세요.
XCUITest
모니터링 UI 중단에 대한 Apple 설명서를 참조하세요.
도움말 보기
오른쪽 위 모서리에 있는 ? 아이콘을 통해 언제든지 문의할 수 있습니다. 24/7 지원을 제공하지는 않지만 가능한 한 빨리 회신할 예정입니다.
테스트 실행에 대한 도움말을 보려면 해당 테스트 실행으로 이동하여 브라우저에서 URL을 복사하여 지원 대화에 붙여넣습니다. 테스트 실행 URL은 와 같습니다 https://appcenter.ms/orgs/OrgName/apps/App-Name/test/runs/77a1c67e-2cfb-4bbd-a75a-eb2b4fd0a747.