2012年 4月 の投稿一覧

iTunesConnectからアプリダウンロード数レポートを自動取得する方法

iTunesConnectからアプリダウンロード数レポートを自動取得する方法

引用元: iTunesConnectからアプリダウンロード数レポートを自動取得する方法 | zaru blog.

こちらを参考にやってみたので備忘録。

目次

  • jreインストール
  • シェル作成

jreインストール

サーバー環境は、CentOS 5.532bitです。

[root@suusuke ~]# cat /etc/redhat-release 
CentOS release 5.5 (Final)
[root@suusuke ~]# uname -a
Linux suusuke.info 2.6.32-042stab044.11 #1 SMP Wed Dec 14 16:02:00 MSK 2011 i686 i686 i386 GNU/Linux

まずは↓からJREのrpmをダウンロードしてくる。(4/30時点で最新版のjre-7u4-linux-i586.rpmをダウンロード)

Java SE Downloads.

scpやftpでサーバーにアップする。

rpmコマンドでインストールする。

[root@suusuke tmp]# rpm -i jre-7u4-linux-i586.rpm 
[root@suusuke tmp]# java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) Server VM (build 23.0-b21, mixed mode)

シェル作成

jreのインストールが終わったので、iTunesConnectから提供されている、javaのclassファイルを使ってレポートを取得するスクリプトを作成します。
クラスファイルは
http://www.apple.com/itunesnews/docs/Autoingestion.class.zipからダウンロードします。
classファイルをサーバーにアップして、
シェルは冒頭のブログに掲載されているのでそれをちょっとアレンジして

#!/bin/bash

BINDIR=/home/suusuke/bin
DATADIR=/home/suusuke/itunes_report
GETDAY=`date +%Y%m%d -d '2 days ago'`

cd $BINDIR
RESULT=`java -cp "$BINDIR" Autoingestion john@xyz.com letmein 80012345 Sales Daily Summary $GETDAY`
#echo $RESULT;
#exit;
arr=(`echo $RESULT`)
mv ${arr[0]} $DATADIR
gunzip $DATADIR/${arr[0]}

として、取り合えずファイルを保存するだけにしました。

あとはcronに登録して完了です。

45 20 * * * /home/suusuke/bin/get.sh 1> /dev/null

Facebookファンページのいいねしているユーザーを取得する

FQLで簡単に取得できます。

likeテーブル、page_fanテーブルのどちらかで取得できますが、今回はファンページをいいねしているかユーザーをチェックしたかったので、page_fanテーブルを使って取得するようにしました。

SELECT page_id,type,profile_section,created_time FROM page_fan WHERE uid = me() AND page_id = [page_id]

対象のサーバーがPHP4だったのでFacebookのSDKでは対象外なので、JavaScriptで取得するように実装したコードはこちらです。

<!-- facabook like -->
<script type="text/javascript">

  window.fbAsyncInit = function () {
    // init
    FB.init({
      appId: '[appId]',
      status: true,
      cookie: true,
      oauth: true,
      xfbml: true
    });

    // login
    $("#facebook_login").click(function () {
      FB.login(function (resp) {
        if (resp.authResponse) {
          checkLike();
        }
      }, {perms: 'read_stream'});
    });

    var checkLike = function () {
      FB.api(
        {
            method : 'fql.query',
            query : 'SELECT uid,page_id,type,profile_section,created_time FROM page_fan WHERE uid = me() AND page_id = [page_id]'
        },
        function(response) {
            //console.log(response);
            var form = '<form name="regist_form" id="regist" method="post" action="regist.php">';
            var result = 'ng'
            if (response.length > 0 && response[0].page_id == '[page_id]') {
                // ok
                result = 'ok'
                form += '<input type="hidden" name="uid" value="'+response[0].uid+'" />';
            }
            form += '<input type="hidden" name="mode" value="'+result+'" />';
            form += '</form>';
            $('body').append(form);
            $('#regist').submit();

        });
    }

  };

  // javascript SDK load
  $(function () {
    // script create
    (function () {
      var e = document.createElement('script');
      e.src = document.location.protocol + '//connect.facebook.net/ja_JP/all.js';
      e.async = true;
      document.getElementById('fb-root').appendChild(e);
    } ());
  });

</script>
<div id="fb-root"></div>
<!-- facabook like -->

[appId]、[page_id]は任意のものに変更します。

  • パーミッションは”read_stream”にしてログインを要求
  • ログインが成功して、ユーザーが承認したら、FQLで対象のファンページにいいねしているかチェックする
  • いいねしてたら、regist.phpにPOSTする

という流れです。

page_fan – Facebook開発者.

iTunesConnectへ申請する方法

iPhoneやiPadのアプリを作成したら、AppStoreに掲載するためにiTunesConnectからアプリを申請します。
初めて、申請してみたのでその時の備忘録です。

