- 앱에 로그인 하는 것은 귀찮고 어려운 작업이다.
- 그래서 사파리나 앱에서, 키체인에 저장된 계정 정보를 자동으로 채워준다.
- iCloud 키체인은 강력한 보안성을 가지고 있다. -> 자세한 건 공유된 문서 참조
- 애플이 아무것도 안해도 휴리스틱하게 추정하긴 하지만, 완벽한 경험을 위해서는 설정해야 될 것 들이 있다.
- 과정
- 퀵타입 바 나타나게 하기
- UITextField와 UITextView, UITextInput 을 채택한 필드는 모두 autofill의 대상이된다.
- 설정이 없을 경우 휴리스틱하게 찾아낸다.
- UITextInputTraits 프로토콜의 textContentType 프로퍼티의 가능한 타입으로 username과 password가 추가 됐다. 이걸 설정하면 정확하게 찾아낼 수 있다.
- Username은 email과 조합할 수 있다.
- 값이 제대로 채워졌는지 확인하기
- First Responder를 시스템이 바꾸게 된다 -> 심지어 이걸 막아도
- didChange 델리게이트나 노티피케이션을 통해서 바뀐 걸 체크해서 버튼 비활성화 등을 체크하라
- 실제 내용은 text등으로 확인 하라
- 올바른 계정이 나타나게 하기 - 앱과 웹사이트 주소의 연결
- iOS는 이 앱이 어떤 웹사이트와 연결되는지 추측하지 않는다.
- 유니버셜 링크가 있다면, 이걸 자동으로 연관시켜줄 수 있다.
- 하지만 유니버셜 링크가 없어도 가능하다
- 앱의 인증서에 연관된 웹사이트 주소를 담는다.(Associated Domains) -> 개발자 사이트에서도 연관 도메인 기능 활성화 필수
- 웹 서버에서는 자신과 연관된 앱 리스트를 json으로 보내준다.(apple-app-site-association 을 잘 알려진 디렉토리에 넣어준다.) - swcd 프로그램을 통해 검증할 수 있다.
{
“webcredentials”: {
“apps” = [“app-identifier”]
}
}
// <https://www.example.com/.well-known/apple-app-site-association.json>
// <https://www.example.com/apple-app-site-association.json>
- 거기에 해당 앱이 있다면 이제 인식할 수 있다.
- 서드 파티 서비스로 로그인 하기
- SFSafariViewController를 사용하라 - 샌드박스처럼 동작한다.