まるのヘタレ日記

技術ビビリなSEが、覚えた事を記述し、次回以降はびびらないで済むように復習します。

Bitcasaの契約更新について

クラウドストレージの一つ、Bitcasa。
かつて無制限容量が破格のお値段で提供されるとして話題になったやつ。
話題になった割に、サービス開始からちょっとして値上げして、
たいして安くない値段で再度話題になったやつ。


自分は無制限容量というのに感化され、日本でサービス開始して即座に契約。
それが2013/09/03の事。


その後、2013/11/20に大幅な値上げが発表。
これを受け、新料金が適用される前の更新時(2014/09/02)に解約しようと思ってた。


しかし、契約の解約するの忘れてて、今日気付いたw
Bitcasaのマイページ見たらこんな風になってて焦ったw

自動更新されてるっ!!
しかも次回請求日は2015/09/02!?
て事は、値上げ後の無制限プランの年間を$999で契約してしまったって事!?!?


もう背筋凍りそうなぐらい焦った。
そんだけあったら、他にお金使いたい事いろいろあるのに、って。


これを受け、途中解約するつもりで、
Bitcasaの契約について調べてみました。

結論

結論から書くと、
値上げ(2013/11/20)より前に契約していた場合は、
契約時点での条件で自動更新される。


自分は自動更新されましたが、
あくまでも当初(2013/09/03契約時)の年間$99の無制限プランとして更新されていました。

調査1 請求金額の確認

まずBitcasaに使ってるクレジットカードの明細を調べてみました。
その結果がこれ。

あれ?
引き落とされてるけど$999ではなさそう…。
しかも、マイページの次回更新は2015/09/02って事は、年間契約で更新されてる??

調査2 サポートへの確認

調査1の結果を受け、Bitcasaに質問してみました。
その結果がこれ。

質問

私は2013/09/02に無制限プランを年間$99で契約しました。
契約更新について、2つ質問があります。

・2014/09/02の契約更新について
 $99を請求されました。
 支払った$99で、2015/09/01まで無制限プランを利用可能ですか?

・2013/11/20に行われた料金体系の変更について
 私の無制限プラン契約は、いつまで年間$99で利用できますか?
 もし、無制限プランが年間$999になるなら、契約更新したくないです。

回答

こんにちは!

Bitcasaを接触させてくれてありがとう!あなたのアカウントはわずか99ドル年間無限プランのため2014年9月2日に更新しました。

あなたはその計画に適用除外されており、無限プランのために99ドル年間を支払うことを続けていきます。新しい価格は、新規ユーザーのためであり、古い既存のユーザーには影響しません。

あなたのアカウントは2015年9月2日に再び更新する必要がある場合、それは同じ99ドル年間無限プランのためになる。

ホープことができます、
ウィルソン

びっくりするぐらいカタコトな返信だったw

どうやら年間$999は、
値上げ(2013/11/20)より後に契約した人のみに適用される模様。

まとめ

調べてみて思ったけど、値上げ前に契約済の場合は、
Bitcasaが値上げしたところで影響無い訳で、叩かれるほどの問題ではないんじゃないかと。


「Bitcasa気になるー、契約しよかなー。」って悩んでた人が、
「値上げしたら安くねー、Bitcasaクソッ!!」って叩いてるのかな。


年間$99(およそ一万円)で無制限に容量使い続けるなら、まだ当分続けても良いなーと思った。

一台のMacに、複数バージョンのXcode環境を構築する

一台のMacに、複数バージョンのXcode環境を構築する

Xcodeのバージョンにより含まれるSDKが異なるため、
対応OSバージョンが異なるアプリを開発していると、
バージョンが異なるXcode共存させる必要がある。

この方法について述べる。

流れとしては、
iOSDevから旧バージョンを落とし、
リネームしてアプリケーションフォルダに配置する。

1.アプリケーションフォルダの確認

AppStoreからXcodeをインストールしているようであれば、
下記のように無印Xcodeが存在するはず。
A new picture
無印XcodeはAppStoreの更新対象となっているので、
今回はこれについてはいじらない。
※特に何もしなくても自動で最新にアップデートされるはず

2.iOSDevサイトにログイン

A new picture
試してないけど、
無料開発アカウントでも平気そう

3.旧バージョンを置いてあるページに移動

A new picture

4.Xcodeを探す

A new picture

5.旧バージョンのXcodeをダウンロードする

A new picture

6.旧Xcode.Appをコピーしてリネーム

iOSDevからダウンロードした.dmgファイルを開くと、
Finder上に表示されのでDesktopにコピーする。
リネームする際のファイル名は、
以下のようにバージョンを入れると良いと思う。
A new picture

7.アプリケーションフォルダに移動

A new picture

8.Xcodeのバージョン指定コマンド

