본문 바로가기
iOS, Swift 개발

iOS Spotlight와 앱 보관함에서 영문 앱을 한글로 검색되게 하는 방법

by Nin J 2026. 9. 9.

iOS 앱 이름은 그대로 두고 한글 이름으로 검색되게 하는 방법

iOS 앱을 개발하다 보면 앱의 표시 이름은 영문으로 유지해야 하지만, 사용자는 한글 이름으로 앱을 찾는 경우가 있습니다. 예를 들어 홈 화면에 표시되는 앱 이름이 TMAP이라면 개발자 입장에서는 TMAP이라는 브랜드명을 그대로 유지하고 싶지만, 국내 사용자는 자연스럽게 티맵이라고 검색할 가능성이 높습니다.

저도 실제 기기에서 앱을 검색하다가 이 부분을 확인하게 됐습니다. 앱 보관함에서 TMAP을 입력하면 당연히 앱이 검색됐지만, 한글로 티맵을 입력했을 때는 원하는 결과가 나오지 않는 경우가 있었습니다. 처음에는 App Store Connect에 등록하는 앱 이름이나 키워드를 수정해야 하는 문제라고 생각했습니다.

하지만 App Store Connect의 키워드는 앱스토어 안에서 사용되는 검색 정보입니다. 이미 설치된 앱을 아이폰의 홈 화면 검색이나 앱 보관함에서 찾는 것과는 별개의 영역입니다. 그렇다고 Bundle display name티맵으로 바꾸면 사용자가 보는 앱 이름까지 변경되기 때문에 제가 원하던 해결 방법은 아니었습니다.

여러 방법을 확인하고 실제 기기에 적용해 본 결과, Info.plistAccessibility Bundle Name 항목을 이용해 볼 수 있었습니다.

최종적으로 원하는 결과

제가 원했던 동작은 다음과 같았습니다.

  • 홈 화면 아이콘 아래에는 기존 이름인 TMAP이 그대로 표시될 것
  • 앱 보관함에서도 앱 이름은 TMAP으로 표시될 것
  • 사용자가 TMAP을 검색하면 기존처럼 앱이 나올 것
  • 사용자가 한글로 티맵을 검색해도 같은 앱이 나올 것
  • 앱의 Bundle Identifier나 실제 제품명에는 영향을 주지 않을 것

앱 이름 자체를 한글로 변경하는 것이 아니라, 시스템이 앱을 읽거나 인식할 때 사용할 수 있는 별도의 이름을 추가하는 것이 핵심이었습니다.

Accessibility Bundle Name이란?

Xcode의 Info.plist 편집 화면에는 사람이 이해하기 쉬운 이름으로 Accessibility Bundle Name이라고 표시됩니다. 이 항목의 실제 키 이름은 CFBundleSpokenName입니다.

두 이름이 서로 다른 설정처럼 보일 수 있지만 같은 항목입니다.

Xcode 화면에서 보이는 이름 실제 Info.plist 키
Accessibility Bundle Name CFBundleSpokenName

Apple 문서상 CFBundleSpokenName의 본래 목적은 음성 합성이나 접근성 기능에서 앱 이름을 어떻게 읽을지 지정하는 것입니다. 앱 이름이 영문 약자이거나 시스템이 자연스럽게 발음하기 어려운 경우, 별도의 읽기 이름을 지정할 수 있습니다.

예를 들어 앱의 표시 이름이 TMAP이어도 Accessibility Bundle Name에 티맵을 넣으면 화면에 표시되는 이름을 건드리지 않고 시스템이 참고할 수 있는 한글 이름을 제공할 수 있습니다. 일부 iOS 버전에서는 이 값이 Spotlight와 앱 보관함의 앱 검색에도 반영되는 것을 확인할 수 있습니다.

다만 이 부분은 구분해서 이해해야 합니다. Apple은 CFBundleSpokenName을 공식적으로 Spotlight 검색 키워드 전용 기능이라고 설명하지 않습니다. 원래 용도는 앱 이름의 음성 표현입니다. 따라서 검색에 활용되는 동작은 실제 기기와 iOS 버전에서 반드시 테스트하는 것이 좋습니다.

