Microsoft MVP성태의 닷넷 이야기
Phone: 4. "Holiday Calendar" 윈폰 응용 프로그램 등록 [링크 복사], [링크+제목 복사],
조회: 15072
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

"Holiday Calendar" 윈폰 응용 프로그램 등록

지난번에 만들었던 응용 프로그램을,

윈도우 폰을 위한 Holiyday Calendar 앱 개발
; https://www.sysnet.pe.kr/2/0/1273

윈도우 마켓 플레이스에 등록하려고 하는데요. 이번 글에서는 그 준비 작업을 나열해 볼까 합니다. ^^





1. WMAppManifest.xml 변경

우선, WMAppManifest.xml에서 기본값으로 아무 의미 없이 설정되어 있는 값들을 변경해 줍니다.

<?xml version="1.0" encoding="utf-8"?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">
  <App xmlns="" ProductID="{80567b89-1d21-49ce-b3e3-19dcd799325d}" Title="Holiday Calendar" 
       RuntimeType="Silverlight" 
       Version="1.0.0.0" Genre="apps.normal"
       Author="SeongTae Jeong" 
       Description="Holiday Calendar is an app for managing your annual vacation." 
       Publisher="JenniferSoft Inc.">
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
    <Capabilities>
      <Capability Name="ID_CAP_MEDIALIB" />
    </Capabilities>
    <Tasks>
      <DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
    </Tasks>
    <Tokens>
      <PrimaryToken TokenID="HolidayManagerToken" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
          <Count>0</Count>
          <Title>Holiday Calendar</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>
  </App>
</Deployment>

이 중에서 "Capabilities" 항목이 애매한데요. 원래 "Holiday Calendar" 앱은 "MEDIALIB" 기능마저 사용하지 않는 간단한 유형이지만, 그렇다고 해서 모두 제거하면 다시 sln 파일을 열었을 때 Visual Studio에서 이전 버전의 프로젝트라는 경고가 나타나게 됩니다. 그래서 부득이하게 "MEDIALIB" 항목 하나를 살려둔 것입니다.


2. Marketplace Test Kit으로 검증

Visual Studio에서 "Project" / "Open Marketplace Test Kit..." 메뉴를 선택하면 "Marketplace Test Kit" 화면이 나옵니다. 여기에는 4가지 탭(Application Details, Automated Tests, Monitored Tests, Manual Tests)이 나오는데, 차례대로 해당 조건들에 대해서 만족을 시켜주면 됩니다.

우선, "Application Details"에서는 최소 4가지 PNG 이미지를 지정해 주어야 합니다. (크기는 정확히 일치해야 합니다.)

Large application tile: 173 * 173 크기의 PNG 파일
Small application tile: 99 * 99 크기의 PNG 파일
Marketplace tile: 200 * 200 크기의 PNG 파일
Application screenshots: 480 * 800 크기의 PNG 파일 

위의 그림이 끝이 아닙니다. 프로젝트에서 포함하고 있는 ApplicationIcon.png 파일과 Background.png 파일도 준비를 해줘야 하는데요. 이에 대한 규격은 각각 다음과 같습니다.

ApplicationIcon.png: 62 * 62 크기의 PNG 파일
Background.png: 173 * 173 크기의 PNG 파일

"Large application tile"과 "Background.png"의 경우에는 크기가 같기 때문에 동일한 이미지 파일을 지정해도 됩니다.

아래는 제 경우에 설정한 화면입니다.

regist_marketplace_1.png

여기까지 완료되었으면 그다음 탭인 "Automated Tests"로 넘어가서 "Run Tests" 버튼을 눌러줍니다. 물론, 여기서 모든 조건에 대해 "Passed"를 받아주어야 합니다.

regist_marketplace_2.png

그다음, "Monitored Tests" 탭에서는 실제 윈도우 폰 기계에서 테스트를 진행하게 되는데요. 이 때문에 실행 전에 반드시 윈폰을 컴퓨터와 연결해 두어야 합니다. 그 후 "Start Application" 버튼을 누르면 윈폰에 설치되어 있던 해당 앱이 삭제된 후 다시 설치가 되고 곧바로 실행됩니다. 개발자는 그 상태에서 응용 프로그램의 이것저것을 테스트해 봅니다. (물론, 모든 기능에 대한 테스트를 해야 하는 것이 강제 사항은 아닙니다.)