コンソールでXcode関連のコマンドを使用する必要がある場合は、
あらかじめ以下コマンドを実行しておく
sudo xcode-select --switch /Applications/Xcode4.4.app/Contents/Developer/
A new picture
コンソール使う必要がなければ、特に必要ないかも。

9,旧バージョンXcodeの起動

副クリック(トラックパッドで二本指タップ)すると、
以下のようにバージョン指定して開く事が可能。
A new picture
一覧に表示されていなかったら、
[その他]を選択して、アプリケーションフォルダ内に配置したXcode.4.2.app等を直接指定

所感

Xcode4.4が入ったのは良いのだが、
Marvericks上でまとものに動かない…。

Xcode4.4で新規にプロジェクトを作成しても、
.xibファイルを開こうとした途端にXcodeがクラッシュする…。

Xcode4.4は、Marvericksに非対応?
4.5、4.6あたりは普通に動くのになー。

SDK5でビルドする必要があったのだけど、
結局Xcode4.4内のSDKをXcode5の中にコピって動かす羽目になった。

Objective-Cでの通知の種類について

Objective-C 通知」でぐぐった際、
なかなか思ったものにたどりつけかったので、
iOSプログラミングで使用する通知についてまとめてみる。

Objective-Cで通知といった場合、以下にあげる三種類がある
・ローカル通知
・プッシュ通知
・通知センター

ローカル通知とプッシュ通知は、
ユーザから見るとほぼ同じように見えるが、
実装方法は大きく異なる。
A new picture

ローカル通知

アプリのみで実装可能なため、難しい内容は無い。
以下のようなケースがローカル通知になる
・タイマー等により、一定時間後にユーザに通知するケース
・アプリがバックグラウンドで動いてる際、
 一定の条件でユーザに通知するケース

ざっくり言うと、
ユーザとAppのみで通知タイミングが決定出来る場合はローカル通知になる。

実装方法は、
「UILocalNotification」でぐぐると出てくる。

以下のサンプルが非常にわかりやすかった。
Local Notification サンプルプログラム - iPhoneプログラミング広場

プッシュ通知

LINEみたいなやつ。
サーバーが送信したメッセージをiOS端末に通知表示する。
実装するにあたり、以下が必要になる。
・自前で用意したサーバー
 アップルサーバーとプッシュ通知依頼する際に使用する。
・証明書
 アップルサーバとSSL通信する際に使用する。
 証明書発行にあたり、有料のiOSデベロッパーである必要がある。
・ユーザの承認
 デバイストークンの発行にあたり必要。
 アプリの初回起動時、確認アラートが表示される。

ローカル通知と異なり、サーバ側のタイミングで通知できるため、
以下のようなケースで使用されている
・LINEのように、サーバ経由でメッセージやりとりを行うアプリ
・JR列車運行情報のように、任意のタイミングでを配信するアプリ

実装の流れを簡単にまとめると、以下のようになる

準備

1.ユーザがプッシュ通知を承認し、デバイストークンが発行される
2.iOS端末から自前サーバにデバイストークンを送信する。
3.受信した自前サーバ上にデバイストークンをDB等に保存する

プッシュ通知の実行

1.サーバーはプッシュ通知したいタイミングでアップルサーバに、
 メッセージとデバイストークンを送信する
2.アップルサーバは、受信したデバイストークンの端末に対し、
 メッセージを送信する
3.メッセージっを受信したiOS端末上に通知が表示される。


実装方法は、
「Push Notification」とか「Objective-C プッシュ通知」でぐぐると出てくる。
実装した事ないので詳細は分からないけど、
サーバはRubyとかPHPのサンプルが多かった。

通知センター

ユーザに触れる事のないプログラミング手法
[Aメソッドが呼ばれたら、Bメソッドを呼ぶ]
って事をしたい時に使う。
用途としてはデリゲートに似てると思う。
実装方法は、
NSNotificationCenterでぐぐると出てくる。

所感

最近使ったアプリで以下のアプリが素敵だった。

ドクターイエローが走りそうな日にプッシュ通知してくれる。
凄いニッチだけど、プッシュ通知には最適な内容だなーと。
一度プッシュ通知を実装してみたい。

リリースktkr

やたー、リリースされたー。
すげー、AppStoreで"ついたー"で検索すると、ちゃんと出てくるぅーw
まー、当たり前の事なんだけど、実際に自分のiPhoneで見るとあがるわw

せっかくなんで、ウィジェット貼ってみるw

所感

プレスリリース的なの送ったけど、載るのかなー。
smart news載りたい、あれ載ったら凄そう。

まー今回は、ただ自分が欲しかったアプリを作れたので大満足。
地図ライブラリを初めて使ったけど面白かった。

今後は、ライブラリをうまく使って、
もうちょっとUIがリッチなアプリを作ってみたい。
地図ライブラリの知識も生かせたらいいなー。

