わーくあうと!

日々の作業でためになったことをアウトプットすることで自分の成長につながればなと。

Air Debug Lancher(ADL)のプレビューが画面に収まらない件

Air for iOSでのアプリ開発、普段は Air Debug Lancher(ADL) でプレビューしてるんだけど

自分の環境ではディスプレイに収まらなかった。

スクリーンショット 2013-04-13 12.59.21

↑下のほう収まってないんです。

ADLの表示倍率を変更できる設定がないか探したけど見当たらなかった。

iOSシュミレーターなら表示倍率が変えられるし、3GSの解像度で表示もできるからどうにかなるがパブリッシュに時間が掛かり過ぎて使ってられないし。 で、どうしたものかと。

考えた末に思いつきました。

Air for iOS設定を開いて、『起動時の縦横比』を『横長モード』にしてプレビューしたのがこれ↓

スクリーンショット 2013-04-13 13.10.53

うーん、、まあ正しい対応かと言われると微妙だが、仕方ないのでとりあえずはこれでやってみる。  

 

iOS端末で左右に隙間ができる件

開発中のアプリをiOSシュミレータ&iOS端末で確認するとなぜか左右に隙間ができていて、背景のサイズも確認したが問題無さそうなのになんでー?と思ってたらどうやらフルスクリーンモードで書きだして無かったため横縦比はそのままで上のステータスバーの分だけ微妙に縮小されてた模様。

フルスクリーンモードで書きだすようにして解決した。

十分な容量がどうとかでiOS端末にipa送れない件

なんかAir for iOSでパブリッシュしてiPhoneipa送るときに「デバイスエラー デバイスに十分な容量があるか確認してください。」とか言われた。

もちろん容量は余っている。

http://kuniakisuzuki.cocolog-nifty.com/blog/2012/09/flash-cs6air-fo.html

で、適当にググったら↑の記事を発見。どうやら.p12ファイルを使い回してると出る場合があるらしい。

確かにテストアプリを作った時から使い回して使ってるわ。ということでキーチェーンアクセスから.p12形式の証明書を作り直してパブリッシュした。

が、状況変わらず・・・

なんだろうなーと、Flashの再インストールとかしてみようかなーでもそれは面倒だなーと悩んだが、少し寝たら原因分かった。

アプリケーションIDが違ってた。しょうもない。

ということでアプリケーションIDを iOS Dev Center で設定したものに変更してパブリッシュしたら無事端末に送れた。

めでたしめでたし。

 

4月13日追記==========================

全然めでたく無かった。やっぱりおかしい。ちょっと作業してパブリッシュしたらまた同じ症状がでた。

アプリケーションIDも合ってる、.p12ファイルも合ってる、プロビジョニングファイルも合ってる。謎・・・

とりあえず出来上がったipaiTunesから入れてみたら入った。

この問題を追うと時間かかりそう&解決できなさそうなので、しばらくはiTunesから実機に送ることにしよう。

Flash CS6での基本クラス

どうでもいいっちゃどうでもいいんだが・・・

挿入 → 新規シンボル

で、ActionScript用に書き出しにチェックを入れると『クラス』『基本クラス』を設定できるようだったので

・MovieClip を継承した BaseHoge を作成して、その後

・BaseHoge を継承した Hoge を作成した。で、ライブラリ内のHogeを右クリック→クラスを編集

で自動生成されたコードを編集しようとしたら

public class Hoge extends MovieClip

となっていて、「あれ?BaseHoge継承してなくね?」ってなった。

その後、ライブラリ内のHogeを右クリック→プロパティ から基本クラスを確認したら空欄になっていた。

せめてMovieClipだろ。空欄ってなんだよ・・・と思ったんだけどこれは自分の解釈や操作が何か間違ってるんだろうか。謎。

http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=9923&forum=20

↑ここでも基本クラス名が消えるとかなんとか言われてるしFlash側のバグなのかな。

とりあえずは 『extends MovieClip』 を 『extends BaseHoge』 と手打ちで編集して使う方向でやってみる。

ActionScript3.0の条件付きコンパイル

ちょっと他の人のactionscriptソースを漁っていたら

CONFIG::DEBUG

と『::』が使われていた。条件によって処理を分けるような使われ方をしていたが、ちゃんとした読み方がわからず「ダブルコロン」とか「コロンコロン」で検索したけど中々見つからなかった。が、やっと判明した。

これはコンパイル定数というものらしい。普通にコード中のif文で処理を切り替えてもいいが、これを使って条件分岐することでコンパイル後のアプリにコードが残らない。メリットとしては逆コンパイルされてもその部分は見られないとかかな。

設定方法は、Flash CS6 の場合 ファイル → ActionScript設定 → 条件付きコンパイル設定タブ から設定できる。

それ以外のバージョンも設定方法は大きく変わらないと思う。

