방법: 응용프로그램 기능 확인

2012-02-09

Windows Phone 응용프로그램의 경우 네트워킹, 위치 센서, 카메라와 같이 응용프로그램에 필요한 기능을 지정해야 합니다. 정확하게 기능을 지정하지 않을 경우 응용프로그램이 제대로 작동하지 않거나 Windows Phone 마켓플레이스에 대한 전송 프로세스에서 실패할 수 있습니다. 응용프로그램 매니페스트 파일(WMAppManifest.xml)에 응용프로그램 기능을 지정합니다. Windows Phone OS 7.1 또는 Windows Phone OS 7.0 을 대상으로 하느냐에 따라 마켓플레이스 테스트 키트 또는 Windows Phone 기능 검색 도구를 사용하여 응용프로그램 기능을 검색할 수 있습니다. 이 항목은 응용프로그램의 기능을 결정하는 방법에 대해 설명합니다.

이 절차를 완료하려면 Windows Phone SDK 가 있어야 합니다. 자세한 내용은 Windows Phone SDK 설치를 참조하십시오.

응용프로그램 기능이란 네트워킹, 위치 센서, 카메라와 같이 Windows Phone 응용프로그램에 필요한 기능입니다. 응용프로그램 매니페스트 파일(WMAppManifest.xml)에 응용프로그램 기능을 지정합니다. 기본적으로, Windows Phone 프로젝트를 만들면 Windows Phone 에서 지원되는 휴대폰 기능을 모두 보여 주는 목록이 응용프로그램 매니페스트 파일에 포함됩니다. 기능 및 해당 설명의 전체 목록은 Windows Phone의 응용프로그램 매니페스트 파일을 참조하십시오.

Windows Phone 은 사용자가 응용프로그램 내의 특정 기능을 선택해야 하는 기능 기반 보안 모델을 제공합니다. 특정 시나리오의 경우 응용프로그램에서 호출되는 Windows Phone API는 실행 시 특정 보안 권한이나 사용자 공개를 요구할 수 있습니다. Windows Phone 운영 체제가 응용프로그램 매니페스트 파일에 나열된 기능에 따라 응용프로그램에 보안 권한을 부여합니다. 사용하는 API 및 지정하는 기능에 따라 마켓플레이스에 대한 응용프로그램 전송이 실패할 수도 있습니다.

마켓플레이스에 응용프로그램을 전송할 때 그 응용프로그램의 기능이 프로그래밍 방식으로 검색됩니다. 응용프로그램 전송 프로세스는 MSIL(Microsoft Intermediate Language) 코드 분석을 사용하여 응용프로그램에서 필요한 휴대폰 기능을 검색합니다. 응용프로그램 전송 프로세스는 자동 생성된 목록이든 직접 수정한 목록이든 상관없이 기능 목록을 응용프로그램에 필요한 특정 기능으로 대체합니다. 즉, 응용프로그램과 함께 전송된 응용프로그램 매니페스트에 응용프로그램에서 사용되는 기능이 포함되지 않은 경우 이러한 기능이 전송 프로세스의 일부로 추가됩니다.

전송 중에 기능이 추가되거나 수정되는 것에 대한 2가지 예외가 있습니다. 첫 번째는 매니페스트 파일에서 다음 네트워킹 기능을 제거할 경우 전송 프로세스에서 이 기능이 추가되지 않는다는 것입니다. 그러면 응용프로그램에 대한 네트워킹 지원을 옵트아웃할 수 있습니다.

  • ID_CAP_NETWORKING

두 번째는 전면 카메라 하드웨어 요구 사항을 지정할 수 있으며 이는 전송 프로세스에 의해 수정되지 않는다는 것입니다.

  • ID_HW_FRONTCAMERA

전면 카메라에 대한 자세한 내용은 Windows Phone의 카메라 및 사진 개요를 참조하십시오.

