[swift] ios DeepLink(Universal Link) 앱간 이동시 종료된 앱 처리 방법 feat. 4시간 삽질함

Hoseon Chu·2022년 12월 15일
0

swift

목록 보기
5/5

결론부터 말하자면 4시간 삽질의 결과 해결되었다. 아래와 같은 방법으로...

앱간 이동시 apple 에서 나와 있는 가이드 대로 진행하였으나 처리가 되지 않았다.

참고 링크 : https://developer.apple.com/documentation/xcode/supporting-universal-links-in-your-app

나는 앱을 Scenedelegate로 사용하도록 하였고
보내는 앱은 Flutter 3.0 버전으로 작성된 앱에서
deeplink를 활용하는 부분이였기에

설마 Flutter -> Swift간의 버그 인가 했는데
삽질결과 그것은 아닌거 같았다.

guard 문에서 connectionOptions.userActivities는 작동하지 않았다.

잘 조사해보니 connectionOptions는

A data object containing information about the reasons why UIKit created the scene.

UIkit에서 scene을 생성할때(앱이 열릴때) 어떠한 요청에 의해서 만들어 졌는지에 대한 정보들을 담고 있다고 알려져 있다.

예를 들어 Handoff 요청, open URL 요청, CloudKit 공유 수락, 알림에 응답, 등등

나는 Flutter에서 lauchUrl(scheme: "", host: "");
로 열었기에

connectionOptions.urlContexts를 사용하였더니 정상적으로 해결되었다.

이로써 4시간 삽질을 종료한다.

profile
개발자입니다

0개의 댓글