일례로, "윈도우" 키를 누른 후 "Back" 키를 누르는 동작도 점검 대상에 포함되어 있습니다. 모든 기능을 테스트했으면 "Back" 버튼을 눌러서 응용 프로그램을 종료하면 잠시 후에 아래와 같은 식의 리포팅 결과를 볼 수 있습니다.

regist_marketplace_3.png

마지막으로, "Manual Tests" 탭은 50가지의 테스트 항목들이 나열되어 있는데, 그거 하나하나를 보면서 테스트해 보시면 됩니다. (참고로, 저는 ^^; 생략했습니다.)




이 정도 수준으로 앱을 준비했으면 이제 본격적으로 Marketplace에 등록하기 위해 기존에 등록해 두었던 "APP HUB" 웹 사이트를 엽니다.

"내 대시보드" / " Windows Phone" 메뉴를 선택하면 우측에 "새 앱 제출"이라는 커다란 버튼이 보이는데요. 이를 클릭하면 다음과 같이 앱 등록 과정이 시작됩니다.

regist_marketplace_4.png

그런데, 제 경우에 처음부터 걸리는군요. ^^; xap 파일 업로드 하고 "다음" 버튼을 눌렀는데 오류가 있다고 합니다.

regist_marketplace_5.png

"
항목 어셈블리에 [NeutralResourceLanguage] 특성이 없습니다.
"


해결 방법은, AssemblyInfo.cs 파일을 열어서 다음과 같이 특성을 지정해 주면 됩니다.

[assembly: System.Resources.NeutralResourcesLanguage("en-US", System.Resources.UltimateResourceFallbackLocation.Satellite)]


물론, 리소스 파일을 사용하고 있는 앱이라면 적절하게 위의 값을 바꿔줄 수 있겠지만 국내에서만 사용될 것이 아니라면 아마도 대개의 경우에는 en-US 설정을 기본값으로 해두는 것이 적절합니다.

이제 다시 반복해 주면 정상적으로 '정적 유효성 검사'를 통과하고 "App 설명" 단계로 넘어갑니다.

regist_marketplace_6.png
regist_marketplace_7.png

보시면 아실 만한 내용이니, ^^ 설명은 생략하고, 이후 '가격' 설정으로 넘어갑니다만... 당연히 제 경우에는 무료입니다. ^^

regist_marketplace_8.png

부담 없이 '다음' 버튼을 누르면 "앱 테스트 및 인증" 화면으로 넘어갑니다.

regist_marketplace_9.png

워낙 간단한 앱이라서 "테스트 노트 또는 지침"이 간단합니다. (그런데, 사실 저렇게 내용을 채워야 하는지도 잘 모르겠습니다.)

마지막으로 제출을 하면 모든 단계가 완료되며,

regist_marketplace_10.png

이제부터는 등록될 때까지 기다리기만 하면 됩니다. ^^




기능이 간단해서 그런지는 모르겠지만, 4월 5일 자정 넘어서 등록을 했는데, 금요일 하루 지나고 월요일 오후 5시에 등록이 완료되었다는 내용의 메일을 받았습니다.

regist_marketplace_11.png

App Hub에 접속 후 "앱 주요 내용"의 "Windows Phone 7 앱"이라는 링크를 클릭하면 다음과 같이 등록이 완료된 앱 목록이 나옵니다.

regist_marketplace_12.png

클릭하고 들어가면, 좀 더 자세한 정보 및 추가 링크들을 볼 수 있으며,

regist_marketplace_13.png

"세부 정보" 링크를 누르면 해당 앱이 게시된 URL(딥 링크)을 확인할 수 있습니다. 제 경우에는 다음과 같은데요.

Holiday Calendar
; http://windowsphone.com/s?appid=4e82f0a8-14ef-4078-9c64-34047ad92faf

