앱에 동작을 추가했는데 Siri가 콘텐츠를 찾지 못하나요?
빠른 해결: 먼저 검색할 콘텐츠를 App 엔티티로 모델링하고, 실행할 동작은 목적에 맞는 App Intents 또는 App 스키마로 노출하세요. 화면 맥락이나 앱 간 전달은 실제 요구가 있을 때 더하고, 구현 완료와 Siri 경험 검증은 별도로 진행해야 합니다.
적합: 앱의 콘텐츠 검색과 음성 동작을 연결하려는 iOS 개발자, 기존 App Intents의 범위를 점검하려는 독립 개발자에게 적합합니다.
적합: 배포 및 테스트 환경에서 Siri 경험까지 확인하려는 소규모 팀에도 유용합니다.
마지막 업데이트: 2026년 10월 4일. Apple Developer의 App Intents 업데이트 기록과 WWDC26 App 스키마 세션을 기준으로 확인했습니다. API 가용성, 시스템 요구 사항과 동작은 대상 운영체제 버전의 최신 문서에서 다시 확인해야 합니다.
00App Intents와 Siri AI 연동은 콘텐츠 검색부터 설계합니다
Siri AI가 앱 안의 항목을 찾길 원한다면, 먼저 그 항목이 사용자에게 어떤 이름으로 알려져 있고 어떤 기준으로 식별되는지 정의합니다. 화면에 콘텐츠가 표시된다는 사실만으로는 시스템이 그 콘텐츠의 종류와 검색 방법을 알 수 없습니다.
App 엔티티는 앱의 실제 항목을 시스템에 표현하는 모델입니다. 사용자에게 보여줄 이름과 식별 정보, 검색에 필요한 속성이 앱 안의 데이터와 일치해야 합니다. 예를 들어 프로젝트 목록에서 항목을 부를 때 제목이 중복될 수 있다면, 제목만으로 항목을 잘못 선택하지 않도록 구분 속성과 조회 결과를 점검해야 합니다.
콘텐츠가 미리 검색 가능하도록 준비될 수 있는지 확인한 뒤 Spotlight 색인 방식을 평가하세요. Apple의 Spotlight에서 App 엔티티를 사용할 수 있게 하는 안내는 색인 대상과 엔티티 연결을 설명합니다. 반대로 로그인 상태나 최신 서버 데이터에 따라 결과가 달라진다면, 색인만으로 해결하려 하지 말고 쿼리 방식이 요구에 맞는지 검토해야 합니다. 색인 등록은 Siri가 특정 질문에 반드시 답한다는 보장이 아닙니다.
01앱 콘텐츠 질문과 동작 호출을 분리합니다
검색할 콘텐츠와 실행할 동작은 설계 목적이 다릅니다. 엔티티와 쿼리는 “어떤 항목인가”를 설명하고, App Intent는 “무엇을 실행할 것인가”를 정의합니다. Apple의 App Intents 개요는 앱 동작을 시스템 경험에 연결하는 기본 구조를 설명합니다.
Siri가 앱 데이터에 관해 답하길 기대한다면, 동작을 공개하는 것만으로 충분하다고 가정하지 마세요. 사용자가 실제로 물을 법한 질문을 몇 가지 정하고, 질문마다 어떤 속성으로 항목을 찾으며 어떤 결과를 반환하는지 확인해야 합니다. 검색 결과가 비어 있을 때, 항목이 여러 개일 때, 접근 권한이 없을 때도 각각 결과를 검증합니다.
동작 호출은 사용자의 목표를 입력값, 실행 결과, 실패 조건으로 나누는 것부터 시작합니다. 예를 들어 항목을 보관하는 동작이라면 대상 항목을 어떻게 특정할지, 이미 보관된 경우 어떤 결과를 돌려줄지, 권한이 없을 때 어떻게 실패할지 정합니다. 삭제나 메시지 전송처럼 부작용이 큰 동작에는 확인 절차와 취소 경로를 설계합니다.
일반 App Intent와 App 스키마는 같은 역할이 아닙니다. App Intent로 앱의 동작을 정의하되, 그 동작을 Apple이 정리한 표준 동작 의미와 연결할 수 있는 경우에는 App 스키마 문서에서 지원 범위를 확인하세요. 모든 사용자 정의 동작에 적합한 스키마가 있다고 전제하지 말고, WWDC26의 App 스키마 설명에 나온 사례와 대상 시스템 지원 조건을 함께 대조합니다.
02화면 맥락과 앱 간 전달은 별도 요구로 판단합니다
사용자가 화면의 내용을 가리키며 요청하는 흐름과 앱이 구조화된 정보를 시스템에 제공하는 흐름을 구분해야 합니다. Siri가 화면에 보이는 텍스트를 읽을 수 있는 상황이 있더라도, 그것이 앱 데이터 모델이나 현재 선택 항목을 정확히 전달한다는 뜻은 아닙니다.
현재 화면의 특정 항목을 가리키는 요청이 핵심이라면, 화면 또는 사용자 활동과 관련 엔티티를 연결할 필요가 있는지 평가합니다. Apple의 Siri와 Apple Intelligence에 맥락 단서를 제공하는 문서를 참고해, 현재 목록 항목을 구별하는 정보가 실제 요청에 필요한지 살펴보세요. 테스트할 때는 선택된 항목이 바뀌거나 화면이 비어 있는 경우에도 잘못된 대상에 동작하지 않는지 확인합니다.
앱 간 콘텐츠 전달은 보내는 쪽과 받는 쪽을 따로 설계합니다. 전달할 데이터 표현, 받는 앱의 해석, 받은 내용을 이용해 실행할 동작을 각각 정의하세요. Apple의 IntentValueRepresentation 문서는 값 표현과 전달 관련 설계에 참고할 수 있습니다. 시스템을 통한 전달은 한 앱이 임의로 다른 앱의 동작을 직접 실행하는 것과 다릅니다. 데이터 접근 권한과 수신 실패에 대한 대체 흐름도 확인해야 합니다.
제품에 앱 간 콘텐츠 이동 요구가 없다면 전달 기능을 먼저 추가할 이유가 없습니다. 최소한의 샘플 콘텐츠로 보내는 값과 받은 값을 대조하고, 필수 데이터가 빠졌거나 수신 대상이 지원되지 않을 때 사용자에게 어떤 결과를 돌려줄지 시험합니다.
03자주 묻는 질문
Siri AI가 앱 안의 콘텐츠를 찾게 하려면 무엇부터 해야 하나요?
먼저 사용자가 실제로 찾는 항목이 명확한 이름과 식별자를 갖는지 확인합니다. 항목을 App 엔티티로 표현하고, 검색에 필요한 속성과 항목을 돌려주는 쿼리를 함께 설계해야 합니다. 미리 인덱싱할 수 있는 콘텐츠라면 Spotlight 연동 방식을 검토하고, 자주 바뀌거나 권한에 따라 달라지는 데이터라면 다른 조회 경로가 맞는지 비교합니다. 구현 후에는 예상 질문별로 반환 결과를 확인합니다.
App 엔티티와 App 스키마는 어떤 기준으로 선택하나요?
앱에 저장된 콘텐츠를 식별하고 검색 결과로 제공하려면 App 엔티티와 조회 구조를 먼저 검토합니다. 앱의 기능을 시스템이 이해할 수 있는 동작으로 노출하려면 App Intent가 필요하며, 지원되는 표준 동작과 의미를 연결할 수 있을 때 App 스키마를 살펴봅니다. 두 방식은 서로 대체하는 선택지가 아닙니다. 콘텐츠 검색과 동작 실행을 각각 따로 설계한 뒤 실제 사용 흐름에서 함께 확인해야 합니다.
Siri AI가 앱 동작을 실행하도록 연결하려면 어떻게 하나요?
사용자 목표를 구체적인 동작으로 나누고, 각 동작의 입력값과 성공 결과, 실패 조건을 먼저 정의합니다. 그런 다음 일반 App Intent로 실행 경로를 제공하고, 해당 동작에 맞는 App 스키마가 있는지 Apple 문서에서 확인합니다. 삭제나 전송처럼 되돌리기 어렵거나 외부에 영향을 주는 동작은 필요한 확인 단계를 둡니다. 화면에 표시된 결과뿐 아니라 취소와 권한 거부도 시험해야 합니다.
App Intents를 붙인 뒤 Siri 경험은 어떻게 검증하나요?
코드 수준에서는 App Intents 테스트 도구로 입력과 결과, 오류 처리를 확인합니다. 시스템 통합 단계에서는 해당 기능이 목표 운영체제와 Xcode 환경에서 동작하는지 검증하고, 마지막으로 실제 기기에서 Siri를 통한 자연스러운 요청 흐름을 시험합니다. 빌드 성공이나 단위 테스트 통과만으로 Siri가 콘텐츠를 찾아 정확히 처리한다고 단정할 수는 없습니다. 기기, 언어, 권한, 콘텐츠 상태를 바꿔 결과를 기록합니다.
04배포 전에 시나리오별로 테스트를 나눕니다
개발 중 검증과 Siri를 통한 최종 경험 검증은 증거가 다릅니다. Apple은 App Intents 구현 검증 안내와 App Intents 코드 테스트 자료를 제공합니다. Xcode 버전과 운영체제 요구 사항은 Xcode 시스템 요구 사항에서 목표 환경에 맞춰 확인합니다.
- [ ] 사용자가 실제로 찾을 콘텐츠와 그 콘텐츠를 부르는 표현을 정리합니다.
- [ ] 엔티티 식별 정보, 표시 이름, 검색 속성이 실제 데이터와 일치하는지 확인합니다.
- [ ] 미리 색인할 수 있는 콘텐츠와 요청 시 조회할 콘텐츠를 구분합니다.
- [ ] 각 App Intent의 입력값, 성공 결과, 실패 조건과 취소 동작을 시험합니다.
- [ ] 부작용이 있는 동작에 대상 확인과 권한 검사를 적용합니다.
- [ ] 화면 맥락이 필요한 요청에서 현재 항목이 바뀌거나 없는 경우를 확인합니다.
- [ ] 앱 간 전달이 필요하다면 최소 데이터로 송신, 수신, 권한과 실패 대체 경로를 검증합니다.
- [ ] 코드 테스트, 시스템 통합 확인, 실제 기기의 Siri 요청을 각각 기록합니다.
| 시나리오 | 먼저 설계할 요소 | 확인할 결과 |
|---|---|---|
| 앱 콘텐츠 검색 | App 엔티티, 식별 정보, 검색 속성, 쿼리 | 질문별 항목 반환, 중복 및 빈 결과 처리 |
| 앱 동작 호출 | App Intent, 입력값, 실패 조건 | 대상 지정, 성공 결과, 취소와 권한 거부 |
| 화면 맥락 활용 | 현재 화면 또는 사용자 활동과 엔티티의 연결 | 화면의 대상 항목과 실행 대상의 일치 |
| 앱 간 전달 | 전달 값 표현, 수신 해석, 후속 동작 | 값의 정확성, 권한 경계, 수신 실패 처리 |
| 검증 단계 | 확인하는 내용 | 통과로 단정할 수 없는 것 |
|---|---|---|
| 코드 테스트 | 입력 처리, 결과 생성, 오류와 경계 조건 | Siri가 실제 요청에서 기능을 발견하는지 |
| 시스템 통합 | 목표 Xcode 및 운영체제 환경에서의 연결 | 모든 기기와 사용자 설정에서 같은 동작이 나오는지 |
| 실제 Siri 경험 | 자연어 요청, 콘텐츠 선택, 확인 및 실패 흐름 | 이후 버전에서도 결과가 항상 동일한지 |
05로컬 Mac과 원격 Mac을 검증 단계에 맞춰 선택합니다
원격 빌드가 성공해도 대상 기기에서 Siri가 콘텐츠를 찾고 의도한 항목을 선택하는지까지 확인한 것은 아닙니다. 로컬 Mac은 기기 연결과 반복적인 화면 확인이 편리하지만, 기존 작업 공간과 빌드 작업이 자원을 공유할 수 있습니다. Windows나 Linux만 사용하는 환경은 Xcode 기반 검증을 대신할 수 없으며, 별도의 Mac을 구매하면 간헐적인 실험에도 장비 관리가 따라옵니다.
반대로 장기간 같은 장비에서 상시 빌드하고 물리 기기 연결을 직접 유지해야 한다면, 본인 소유의 Mac이 더 적합할 수 있습니다. App Intents 구현은 끝났지만 별도 macOS 빌드 환경이 일시적으로 필요하다면, 원격 Mac을 선택지로 비교할 수 있습니다. NUKCLOUD의 요금과 이용 조건을 확인할 때는 필요한 운영체제와 작업 방식이 실제 검증 목적에 맞는지 먼저 살펴보세요. 원격 환경 접속이나 이용 절차가 불분명하다면 NUKCLOUD의 도움말 안내에서 관련 정보를 확인할 수 있습니다. App Intents의 코드 검증과 실제 Siri 경험 확인을 구분해야 한다는 점은 어떤 빌드 환경을 쓰더라도 달라지지 않습니다.