Computer >> 컴퓨터 >  >> 프로그래밍 >> iOS

iOS 기기의 전화번호를 프로그래밍 방식으로 가져오는 방법이 있을까?

iOS 전화번호를 코드로 가져올 수 있을까?

결론부터 말하자면, 프로그래밍 방식으로 iOS 기기의 전화번호를 가져오는 것은 사실상 불가능합니다. Apple은 개발자가 기기의 전화번호에 접근하는 것을 공식적으로 지원하지 않으며, 이를 권장하지도 않습니다.

비공개 API 사용 시 앱이 거절됩니다

비공개(Private) API를 활용하면 기술적으로 전화번호를 읽어올 수는 있습니다. 하지만 Apple의 심사 정책상 비공개 API를 사용한 앱은 App Store 심사에서 반드시 거절(reject)됩니다. 따라서 정식 배포를 목표로 하는 앱에서는 이 방법을 사용할 수 없습니다.

Apple 개발 가이드라인의 근거

Apple의 개발자 가이드라인에 따르면, 앱은 자체 번들(self-contained) 안에서 동작해야 하며, 지정된 컨테이너 영역 밖의 데이터를 읽거나 쓰는 것이 금지되어 있습니다. 기기의 전화번호는 앱의 샌드박스 컨테이너 내부에 존재하지 않는 정보이기 때문에, 정상적인 경로로는 접근 자체가 차단되어 있습니다.

Apple 개발자 포럼의 공식 입장

Apple 개발자 포럼에서도 이와 관련해 명확한 입장을 밝힌 바 있습니다.

사용하는 프로그래밍 언어가 무엇이든, Apple은 기기와 연결된 전화번호를 개발자에게 제공하지 않습니다.

대안은 무엇인가?

전화번호가 꼭 필요하다면 다음과 같은 우회 방법을 고려할 수 있습니다.

  • 사용자 직접 입력: 사용자가 전화번호를 직접 입력하도록 UI를 제공하고, SMS 인증으로 유효성을 검증합니다.
  • SMS 인증 서비스 활용: Firebase Phone Auth 등의 서비스를 통해 번호 소유 여부를 확인할 수 있습니다.

요약하면, iOS에서는 정식 API로 기기 전화번호를 가져올 수 없으며, 비공개 API 사용은 App Store 거절로 이어지므로 사용자 입력과 인증 기반의 대안을 사용하는 것이 올바른 접근입니다.