Xcode에서 설정하는 방법

설정 과정은 간단합니다.

  1. Xcode에서 프로젝트를 엽니다.
  2. Project Navigator에서 프로젝트를 선택합니다.
  3. TARGETS에서 실제 iOS 앱 타깃을 선택합니다.
  4. 상단의 Info 탭으로 이동합니다.
  5. Custom iOS Target Properties 목록에서 + 버튼을 누릅니다.
  6. Accessibility Bundle Name을 찾아 추가합니다.
  7. Type은 String, Value는 티맵으로 입력합니다.

설정값은 다음과 같습니다.

설정
Key Accessibility Bundle Name
실제 키 CFBundleSpokenName
Type String
Value 티맵

Xcode 목록에서 CFBundleSpokenName이 보이지 않아도 당황할 필요가 없습니다. Xcode가 실제 키 대신 설명형 이름인 Accessibility Bundle Name으로 표시하기 때문입니다.

Info.plist 소스에서 확인하기

Xcode의 속성 목록 화면이 아니라 원본 XML로 확인하고 싶다면 Info.plist를 선택한 다음 Open As > Source Code로 열어 보면 됩니다.

정상적으로 추가됐다면 다음 내용이 들어 있습니다.

<key>CFBundleSpokenName</key>
<string>티맵</string>

프로젝트가 Xcode의 자동 생성 Info.plist 방식을 사용한다면 파일이 Project Navigator에 바로 보이지 않을 수도 있습니다. 이 경우에도 앱 타깃의 Info 탭에 Accessibility Bundle Name을 추가하면 최종 빌드에 생성되는 Info.plist에 값이 포함됩니다.

중요한 점은 다음처럼 CFBundleDisplayName을 수정하는 것이 아니라는 점입니다.

<key>CFBundleDisplayName</key>
<string>TMAP</string>

<key>CFBundleSpokenName</key>
<string>티맵</string>

CFBundleDisplayName은 사용자 화면에 표시되는 이름이고, CFBundleSpokenName은 시스템이 음성이나 접근성 측면에서 사용할 대체 이름입니다. 두 값을 분리하면 표시 이름을 유지하면서 한글 이름을 추가할 수 있습니다.

실제 기기에서 테스트한 과정

처음에는 Xcode에서 값을 추가한 뒤 기존 앱 위에 바로 덮어 설치했습니다. 그런데 앱 보관함에서 티맵을 검색해도 곧바로 결과가 바뀌지 않았습니다. 설정이 잘못됐다고 생각했지만, 빌드된 앱의 Info.plist를 확인해 보면 CFBundleSpokenName 값은 정상적으로 포함돼 있었습니다.

이런 경우에는 iOS가 기존 앱 정보를 검색 색인에 보관하고 있을 가능성이 있습니다. 다음 순서로 다시 테스트했습니다.

  1. 아이폰에서 테스트 중인 앱을 삭제합니다.
  2. Xcode에서 Product > Clean Build Folder를 실행합니다.
  3. 실제 기기에 앱을 다시 설치합니다.
  4. 설치 직후보다는 잠시 기다린 뒤 검색합니다.
  5. 홈 화면을 아래로 내려 Spotlight에서 티맵을 검색합니다.
  6. 앱 보관함의 검색창에서도 같은 검색어를 입력합니다.

앱을 삭제하고 다시 설치하니 기존 이름인 TMAP은 그대로 표시되면서 티맵으로도 앱을 찾을 수 있었습니다. 단순히 앱 이름을 변경한 것이 아니기 때문에 홈 화면의 아이콘 이름이나 앱 보관함에 표시되는 이름에는 변화가 없었습니다.

기기에서 바로 반영되지 않는다면 아이폰을 한 번 재시동해 보는 것도 방법입니다. Spotlight와 앱 보관함 검색 결과는 앱 설치 정보가 색인된 뒤 나타나므로, 코드처럼 실행 즉시 결과가 바뀐다고 생각하면 테스트 과정에서 혼란스러울 수 있습니다.

여러 키워드를 넣을 수 있을까?