めでたしめでたし。

4月10日の日記

大した作業してないけどブログは更新したいので日記のような感じでやったこと書いてみる。

今日は、昨日やっとアクティベーションできたので実機テストを中心に作業した。

リモートデバッグセッションを試した

↑の二つの記事を参考にした。

最初「デバッガーの起動に失敗しました」とか「デバッグセッションが強制終了しました。」などと言われ失敗して、あれー?となったが、

パブリッシュ → リモートデバッグセッションの開始 → 端末でアプリ起動

の順番でやったらできた。

加速度表示のテスト

↑の記事にある加速度(傾き)表示のサンプルを動かしてみた。

最初テキストが表示されなくて、でも傾きの値をtraceしてみると値は取れていて、なんだろうと思ったが値が長すぎて2行になりTextFieldから見切れているだけだった。しょうもない。

『Number.toFixed()』メソッドを使って適当に小数第5位までの表記にして1行に収まるようにした。

画面遷移の周りどうしようか考えたり

ソシャゲっぽいものを作ろうとしているので、それぞれの画面(マイページ、ガチャ、ゲーム部分、トップページなど)をうまく遷移させる仕組みが必要だなと思ったのでどうしようか考えた。

まぁ普通にシーンの基底クラスを作って、それを継承してそれぞれの画面のクラス作ればいいのかなーと。適当に書くと↓のような感じ

BaseScene →画面の基底クラス。

MenuSceneBaseScene を継承)

 →グローバルメニュー付きの画面

MypageSceneMenuScene を継承)

 →マイページ(メニュー付けたいので MenuScene を継承する)

GachaSceneMenuScene を継承)

 →ガチャ画面(メニュー付けたいので MenuScene を継承する)

GameSceneBaseScene を継承)

 →ゲーム画面

TopSceneBaseScene を継承)

 →トップページ画面

図を用意するのが面倒なのでまともな説明ができないが、こんな感じ。

 

となると大量にクラスを作る(画面ごとに作るので)ことになるんだけど、ActionScriptって1ファイル辺り一つのクラスしか書けないみたい。

これだと無駄にファイルが多くなって気持ち悪いんだが・・こんなものなのかな。まあここはActionScriptのお作法に従って書いてみよう。

とかやってたらお腹減ってご飯食べつつニコニコ見てたら4時間くらい経ってて眠くなってきたので今日はもう寝ようかな。

アクティベートできない件 pt.2

昨日

アクティベートできない件 - わーくあうと!

iOSデベロッパープログラムでアクティベーションできない事について記事を書きましたが、今日アップルから連絡きました。早い!

ってことで続報です。

直ったらしい

「システムの問題解決したで!」とアップルからメールがきたので(出なかったが電話もきてた)早速アクティベーション試してみました。そしたら

We are unable to activate your Apple Developer Program membership because we are unable to successfully verify your identity. Please contact us and reference Enrollment ID# ***** for further assistance.

あれ、またエラー?まあ仕方が無いのでまたエラー内容貼りつけて問い合わせました。

そしたらすぐ返信があって、「それは住所が漢字だからだめなんやで!もう一回試してみ!」と書いてあったので再度試したらアクティベーションできました。

たかがアクティベーションするだけでこんなにもアップルとやりとりしないといけないとは。サポセンの人も大変だろう。

アクティベーション周りのブログ記事を見た感じもう何年も前から同じようなことが言われているようなので、いい加減システムを直せばいいのにと思ってしまうけどやらないってことはきっと根深い問題抱えてるんだろうな。

まあいいや。めでたしめでたし。

アクティベートできない件

先週末に iOS Developer Program を購入したが、3度に渡りアクティベーションに失敗しているのでこの状況を晒しておく。

一発目の失敗

今朝Appleからアクティベーションコードはこれやで!」って連絡来てたのでメール内のリンクからiOS Developer Center へログイン→Activateボタンを押したが、下記のようなエラーが出た。

We are unable to process your request. There was a problem redeeming your activation code. You may have redeemed this activation code already or you may be signed in with the wrong Apple ID. Please verify that you are using the same Apple ID and password you used to begin your enrollment, and try to log in again.

仕方ないので、上記のエラー文が出た旨をAppleへ問い合わせた。

二発目の失敗

そしたらすぐにcookieを消して、Safariでもう一回やってみ!」と、新しいアクティベーションコードと共にAppleから返答があった。

なるほど、一回目はChromeでやってたからまずかったのかな。と、言われた通りSafariで試してみるがまた失敗。エラー文も一回目の失敗と同じだった。その旨をまたAppleへ問い合わせた。

三発目の失敗

その後直ぐに返信があり、下記の方法で試せと連絡がきた。