정작 위의 링크를 방문하니 그런 링크가 없다고 나옵니다. 왜일까요? 이에 대해서는 다음 시간에 ^^ 알아보겠습니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 7/7/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13463정성태11/27/20232401오류 유형: 881. Visual Studio - NU1605: Warning As Error: Detected package downgrade
13462정성태11/27/20232414오류 유형: 880. Visual Studio - error CS0246: The type or namespace name '...' could not be found
13461정성태11/26/20232470닷넷: 2173. .NET Core 3/5+ 기반의 COM Server를 registry 등록 없이 사용하는 방법파일 다운로드1
13460정성태11/26/20232384닷넷: 2172. .NET 6+ 기반의 COM Server 내에 Type Library를 내장하는 방법파일 다운로드1
13459정성태11/26/20232441닷넷: 2171. .NET Core 3/5+ 기반의 COM Server를 기존의 regasm처럼 등록하는 방법파일 다운로드1
13458정성태11/26/20232428닷넷: 2170. .NET Core/5+ 기반의 COM Server를 tlb 파일을 생성하는 방법(tlbexp)
13457정성태11/25/20232316VS.NET IDE: 187. Visual Studio - 16.9 버전부터 추가된 "Display inline type hints" 옵션
13456정성태11/25/20232647닷넷: 2169. C# - OpenAI를 사용해 PDF 데이터를 대상으로 OpenAI 챗봇 작성 [1]파일 다운로드1
13455정성태11/25/20232543닷넷: 2168. C# - Azure.AI.OpenAI 패키지로 OpenAI 사용파일 다운로드1
13454정성태11/23/20232871닷넷: 2167. C# - Qdrant Vector DB를 이용한 Embedding 벡터 값 보관/조회 (Azure OpenAI) [1]파일 다운로드1
13453정성태11/23/20232350오류 유형: 879. docker desktop 설치 시 "Invalid JSON string. (Exception from HRESULT: 0x83750007)"
13452정성태11/22/20232455닷넷: 2166. C# - Azure OpenAI API를 이용해 사용자가 제공하는 정보를 대상으로 검색하는 방법파일 다운로드1
13451정성태11/21/20232594닷넷: 2165. C# - Azure OpenAI API를 이용해 ChatGPT처럼 동작하는 콘솔 응용 프로그램 제작파일 다운로드1
13450정성태11/21/20232390닷넷: 2164. C# - Octokit을 이용한 GitHub Issue 검색파일 다운로드1
13449정성태11/21/20232507개발 환경 구성: 688. Azure OpenAI 서비스 신청 방법
13448정성태11/20/20232808닷넷: 2163. .NET 8 - Dynamic PGO를 결합한 성능 향상파일 다운로드1
13447정성태11/16/20232687닷넷: 2162. ASP.NET Core 웹 사이트의 SSL 설정을 코드로 하는 방법
13446정성태11/16/20232645닷넷: 2161. .NET Conf 2023 - Day 1 Blazor 개요 정리
13445정성태11/15/20232958Linux: 62. 리눅스/WSL에서 CA 인증서를 저장하는 방법
13444정성태11/15/20232697닷넷: 2160. C# 12 - Experimental 특성 지원
13443정성태11/14/20232761개발 환경 구성: 687. OpenSSL로 생성한 사용자 인증서를 ASP.NET Core 웹 사이트에 적용하는 방법
13442정성태11/13/20232534개발 환경 구성: 686. 비주얼 스튜디오로 실행한 ASP.NET Core 사이트를 WSL 2 인스턴스에서 https로 접속하는 방법
13441정성태11/12/20232883닷넷: 2159. C# - ASP.NET Core 프로젝트에서 서버 Socket을 직접 생성하는 방법파일 다운로드1
13440정성태11/11/20232491Windows: 253. 소켓 Listen 시 방화벽의 Public/Private 제어 기능이 비활성화된 경우
13439정성태11/10/20233083닷넷: 2158. C# - 소켓 포트를 미리 시스템에 등록/예약해 사용하는 방법(Port Exclusion Ranges)파일 다운로드1
13438정성태11/9/20232664닷넷: 2157. C# - WinRT 기능을 이용해 윈도우에서 실행 중인 Media App 제어
1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...