自己紹介

自分の写真
最近、iphoneアプリをリリースしました。
UxU
無料アプリですので、是非遊んで下さい。 第二弾アプリ:工場夜景写真集 今後も色々なアプリをリリースしていく予定です。
次は、コスプレ or 漫画 or 騎乗日記

2011年3月2日水曜日

iphoneアプリでバージョンアップ時にだけ、アラート表示してitunestoreへ自動的に遷移する方法

アプリをリリースしていくと色々と不具合や機能UPする事があります。
そんな時、itunestoreのアップデートのお知らせ機能以外に
アプリ内からアップデートをするように促す方法を以下にまとめます。
















上記のように、アラートを表示してOKボタンを押下すると、ituneStoreへ遷移します。







Google App Engine でバージョン管理するテーブルを作成します。

1.GQLで降順でデータを一番目だけ取得します。
http://xxx.appspot.com/xxx/rest/page_size=1&ordering=-ver

2. XMLを取得します

TBXMLで取得してます。

例)XMLデータ
<versiontables>

<version>1.4</version>

<comment>データ取得スピード****</comment>

</versiontables>

TBXMLElement* versionsElement = [TBXML childElementNamed:@"versionTables" parentElement:element];
while(versionsElement != nil)
{
// 取得したいエレメントを入れる
TBXMLElement* version = [TBXML childElementNamed:@"vertion" parentElement:versionsElement];

if(version != nil)
{
[*aVersion setVer:[[TBXML textForElement:version] floatValue]];

}

TBXMLElement* content = [TBXML childElementNamed:@"comment" parentElement:versionsElement];

if(content != nil)
{
[*aVersion setContent:[TBXML textForElement:content]];
}
// find the next sibling element
versionsElement = [TBXML nextSiblingNamed:@"versionTables" searchFromElement:versionsElement];
}


3. plistのバージョンと比較して、最新バージョンがあればアラート表示

if([[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] floatValue]self
cancelButtonTitle:nil
otherButtonTitles:@"OK",nil];
[alertView show];
[alertView release];
}


4. itunestoreへ遷移します。

NSString* urlString = [NSString stringWithString:@"http://itunes.com/apps/アプリ名"];
NSURL* url= [NSURL URLWithString:urlString];
[[UIApplication sharedApplication] openURL:url];



このやり方で行えば、plistからバージョン取得とituneに飛ばす所をandroid用に変えれば
サーバ側は、何も変更せず対応が可能です。

android版とiphone版をそれぞれのバージョンを管理する場合、カラムを[oskind]というようなものを用意して、対応することも可能でしょう!


※android でバージョン情報取得方法
Android.os.Buildを使うと、機器固有の情報を取り扱うことができます。
Build.VERSION.RELEASE・・・ユーザーに表示するバージョン番号

0 件のコメント:

コメントを投稿