目次

  • 申請の準備(開発証明書、AppID、プロビジョニングファイル作成)
  • iTunesConnectにアプリの情報登録
  • アプリのビルド、サブミット

申請の準備(証明書、App ID、プロビジョニングファイル作成)

証明書については、

suusuke – blog – プロビジョニングファイル作成から実機転送手順.

で書いたとおり既に作成している状態です。

App IDの作成

iOS Dev Center – Apple Developer.

iOS Dev CenterからApp IDを作成します。

  • 右側にあるリンクから「iOS Provisioning Portal」に移動。
  • 左側にあるリンクから「App IDs」→「New App ID」→「Create App ID」へ移動。
  • 「Description」に通称または説明を入力。
  • 「Bundle Seed ID (App ID Prefix)」は複数ある場合は、適切なものを選択。(私の場合はひとつしかないので選択不可。複数チーム登録している場合など選択できる?)
  • 「Bundle Identifier (App ID Suffix)」は”com.domainname.appname”の様な形式で入力する。
  • Submitを押す。

プロビジョニングファイル作成

  • 左のメニューから「Provisioning」に移動して「Distribution」タブをクリック
  • 「New Profile」を押して「Create iPhone Distribution Provisioning Profile」へ移動する。
  • 「Distribution Method」→「App Store」
  • 「Profile Name」→プロファイルの名前。(アプリ名と同じでなくてもOK。ただ同じ方が分かりやすい。)
  • 「Distribution Certificate」→公開用証明書作ったときの名前が表示されている
  • 「App ID」→作成したAppIDを選択
  • 「Devices (optional)」→Ad Hoc版を作成する場合は必要ですが、今回はApp Storeようなので選択なし
  • 「Submit」クリック
  • しばらくするとStatusが「Pending」から「Active」になるので、Downloadを押してダウンロード・保存
  • 「[Profile Name].mobileprovision」を適当な場所に保存
  • ダブルクリックすると、Xcodeのオーガナイザに登録されます。

iTunesConnectにアプリの情報登録

事前準備

  • Store用の説明文の用意します。ちなみに、iPhone用のStoreは一行全角23文字表示されます。
  • スクリーンショットの用意。形式は、jpg / tif / png。下記はサイズ。単位はpxです。
    (iPhoneの場合のサイズ:960×640, 960×600, 640×960, 640×920, 480×320, 480×300, 320×480, 320×460)
    (iPadの場合のサイズ:1024×768, 1024×748, 768×1024, 768×1004)
  • Store用アイコンを用意。形式は、jpg / tif / pngで、サイズは512×512。

iTunes Connectにてアプリの情報を登録する。

iTunesConnectはiOS Dev Centerからアクセスします。

「Manage Your Applications」の「Add New App」をクリック 。

初回のみ”Company Name”(Storeに表示される名前)を入力。

第1ページ

  • 「Default Language」を設定。
  • Application name – アプリの名前 。
  • SKU Number – 他のアプリとかぶらない任意の番号 。自分はその日の日付と0001。
  • Bundle ID – 先ほど作ったやつ。今からアップロードするアプリと対応されます。

第2ページ

  • Availability Date – app storeに出る日。
    (※審査が終わった日か、ここで設定した日の遅い方が採用されます。)
  • Price Tier – 値段を設定します。
  • Discount for Educational Institutions- 教育機関向けの場合、割引するか。
  • 売る国を選ぶ場合ここで設定します。デフォルトだと、全部選択されてます。

第3ページ

  • 最初に選んだ「Default Language」の表示設定です。
    (※Englishで作成して、後で日本語版を作成しました。)
  • Version Number – バージョン。プロジェクトと同じ数字。基本は1.0。
  • Description – アプリの説明。
  • Primary Category – 自分が思う1番のカテゴリを選択。
  • Secondary Category – 自分が思う2番のカテゴリを選択。
  • Keywords – 検索キーワード。カンマ区切りで入力。
    (※100bytes以内。いくらでも入力できてしまうので、優先順位の高い順に記入していくと無難)
  • Copyright – 例を参考に入力。
  • Contact Email Address – 連絡先のメアド。
  • Support URL – アプリのサポートのためのサイトを記入。
  • App URL (optional) – 自分のアプリの紹介サイトを記入。
  • Review Notes (optional) – アプリ審査の為の追加情報。
    (※ユーザー登録が必要なアプリなら、サンプルのアカウントを記入が必須)
  • Rating – レーティング。適切に選択。
    (※Apple側であとで変更する場合があるようです)
  • EULA – End User License Agreement (EULA)を自分で設定したい場合はここで設定する。
  • Images – 先ほど用意しておいたスクリーンショットとかを指定する。
    (※サイズが間違ってる場合はErrorとなります。)
  • 確認画面みたいなのになるので、「View Details」で確認する。