アプリをAppStoreに公開した時のあれこれ

開発していたアプリがAppStore審査を通り、
晴れてAppStoreで公開される運びとなりました。
2013/12/26に公開されるであろう予定です。

リリースにあたり、興味深かった内容について書いてみる。


AppStoreの申請の流れ

ざっくり書くと以下のような流れ

SafariiTunes Connectにアクセス
iTunes Connect
ChromeだとなんかうまくいかなかったのでSafari

XcodeのOrganizerからプログラムをアップロード

結果を待つ


アプリの申請からリリースに向けて、
以下のようにiTunes Connect上のステータスが遷移した。

iTunesConnect上の表示 日時 備考
Waiting For Upload 2013/12/16 13:54 アップロード申請
Waiting For Review 2013/12/16 13:57 Xcodeからアップロード
In Review 2013/12/22 07:35 レビューが始まったと思われる
Processing for App Store 2013/12/22 08:16 公開準備中?
Ready for Sale 2013/12/22 08:29 晴れて承認

※日時は、ステータス遷移があった際、
 iTunes Connectから届くメールの受信日時


こんな感じだったので、
自分は申請からおよそ6日後にで審査された事が分かります。
審査の時間は45分ぐらいだったみたいです。
ここらへんの話、なんかレビューしてるとこが想像出来てワクワクするw


AppStoreはクリスマス休暇がある

上に書いたように12/23の朝(現地時間で12/22)の段階で”Ready for Sale”になったメールが来たので、
iTunesConnectで状態を確認しようとしてみた。
すると、なんとiTunes Connetを利用出来ない!
available

そういえば、2013/12/12にこんなメールきてたわ。
iTunesConnect_unavailable

こうなってしまうと悲しいもので、
Appの状態を確認する事は出来ないし、
申請も、プロモーションコードの発行も出来ない。
ちーん。

リリース待ちの間に宣伝準備するつもりだったんだけど、
iTunesConnectの都合で思ったようにできなかった…。


Appを宣伝するには

ただリリースしただけだと全く人目につかないと思ったので、
リリースに合わせてなんか宣伝する方法無いかなーと模索していたところ、
ここのサイトに載ってる一覧が参考になった。
こんなにあった! iPhone/Androidアプリを出す時にリリースを送りたい媒体53個総まとめ【全て無料】 | Find Job ! Startup


AppBankのレビュー依頼フォーマットの内容が濃かったので、
一旦AppBank向けに文章を作成して、
これを切り貼りして他のレビューサイトに依頼出来るんじゃないかと思う。

上記でチラっと書いたように、
iTunes ConnectでReady for Saleの状態になったAppは、
プロモーションコードってのを発行出来るらしい。
簡単に言うと、お試しダウンロード用のコード。

これ使えば有料アプリを無料ダウンロード出来るコードをレビュー媒体に送付したり出来るみたい。
実際レビュー媒体の応募欄で、
「プロモーションコードつけてね!」って感じの記載を多々見たわ。
ただ悲しい事に、アプリ内課金はプロモーションコードに対応してないっぽい。

あと、ホームページに貼り付けるウィジェット
iTunesのWebサイトで作れるみたい。
これオシャレな感じで良い。
アップル - iTunes - iTunesパートナー - iTunesにリンクする

はてなブログアプリだとこんな感じに表示される。


意外と使う場面の多いアプリのスクショ

レビュー媒体に依頼する際、
画像を要望してくるところが多かった。
iTunes Connectに登録するだけでも結構な画像が必要だったりで、
画像作成はもうお腹いっぱい。

そうそうiOSシミュレータで、
[Cmd + S]で作成されるスクショ画像がイイ感じだったわ。
参考までに。

AppleTVにbeta版を入れるには

AppleTVのOSをいじる際の手順について記載します。

事の発端

家のブレーカーが落ちて停電した後、
AppleTVに以下エラーが表示されて何もできない!

Exriration Notice
This version of AppleTV has expired. Update your AppleTV by connecting it to iTunes and restoring the latest version.

2013.12.25.AppleTVをbetaに

よくよく考えたら、前にAppleTVに入れたbeta版が期限切れしたみたい。

PC経由で復旧する羽目になったので、非常にニッチな需要かと思いますが、
AppleTVへのbeta版の導入方法・復旧方法について記載したいと思います。

iOSDevサイトにある公式マニュアルだと絵がなくて分かり辛かったので。
Downloads & ADC Member Assets - Apple Developer


必要なもの

AppleTV

PCに繋いでOSを更新します。
普段はTVの近くに置いてあると思いますが、
電源ケーブル以外は全部外してPCの近くに持ってきます。

micro-USBケーブル