응용프로그램에 필요한 휴대폰 기능을 검색하는 데 응용프로그램 전송 프로세스에 의존하지 않고 개발 과정에서 도구를 사용하고 응용프로그램을 테스트할 수 있습니다. 응용프로그램이 Windows Phone OS 7.1 을 대상으로 하는 경우 마켓플레이스 테스트 키트기능 유효성 검사 테스트를 이용하여 응용프로그램 매니페스트 파일에 자동 생성된 기능 목록을 검색하고 해당 응용프로그램에 필요한 특정 기능으로 대체할 수 있습니다. Windows Phone OS 7.0 을 대상으로 하는 응용프로그램이라면 Windows Phone 기능 검색 도구를 사용할 수 있습니다.

참고참고:

응용프로그램에 필요한 정확한 휴대폰 기능을 기반으로 언제든지 응용프로그램을 테스트해야 합니다. 응용프로그램에서 필요한 특정 기능을 기반으로 응용프로그램을 테스트하지 않은 경우 다양한 최종 사용자 문제가 발생할 수 있습니다.

마켓플레이스 테스트 키트는 Windows Phone OS 7.1 응용프로그램을 마켓플레이스에 제공할 수 있는지 평가하는 데 사용할 수 있는 테스트 키트입니다. 마켓플레이스 테스트 키트에는 자동화된 테스트군의 일부로 실행되는 기능 유효성 검사 테스트가 포함되어 있습니다. 마켓플레이스 테스트 키트에 대한 자세한 내용은 Windows Phone 마켓플레이스 테스트 키트를 참조하십시오. 응용프로그램에서 사용되는 기능을 평가하기 위한 기능 유효성 검사 테스트에 적용되는 규칙을 보려면 다음 중 한 위치에서 찾을 수 있는 Rules.xml이라는 파일을 확인하면 됩니다.

  • Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\Marketplace

  • Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\Marketplace

마켓플레이스 테스트 키트를 사용하여 응용프로그램 기능을 확인하려면

  1. Visual Studio를 사용하여 기능 테스트를 수행할 Windows Phone OS 7.1 응용프로그램의 릴리스 빌드를 만듭니다. 릴리스 빌드 생성 방법에 대한 자세한 내용은 방법: Visual Studio를 사용하여 Windows Phone 응용프로그램 빌드 및 배포를 참조하십시오.

  2. 솔루션 탐색기에서 시작 프로젝트를 선택하고 프로젝트 메뉴에서 마켓플레이스 테스트 키트 열기 옵션을 선택합니다. 마켓플레이스 테스트 키트가 열립니다.

  3. 자동화된 테스트 탭과 테스트 실행을 차례로 클릭합니다. 응용프로그램에 대해 기능 유효성 검사 테스트를 포함한 자동화된 테스트를 모두 실행합니다.

    참고참고:

    응용프로그램에 사용할 아트나 화면 캡처를 지정하지 않은 경우에는 아이콘 표현화면 캡처 테스트가 실패합니다. 이러한 테스트의 결과는 기능 결과와 관련이 없습니다.

  4. 기능 유효성 검사 테스트의 결과 세부 정보 열을 확인합니다. 이 열에서 식별되는 각 기능은 ID_CAP으로 시작됩니다. 다음은 기능 유효성 검사 테스트 실행 결과의 예제입니다. ID_CAP_NETWORKING은 이 예에 나열된 유일한 기능합니다.

    [INFORMATION]: Capabilities used by application:
    ID_CAP_NETWORKING
    
  5. 솔루션 탐색기에서 응용프로그램의 응용프로그램 매니페스트 파일(WMAppManifest.xml)을 열고 결과 세부 정보 열에 나열되지 않은 기능을 모두 제거합니다. 이전 단계에서 나열된 결과 예제의 경우에는 네트워킹(ID_CAP_NETWORKING)을 제외한 모든 기능을 제거합니다.

  6. 도구에서 제공되는 기능을 부여하여 응용프로그램을 빌드하고 테스트한 후 배포합니다.