여기서 주의할 점이 있습니다. CFBundleSpokenName의 타입은 String입니다. Spotlight SEO 키워드 목록처럼 여러 단어를 배열로 넣는 항목이 아닙니다.

따라서 다음과 같이 쉼표로 많은 검색어를 한꺼번에 넣는 방식은 권장하지 않습니다.

<key>CFBundleSpokenName</key>
<string>티맵,내비게이션,길찾기,지도</string>

이렇게 입력하면 시스템은 전체 문자열을 앱의 읽기 이름으로 처리할 수 있습니다. 접근성 기능에서 앱 이름을 부자연스럽게 읽을 가능성도 있습니다.

대표적인 한글 이름 하나를 지정하는 편이 자연스럽습니다.

<key>CFBundleSpokenName</key>
<string>티맵</string>

또는 공식 서비스 명칭을 조금 더 분명하게 전달하려면 다음처럼 설정할 수도 있습니다.

<key>CFBundleSpokenName</key>
<string>에스케이 티맵</string>

제가 테스트하는 상황에서는 사용자가 실제로 가장 많이 입력할 가능성이 높은 티맵을 단독으로 넣는 쪽이 목적에 더 잘 맞았습니다. 다만 VoiceOver나 Siri에서 앱 이름을 읽었을 때도 자연스러운지 함께 확인하는 것이 좋습니다.

언어별로 다르게 설정하기

앱이 여러 언어를 지원한다면 InfoPlist.strings를 이용해 CFBundleSpokenName을 언어별로 지정할 수 있습니다.

한국어용 InfoPlist.strings에는 다음처럼 입력합니다.

"CFBundleSpokenName" = "티맵";

영어용 InfoPlist.strings에는 다음처럼 입력할 수 있습니다.

"CFBundleSpokenName" = "TMAP";

InfoPlist.strings 파일을 선택한 뒤 File Inspector의 Localization에서 Korean과 English가 각각 추가됐는지 확인해야 합니다. 또한 앱 타깃의 Target Membership이 체크돼 있는지도 확인하는 것이 좋습니다.

한국 사용자를 중심으로 서비스하고 단일 값만 필요하다면 Info.plist에 티맵을 바로 입력해도 됩니다. 그러나 여러 국가에 배포하는 앱이라면 언어별 파일로 분리하는 편이 관리하기 쉽습니다.

CFBundleDisplayName과의 차이

이 작업을 하면서 가장 헷갈렸던 부분은 CFBundleDisplayName, CFBundleName, CFBundleSpokenName의 차이였습니다.

역할 사용자에게 표시되는 앱 이름 변경 여부
CFBundleDisplayName 홈 화면과 앱 보관함에 표시되는 앱 이름 변경됨
CFBundleName 번들의 짧은 이름, Display Name이 없을 때 사용될 수 있음 경우에 따라 영향 있음
CFBundleSpokenName 음성·접근성에서 사용할 앱의 대체 이름 일반적인 표시 이름은 변경되지 않음

앱 이름을 TMAP에서 티맵으로 바꾸려는 목적이라면 CFBundleDisplayName을 수정하면 됩니다. 반대로 화면에 표시되는 이름은 그대로 두고 시스템이 티맵이라는 이름도 참고하게 만들고 싶다면 CFBundleSpokenName이 목적에 더 가깝습니다.

App Store Connect 키워드와는 다른 설정

App Store Connect에는 앱 검색을 위한 키워드 입력란이 있습니다. 하지만 해당 키워드는 사용자가 앱스토어에서 아직 설치하지 않은 앱을 찾을 때 사용하는 메타데이터입니다.

반면 이번에 다루는 내용은 이미 아이폰에 설치된 앱을 홈 화면 Spotlight나 앱 보관함에서 찾는 문제입니다.

정리하면 다음과 같습니다.

검색 위치 관련 설정
App Store 검색 App Store Connect의 앱 이름, 부제, 키워드
홈 화면 Spotlight에서 앱 검색 설치된 앱의 번들 정보와 시스템 검색 색인
앱 내부 콘텐츠를 Spotlight에 노출 Core Spotlight의 CSSearchableItem
앱 이름의 음성·접근성 대체 이름 CFBundleSpokenName

Core Spotlight의 keywords는 프로그램, 방송, 메뉴처럼 앱 내부 콘텐츠를 검색 결과에 노출할 때 사용하는 기능입니다. 앱 자체의 표시 이름에 한글 별칭을 하나 추가하려는 문제와는 차이가 있습니다.

적용할 때 확인할 사항

설정을 추가했는데 검색 결과가 나오지 않는다면 다음 내용을 확인해 볼 수 있습니다.

  • 앱 타깃의 Info 탭에 추가했는지 확인합니다.
  • 테스트 타깃이나 Extension의 Info.plist에 잘못 추가하지 않았는지 확인합니다.
  • Key가 CFBundleSpokenName으로 생성됐는지 확인합니다.
  • Type이 String인지 확인합니다.
  • 기존 앱을 삭제하고 다시 설치합니다.
  • 검색 색인이 갱신될 시간을 조금 둡니다.
  • 아이폰의 설정 > Siri 및 검색에서 해당 앱의 검색 노출 설정이 꺼져 있지 않은지 확인합니다.
  • 한국어 현지화를 사용했다면 InfoPlist.strings의 Target Membership을 확인합니다.
  • 실제 배포 빌드에서도 값이 포함되는지 Archive 결과의 Info.plist를 확인합니다.

특히 여러 타깃을 가진 프로젝트에서는 엉뚱한 타깃의 Info.plist를 수정하기 쉽습니다. 개발용, 운영용 타깃이 나뉘어 있다면 Build Settings에서 각 타깃이 실제로 어떤 Info.plist 설정을 사용하는지 확인하는 것이 안전합니다.

사용하면서 느낀 점

설정 자체는 한 줄이지만 이 항목을 찾기까지는 생각보다 시간이 걸렸습니다. 검색 키워드라고 하면 자연스럽게 App Store Connect나 Core Spotlight부터 떠올리게 되는데, 이번 문제는 앱스토어 노출도 아니고 앱 내부 콘텐츠 검색도 아니었습니다.

또한 Xcode 화면에는 Accessibility Bundle Name이라고 표시되고 실제 키는 CFBundleSpokenName이기 때문에 서로 다른 기능으로 오해하기 쉬웠습니다. 저도 처음에는 CFBundleSpokenName을 직접 검색했는데 목록에서 찾을 수 없어 지원하지 않는 항목이라고 생각했습니다. 하지만 Xcode가 사람이 읽기 쉬운 이름으로 바꿔 보여주고 있었을 뿐이었습니다.

결과적으로 기존 브랜드명과 화면 표시를 유지하면서 국내 사용자가 익숙한 한글 이름으로 앱을 찾도록 보완할 수 있었습니다. 다만 이 값은 본래 검색 키워드용 API가 아니라 접근성과 음성 표현을 위한 값입니다. 따라서 앱의 핵심 검색 기능처럼 전적으로 의존하기보다는, 배포 대상 iOS 버전별로 실제 기기 테스트를 거친 뒤 적용하는 것이 좋습니다.

마무리

홈 화면에 표시되는 앱 이름은 영문으로 유지하면서 한글 이름으로도 검색되게 하고 싶다면, Xcode의 앱 타깃 Info 탭에서 Accessibility Bundle Name을 추가해 볼 수 있습니다.

TMAP을 기준으로 한 최종 설정은 다음과 같습니다.

<key>CFBundleDisplayName</key>
<string>TMAP</string>

<key>CFBundleSpokenName</key>
<string>티맵</string>

이 설정에서 사용자에게 표시되는 앱 이름은 계속 TMAP이고, 티맵은 시스템이 앱을 읽거나 인식할 때 참고하는 이름으로 사용됩니다.

마지막으로 꼭 기억할 점은 Accessibility Bundle NameCFBundleSpokenName이 같은 항목이라는 것입니다. Xcode에서는 전자의 이름으로 보이고, Info.plist 소스에서는 후자의 키로 저장됩니다. 설정 후에는 시뮬레이터만 확인하기보다 실제 아이폰에서 기존 앱을 삭제하고 다시 설치한 뒤, 홈 화면 검색과 앱 보관함 검색을 각각 테스트하는 것이 가장 정확합니다.