それ何?ってなるよねー。
身近なガジェットだと、kindle用とPSVita用とnexus7用のケーブルがmicro-USBみたい。
上記のどれかあれば、それ流用で良いんじゃまいかと。
Androidスマフォ用とかもいけそ。
なければどっかから調達する。

iOS Developer登録

有料のやつ。
有料なら、ひょっとしたらiOSじゃなくても良いかも。
beta版のイメージをダウンロードするのに必要。

Mac

Xcodeを使う必要があるので。


注意点

AppleTVにはiOS端末のようなバックアップの仕組みがないので、
以下に代表する各種設定が初期化されます。
・Wi-Fi設定
・AppleIDとの紐付け

beta版の導入・復元を行うには、作業完了後にこれら初期設定を再度行う必要があります。


手順1 AppleTVを開発登録する

既に登録済であれば不要。
これやってないと、iTunes上に表示されないかも。

1.電源ケーブルをコンセント/AppleTVと接続する。
2.micro-USBをXcodeがインストールされたPC/AppleTVと接続する。
3.XcodecodeのOrganizerを開く

この時点で、以下のようにOrganizerに出てくるはず。
2013.12.25.AppleTVをbetaに
※画像は既に登録済なので参考までに

4.開発端末として登録する

iPhoneを開発端末として登録する時と同様に下記手順を行う。
1.Organizer上で「Use for Development」を選択して、Developerアカウントに紐付ける。
2.AppleTVからUSBケーブルを抜いて、電源を外す。
3.電源ケーブルを接続する
4.USBケーブルを接続する
※2〜4は、PCに認識させるため


手順2 iTunesにリカバリモードとして認識させる

iTunesにAppleTVを認識させる。
iTunesを最前面に表示した状態で以下操作を行う

1.AppleTVの付属リモコンでMENUと↓を長押し、LEDが激しく点滅し出すのを待つ
2.MENUと再生ボタンを長押しすると、iTunesのデバイスの欄でAppleTVが認識される

2013.12.25.AppleTVをbetaに

リカバリモードの参考サイト
Trick to get Apple TV 2 into DFU mode | FireCore


手順3 その1 公開版からbeta版にする

「betaで最新機能を試す!」ってケース

1.iOSDevで、AppleTVbeta版のdmgファイルを落とす

2013.12.25.AppleTVをbetaに
細かいバージョンの確認は、
以下サイトでSerialNumberを元に参照するのが便利だと思う。
Apple Serial Number Info // Decode your Mac's serial number!

2.ダウンロードしたdmgファイルを選択してマウント
3.Optionを押しながら[AppleTVを復元]ボタンを選択する。

2013.12.25.AppleTVをbetaに

4.ファイル選択ダイアログが表示されるので、マウントしたdmgファイル内の、ipswファイルを選択する

beta_filechoose

5.[復元]を選択する

restore_start

6.完了

restore_finish


手順3 その2 beta版から公開版にする

「betaやーめた」ってケース

1.[AppleTVを復元]ボタンを選択する。

2013.12.25.AppleTVをbetaに

2.[復元とアップデート]を選択する。

restore_cofirm

3.完了

restore_finish


手順4 TVに接続し直す

1.USB・電源ケーブルを抜いて、AppleTVをPCから取り外す
2.TVに接続し直し、アクティベートし直す

所感

最新のAppleTV用OSから、iOS端末等の連携がより蜜になったみたい。

OSインストール後のアクティベート画面が表示された後、
iPhone5Sのリモート立ち上げたらAppleID認証が表示された。
認証後はあとは勝手にやってくれて、いつものホーム画面が表示された。
iCloudとkeychainの連携の話なんだろうか。

便利なのは良い事だ。

ライブラリのサンプル試そうとしたら、うまく動かなかった件

このライブラリ使って、オサレプログレス実装してみたい。
mrackwitz/MRProgress · GitHub


githubからサンプルをダウンロードしてきて解凍してみたところ、
.xcodeprojと.xcworkspaceの二種類存在した。
.xcworkspaceが大きそうなのでこっちを開く。
A new picture

Appledoc was not found. Try installing it by 'brew install appledoc’.

開いてビルドしてみたが、こんなエラーが出てビルド出来ない
A new picture

原因

ダウンロードしてきたプロジェクトの設定で、
ビルド時にAppledoc(Javadocみたいなやつ)を作成するようになっていたため。
現在の環境に「Appledoc作成に必要な物が無い」て怒ってるみたい。
A new picture

解決方法

下記のようにビルド時にAppledocを作成する設定を取り除いてあげればOK。
A new picture

Appledocの設定を取り除いてあげたら、以下のようにビルド成功した
A new picture

所感

今回は動き見たかったので暫定対処としたけど、
Appledoc使えるようになりたいなー。

あとその前にCocoaPod入れてみたい。
外部ライブラリを管理するのに楽らしい。
今回のサンプルもCocoaPod経由でも落とせたみたい。