기능 검색 도구는 Windows Phone OS 7.0 을 대상으로 하는 응용프로그램에서 사용할 수 있는 규칙 기반 명령줄 유틸리티입니다. 이 도구는 어셈블리가 포함된 프로젝트 출력 폴더나 단일 어셈블리 파일을 입력으로 사용하고 응용프로그램에서 사용되는 보안 기능 목록을 출력합니다. 기능 발행 또는 삭제 규칙은 도구와 함께 배포된 Rules.xml이라는 파일에 캡처됩니다. 다음 표는 기능 검색 도구에서 지원되는 명령과 매개 변수를 보여 줍니다.

명령

설명

CapabilityDetection.exe /?

간단한 도움말 설명을 표시합니다.

CapabilityDetection rules path "file path"

응용프로그램에서 필요한 휴대폰 기능을 검색합니다.

  • rules path - Rules.xml 파일의 경로입니다.

  • file path - 어셈블리 또는 단일 어셈블리 파일이 포함된 프로젝트 출력 폴더의 경로입니다. 파일 경로에 공백이 포함되는 경우, 공백을 따옴표("") 안에 넣어야 합니다.

기능 검색 도구를 사용하여 응용프로그램 기능을 확인하려면

  1. Visual Studio를 사용하여 기능 테스트를 수행할 Windows Phone OS 7.0 응용프로그램의 릴리스 빌드를 만듭니다.

  2. 명령 프롬프트를 열고 Windows Phone 기능 검색 도구(CapabilityDetection.exe)가 포함된 폴더로 이동합니다. 다음 중 한 위치에서 찾을 수 있습니다.

    • Program Files\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect

    • Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect

  3. 다음 명령을 입력하고 어셈블리 및 단일 어셈블리 파일이 포함된 프로젝트 출력 폴더의 위치를 file path 매개 변수에 지정합니다.

    CapabilityDetection.exe Rules.xml "file path"
    
    참고참고:

    파일 경로에 공백이 포함되는 경우, 공백을 따옴표("")로 둘러싸야 합니다. 파일 경로가 폴더인 경우 뒤에 슬래시(\)를 포함하면 안 됩니다.

    다음은 두 개의 예제를 보여 줍니다.

    CapabilityDetection.exe Rules.xml "C:\MyApp"
    CapabilityDetection.exe Rules.xml "C:\MyApp\MyApp.dll"
    
  4. 도구에서 표시된 기능 출력을 복사합니다. 다음은 이 출력의 예제를 보여 줍니다.

    ID_CAP_NETWORKING
    ID_CAP_WEBBROWSERCOMPONENT
    

    기능이 검색되지 않는 경우 출력이 표시되지 않습니다.

    참고참고:

    파일 경로에 대해 XAP 파일을 지정하지 않는 경우 출력이 표시되지 않습니다.

  5. Visual Studio에서 프로젝트를 열고 응용프로그램 매니페스트 파일(WMAppManifest.xml)을 엽니다.

  6. 기능 요소에서 모든 기능을 제거하고 도구 출력에서 필요한 기능을 추가합니다. 예를 들어 이전 단계의 출력을 사용하면 요소가 다음과 같이 나타납니다.

    <Capabilities>
          <Capability Name="ID_CAP_NETWORKING"/>
          <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
    </Capabilities>
    
    
  7. 도구에서 제공되는 기능을 부여하여 응용프로그램을 빌드하고 테스트한 후 배포합니다.

    중요중요:

    일부 상황에서 응용프로그램이 네트워킹을 사용하지 않는 경우에도 이 도구는 ID_CAP_NETWORKING 기능을 반환할 수 있습니다. 한 예로 XAML에서 로컬 URI를 선언하는 경우를 들 수 있습니다. 이런 경우 이 기능을 제거할 수 있지만, 제거한 후 응용프로그램을 완전히 테스트하고 배포해야 합니다.

표시: