Starting and Terminating Tasks During Development

Panther·2021년 8월 16일
0
post-custom-banner

https://developer.apple.com/documentation/backgroundtasks/starting_and_terminating_tasks_during_development

"Use the debugger during development to start tasks and to terminate them before completion."

작업을 시작하기 위해, 그리고 컴플리션 전에 작업을 종료시키기 위해 개발 중 디버거를 사용합니다.

Overview

백그라운드 작업으로 스케줄링한 시간과 시스템이 작업 실행을 위해 앱을 launch하는 시점 사이의 지연은 몇 시간이 될 수 있습니다. 앱을 개발하는 동안 두 가지 private 함수를 사용해서 작업을 시작하고 작업의 종료를 빠르게 강제할 수 있습니다. 선택한 타임라인에 따라 달라지도록 구현합니다. 디버그 함수는 기기에서만 작동합니다.

Important
private 함수는 개발 중에만 사용해야 합니다. 이러한 함수에 대한 참조를 포함하는 앱을 앱 스토어에 제출하면 거절됩니다.

Launch a Task

작업을 launch하려면 아래처럼 해야 합니다.

  1. submit(_:)이 성공적으로 호출되는 이후에 실행할 코드를 브레이크포인트 설정합니다.
  2. 브레이크포인트가 앱을 일시정지하기까지 기기에서 앱을 실행합니다.
  3. 디버거에서 아래에 보이는 라인을 실행합니다. 원하는 작업의 아이덴티파이어를 TASK_IDENTIFIER로 대체하면서 합니다.
  4. 앱을 재개합니다. 시스템은 원하는 작업에 대해 launch 핸들러를 호출합니다.
e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"TASK_IDENTIFIER"]

Force Early Termination of a Task

작업을 강제로 종료하려면 아래처럼 합니다.

  1. 원하는 작업에 브레이크포인트를 설정합니다.
  2. 이전 섹션에서 설명한 것처럼 디버거를 사용해서 작업을 launch합니다.
  3. 브레이크포인트에서 앱이 일시정지되기까지 기다립니다.
  4. 디버거에서 아래에 보이는 라인을 실행합니다. 원하는 작업의 아이덴티파이어를 TASK_IDENTIFIER로 대체하면서 합니다.
  5. 앱을 재개합니다. 시스템은 원하는 작업에 대해 만료 핸들러를 호출합니다.
e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateExpirationForTaskWithIdentifier:@"TASK_IDENTIFIER"]

See Also


Essentials

BGTaskScheduler

백그라운드에서 앱을 launch 하는 작업 요청에 대해 스케줄링하기 위한 클래스입니다.

https://developer.apple.com/documentation/backgroundtasks/bgtaskscheduler
https://velog.io/@panther222128/BGTaskScheduler

Choosing Background Strategies for Your App

앱에서 백그라운드 런타임 스케줄링을 위한 최선의 메소드를 선택합니다.

https://developer.apple.com/documentation/backgroundtasks/choosing_background_strategies_for_your_app
https://velog.io/@panther222128/Choosing-Background-Strategies-for-Your-App


post-custom-banner

0개의 댓글