工事帽が大暴れ !!
日常の出来事などダラダラと書く。

[CoronaSDK]ファイル名指定の注意

coronaSDKを使っていて気づいたこと。

ある画像を表示しようとおもい、特に何も考えずソースを書く。
表示したい画像は image.png としよう。

display.newImageRect("image.png" , 100 , 200 )
と、書くのが普通だけど、そのとき俺は間違えて、
display.newImageRect("IMAGE.png" , 100 , 200 )
と書いてしまった(ファイル名が大文字)。

しかし・・・シミュレーター上では正常に表示したではないか・・・。
でもビルドして実機にインストールするとエラーになってしまう。
気づかないとハマっちゃうなぁこれ(現に20分悩んだ)



”知らない人との友達承認でアカウント乗っ取りの危険” がある件について

”知らない人との友達承認でアカウント乗っ取りの危険”
がある件について

今更感はあるかも知れないけど、すこしお付き合いください。

最近"知らない女性”からの友達リクエストがよく届く。
この手のアカウントの特徴は、
”特に関わりが無い”
”女性の名前”
”写真が綺麗な女性”
”Facebookをはじめたばかり”
”友達がいない、もしくは男性の友達がちょっといる(増えている)”
”男性友達の出身地、出身校が自分(あなた)と同じ、もしくは近い”
”基本情報が性別しか見れない(埋まっていない)”

※以下このアカウントを”ダミーアカウント”と記する。

もしかしたら”本当に知り合いで、覚えていないだけなのかも知れない”、とか”可愛いから”、とかで承認するケースもあるだろう。
しかしこれはかなり危険。

俺は”どうせスパムだろう”と無視しているけど、調べてみたら
「個人情報流出」「アカウント乗っ取りの危険」
がある事が判明した。
個人情報流出は、単に基本情報が閲覧できるだけ。
正直これは既知である。特別な設定をしていなければ、普通に見ることは可能。

しかし、アカウント乗っ取りは大問題だ。
「なんで友達になっただけでアカウント乗っ取りが出来るの?」
と思った。たぶんそう思う人も多いだろう。

では簡単に説明しよう。
アカウント乗っ取りなど、そう簡単に出来るものじゃないと考えるのが普通。

まず乗っ取りたいアカウントでログインを試みる。
友達になっているので、基本情報にログイン用のメールアドレスが書いてあったらIDはバレる。
しかしパスワードまでは分からないので通常ログインは出来ないだろう。
そこで適当にパスワードを何度かミスって入力する。
すると、パスワードを忘れた時の救済措置として、秘密の質問について回答を求められる。
当然これも本人でないと分からないだろう。これもミスる。

だかそれでも分からない場合の『最終救済措置』が問題だ。

本人でなくても、”友達になった人に本人だと証明してもらう事”、が出来るのだ。
証明してもらいたい友達に”証明用URLが書いてあるメール”を送る事が出来てしまうため、そのメールを友達に送って証明URL経由で本人である事を承認してもらえばいいだけ。
ただし、この方法はそのメールを送る友達は3人必要である。
乗っ取りを試みた人がダミーアカウント3人に証明用メールを送って、ダミーアカウントで承認してしまえば、本人でなくとも本人だと確認され、その後にパスワードを変えてしまえば乗っ取り完了、となる。
※メールをダミーアカウントじゃなくても、FB利用頻度が高い友達に送っても「なんだパスワード忘れたのかよー、しょーがねぇーなー」的なノリで承認してしまう可能性もある。

乗っ取られてしまったら、その乗っ取られたアカウントの友達の情報も閲覧し放題だ。友達が多ければ多い程被害が拡大する。友達が多いユーザーの場合、誰が誰だか管理できない事も多いはず。そうなれば乗っ取り犯の思うツボ、という訳だ。友達が少なくても、その中に友達が多い人と友達になっているなら危険な事に変わりない。

不用意な友達リクエストには注意が必要だと改めて実感した。



coronaSDKで気付いた事 曜日取得

日時を取得する場合、
os.date()などを用いるが、開発環境によって取得する形式が異なる場合がある。
例えば、下記のようなソースを実行する。

local date = os.date( "%c" )
print( date )

macの場合、ターミナルには、
Wed Mar 27 10:24:56 2013
と表示されるが、
windowsの場合は、
03/27/13 10:24:56
と表示される。
実機では前者となるが、シミュレーター上では環境によって変化してしまうので開発する際は注意が必要だ。

取得形式が違うだけでも面倒だが、もっと面倒なのは、
windowsの場合、os.date()で曜日の取得が出来ない事だ。
macの場合は、
local date = os.date( "%c" )
local week = date:sub( 1 , 3 )
で、月曜日ならweekが"Mon"、水曜日なら"Wed"と簡単に取得できるが、
windowsだと、同じソースを実行すると
"03/"しか拾ってくれない。

という訳で、windowsで曜日の取得するには、プログラムでやるしかない気がした。
ロジックは以下の通り。
1、2013年1月1日が火曜日、というフラグ(変数)を定義する。
(値は1〜7 日曜日〜土曜日 なので火曜日だから3 )
2、2013年1月1日から現在までの経過日数を算出する。
3、日数から曜日数を計算して曜日を算出する。
曜日 = ( 手順2で算出した日数 )+ 手順1変数 −1 ) % 7
※手順1変数は3(火曜日)で、−1にしているのは日数は0ではなく1から数える為。

しかしここで問題なのは4年に1度訪れる「うるう年」による2月の日数が1日増える事だ。
なので、2013年から現在までの経過年数を算出し、それを4で割った余りを判定材料とし、2月の日数を1日増やして経過日数(手順2の値)を求めなければならない。

windowsめんどくせぇw



[CoronaSDK]ビルドしたapkをインストールする時のエラーについて

ビルドして出来たapkをAndroid端末にインストールする際、エラーが出る場合がある。

「INSTALL_PARSE_FAILED_NO_CERTIFICATES」

こんな表示。
検索で調べると、対処方法がヒットするけど
「過去にインストールした同じパッケージ名のアプリをアンインストールすると直る」
というのがほとんど。
しかしそれでもダメって場合に遭遇した。

対処方法は、
CoronaSDKをWindowsマシンで開発するときは、JDK6の32bit版"のみ"インストールしてビルドする事。

今回エラーの原因になったのは、JDKの32bit版と64bit版がどっちもインストールされていると、adbコマンドでapkをAndroid端末にインストールしようとした時にエラーが出る可能性がある、という事だ。
ちなみにcoronaSDKで正しくビルドするには、JDK6の32bit版が必須になるのだが、OSによっては64bit版をインストールしてしまうかもしれないので注意が必要だ。



カメラの向きについて

Android端末にてカメラの向きを固定にする
CameraView内のsurfaceChangedで、
mCamera.setDisplayOrientation(90);
にする。
引数は角度を示す。
カメラを起動した時、端末を傾けても表示が変わらず比率が変化してしまう場合に使う。
ManifestでscreenOrientationの設定も忘れずに。



| BLOG TOP | Next>>
プロフィール

TMC/まにゃ

管理者 : TMC/まにゃ
日常の出来事や単なるメモなどをダラダラ書くブログ
面白い事なら何でも好き。

ブログのタイトルは
MMORPG『ラグナロクオンライン』で工事帽しか装備しなかったのが由来です。
※ROは現在復帰の予定が無い停止中



最近の記事


カテゴリー


最近のコメント


カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -


天気予報


リンク




テンプレ作ったやつ→
姫月結城