かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

トライアル版つきアプリとしてマーケットに提出する際の注意点

最初、機能制限無しで買いたいと思ってくれた人だけ購入ボタンを押してくれたらいいや!と思ってマーケットに提出しようとしたのですが、提出の画面にある試用版のチェックが入れれずに困ってました。もしかして、トライアル機能付けないといけないの?と思って下記のような機能を付け足したら、マーケットに提出する画面の試用版にチェックをいれることが出来るようになりました。試用版つきで提出するためには最低でも下記の条件を満たしてる必要があるみたいです。

  • LicenseInformationのIsTrialを使う

因みに、私が公開しているついさちではAbout画面に試用版の場合は試用版ですと表示する機能制限?を付けることで、機能制限無しの状態で試用版つきでマーケットに出すことが出来ました。About画面は、こんな感じのコードになってます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Tasks;
using Microsoft.Phone.Marketplace;

namespace Okazuki.TwitterSearch.Client
{
    public partial class AboutView : UserControl
    {
        private static LicenseInformation licenseInfo = new LicenseInformation();

        public AboutView()
        {
            InitializeComponent();
            if (licenseInfo.IsTrial())
            {
                this.textBlock2.Text = "ついさち(評価版) : 機能制限, 使用期限無し";
            }
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            var task = new MarketplaceDetailTask
            {
                ContentIdentifier = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                ContentType = MarketplaceContentType.Applications
            };
            task.Show();
        }
    }
}

AboutViewのコンストラクタでIsTrialを使ってます。button1_Clickでは、少しでも購入したいと思ってくれる人がいたら即行動にうつせるようにマーケットに移動する機能をつけてます。ContentIdentifierというところに、アプリケーションを識別するIDを指定します。このIDは、AppHubからアプリケーションを登録する作業を途中で辞めると発行されるので、それを使います。

ということでまとめると

  • LicenseInformationのIsTrialを何処かで使う
  • AppHubに登録しようとして途中の状態で辞める
  • IDを取得
  • MarketplaceDetailTaskで上で取得したIDを指定してコンパイルしてxapに固める
  • xapを提出

といった流れでやると、機能制限無しで、購入したいと思った人はすぐ購入できるアプリケーションの出来上がりというわけです。