別言語を追加する場合

  • 「Manage Localizations」をクリック。
  • 「Add New Language」をクリックして、言語を追加していく。
  • Languageを選び、同じ事を選択言語でやる。
  • すべて終わったら「Done」をクリック。
    (※ここまでやると、アプリの専用ページやURLができるので、アプリURLを使う場合はここから取得する。その際、URLに「/us/」とあれば、「/jp/」に変えておけば日本語のAppStoreURLになります。)
  • 「Ready to Upload Binary」をクリック します。
  • 暗号化技術とかを使っているのか聞かれるので、Yes/Noを選択。
  • そのうちステータスが「Waiting For Upload」になるので、待つ。

アプリのビルド、サブミット

  • Xcodeで「Info.plist」の「Bundle identifier」と「Bundle version」を設定する。
    (※申請内容と合致するようにしましょう)
  • 画面左上にある「Scheme」のプルダウンメニューにある「Edit Scheme」をクリック 。
  • 左側のメニューの中から「Archive」をクリック 。
  • 「Build Configuration」を「Release」か確認して、「OK」をクリック。
    (※Releaseになっていなければ、Releaseにします)
  • 左側にあるプロジェクト名をクリックしたら行ける画面から、上のタブの中の「Build Settings」を選択。
  • 表示を「All」にして、その中の「Code Signing」の「Code Singing Identity」を、申請用につくったのに設定
  • 画面左上にある「Scheme」のプルダウンメニューから「iOS Device」を選択。
    (※シミュレーション用になっているとダメです)
  • 画面上部にあるメニューの「Product」から「Archive」を選択します。
  • 自動的にOrganizerの「Archives」が開くので、右上の「Validate…」をクリックし、IDとパスワードを入力。
  • Applicationを、先ほど登録したアプリ名に。Identityを自分の名前のiPhone DistributionにセットしてNextをクリック。
  • 正常にいけば、正常だよっていうお知らせとともに、右下に「Finish」が表示されるので、クリック。
    (※この時アプリのStatusは「Passed Validation」 )
  • 今度は右上の「Distribute…」をクリック。”Submit to the iOS App Store”を選択してNextを押す。
  • 正常に行けばエラーが出ない。右下のFinishをクリック。
    (※この時アプリのStatusは「Submitted」)
  • アップロードはこれで完了します。
  • iTunes Connectの該当アプリのStausを確認すると、「Waiting For Upload」→「Upload Received」→「Waiting For Review」に変わっているか確認する。

あとは、審査を待つのみ。。。

参考サイト

App StoreへのiPhoneアプリの登録手順のまとめ(Xcode4環境).

Facebookノートで書かれている記事ですが、物凄くしっかりまとまってます。

WordPressをGoArunaにバックアップ

バックアップする必要もないと思ってたので今までしてなかったのですが、折角なのでバックアップをとることにしました。
Serversmanのvpsを借りてるのですが、そこにバックアップをとってもあんまり意味ないので、GoArunaというオンラインストレージサービスにバックアップをとるようにします。

メール添付でファイルを送れるという機能があるのでGoArunaにしました。

目次

  • GoArunaアカウント作成・設定
  • DBバックアップ
  • WordPressファイルバックアップ

GoArunaアカウント作成・設定

GoAruna.

サイトからアカウントします。
[マイページ]->[受信トレイ] から”メールでアップロード”の”有効にする”をクリックします。
すると、アップロード用のメールアドレスが表示されます。

DBバックアップ

DBのバックアップにはWP-DBManagerプラグインを使用します。

WordPress › WP-DBManager « WordPress Plugins.

ファイルをダウンロードして、プラグインフォルダにアップロードするか、管理画面からzipファイルをアップロードしてインストールします。
アクセス権を設定するため、wp-dbmanager 配下にある、htaccess.txt を wp-content/backup-db に .htaccess として移動します。

[root@suusuke ~]# cp plugins/wp-dbmanager/htaccess.txt backup-db/.htaccess
[root@suusuke ~]# chown apache.apache backup-db/.htaccess 

WordPress管理画面メニューから、データベース > DB Options を選択します。

設定画面の [Automatic Scheduling] 欄にメールアドレスを設定する項目があるのでそこに設定します。

今回は、一日一回バックアップをとって、三日に一回最適化、リペアはしないという設定にしました。

WordPressファイルバックアップ

DBだけバックアップをとっても、完全に復元できないので WordPress Backup (by BTE) をつかって、画像、プラグイン、テーマもバックアップを取ります。

» WordPress Backup.

ファイルをダウンロードして、プラグインフォルダにアップロードするか、管理画面からzipファイルをアップロードしてインストールします。

設定 メニュー > WordPress Backup から設定画面で、GoArunaのアップロード用メールアドレスを入力します。

これで、日次バックアップがとれるようになりました。

最後に

Please add an .htaccess file to the backup folder (see here).

とあるので、バックアップディレクトリに.htaccessでWordpress管理画面にログインしてないとバックアップファイルがダウンロードできないように設定して終了です。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} .*bte-wb/.*
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule . - [R=403,L]
Options All -Indexes