1)< ***** >こちらのリンクを、Safariで開いてください。そして、Apple ID: ***** とパスワードでサインインしてください。
2)該当のプログラムにチェックを入れて頂き、次のページへ進んでください。
3)"Add to Cart"をクリックした後、Apple Online Storeのページへと移ります。そのページへ移った段階で、作業を止めてください。絶対に、改めてプログラムを購入しない様、ご注意下さい。
4)< ***** >を改めてSafariで開いて頂き、Activation Code: ***** を入力して、"Activate"をクリックしてください。

早速試してみたが・・・(1)で指定されたURLからサインインした所でエラー。その時のエラー内容がこれ

We are unable to process your request. Please go back to the previous page, or quit your browser and try your request again. If you require assistance, please contact Apple Developer Support.

俺なんか間違った事してるのかな・・・自分はアクティベートもできないダメ人間なんだ・・・と立て続けの失敗に打ちひしがれながらその画面のスクリーンショットを撮ってAppleに返信。

早くiPhoneに書き出したい。

結局

それから約2時間後、ついにAppleから返答がきた。

ご連絡ありがとうございます。詳細の情報をお送りいただき、ありがとうございます。
現在、同様の問題の連絡を多くのデベロッパ様より承っており、ただ今確認中でございます。弊社より再度連絡をいたしますので、大変恐れ入りますが今しばらくお待ちください。ご理解のほどよろしくお願いいたします。ご迷惑をおかけし、申し訳ございません。
よろしくお願いいたします。

だめじゃん!

(結局未解決のままです。続報あればまた報告します。たぶん。)

Appleから連絡きたので続報書きました!

開発者用アカウントを分けたくない

開発用アカウントを作った時に感じた愚痴エントリーです。

開発用アカウントを新たに作ったほうがいいらしい

iOSアプリケーションを作るにあたり開発者登録をしないといけないわけだけど、日本語名で登録したappleIdでは iOS Developer Program のアクティベーションが上手くいかないらしい。なので英語名で新たにappleIdを作ったほうがいいよと色んなブログで紹介されていた。

ちなみにappleIdだの開発者アカウントだのiOS Developer Program だのややこしいので簡潔にまとめたのでそちらもどうぞ。

iOSアプリ開発者登録までのアカウントは3段階

アカウントが分かれてるの気持ち悪い

『普段使いのアカウント』と『開発者用アカウント』で分かれるのがホント気持ち悪く思う。メールアドレスが分かれて別々のメールボックスを開かないといけないのも面倒だし(これについてはgmailでダミーのメールアドレスを大量に作る方法で解決した)、そもそも登録情報が分岐するのは混乱の元になる。

しょうがないから新規作成

とは言っても、ここでうだうだ言ってアップルのシステムが直るわけでもないので新規に作成してしまおうと。で、開発用アカウント作って iOS Developer Program を8,400円で購入しました。

やっぱり一つにしたい

しかし購入後、「やっぱり一つのアカウントがいい!」という気持ちが強くなり、「返金してもらって登録しなおうそう!」と決意した(アクティベーションに失敗してもその時Appleに問い合わせのメールいれればいいだけだし)。しかし時すでに遅し、ダウンロード製品は返品できないらしい。仮にできたとしても返金には2〜3週間ほどかかるらしいし。うう。

あきらめた

諦めるって言葉は嫌いだけどさ。今回は仕方ないかなって。

1年後 iOS Developer Program の期限が切れた頃にアカウント付け替えるとかできるのかな。なんとなくアプリ公開しちゃったら難しい予感はするが。

あと、もしかしたら開発用のアカウントを分けることで他のメリットもあるかもしれない。財務処理が楽になるとか?自分を納得させるためにメリット上げたいが出ない。だれか教えてください。

とまあこんな感じの愚痴です。

gmailでダミーのメールアドレスを大量に作る方法

twitterfacebookdropbox、AppleID ... などのサービスで複数のアカウントが必要になる場面があると思うが、そのたびにダミーのメールアドレスを取得するのが面倒って場合はgmailのアカウントがあれば手軽にダミーのメールアドレスを大量に作れる。

gmailはアドレス中に『.(ドット)』が入ってもそれを無視してドットが付いていないアカウントにメールを飛ばすようになっているので、例えば

hoge@gmail.com

というgmailアカウントなら

ho.ge@gmail.com

というアドレスでも hoge@gmail.com アカウントのメールボックスにメールを飛ばしてくれる。

なので複アカ作成の際には『h.oge@gmail.com』とか『hog.e@gmail.com』とか『hoge.@gmail.com』などのドットを含めたメールアドレスを指定するだけでOK。

この方法を使えば面倒な登録も無しにメールアドレス・アカウントの量産が可能になる。しかも嬉しいことにわざわざログインしなおさなくても同じメールボックスで管理ができるのもいい。

さらにはフィルタを作成し、自動でラベルを付けるようにすればアドレス毎にメールを分けることも可能になる。

googleさんは世界一!