.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.30 2009

SDK の共存とアイコンの書き換え

Tasaki です。

ようやくアプリがリリースできたと思ったら、早速β4が公開されて息つく暇もない感じです。

以前 SDK の共存についていろいろと述べた中で、iTunes にデバイスが認識されなくなった現象についてお伝えしました。この問題が起こった要因として、どちらの SDK でプロジェクトを呼び出したのかが分かりにくいことが挙げられます。
メニューバーからいちいちバージョンを確認するのは面倒ですし、もっと一目で分かればいいと思っていた訳ですが、この解決法としてアプリの名前とアイコンを変えてしまう方法についてご紹介します。

今回の対象とするアイコンは、Xcode、シミュレータ、プロジェクトファイルの3つです。
このうち、Xcode とプロジェクトファイルのアイコンについては、Xcode のアプリケーションバンドル内に画像ファイルが定義されています。
Xcode のアプリケーションバンドルは以下にあります。
<SDKのインストールディレクトリ>/Applications
このバンドルのコンテキストメニューから“パッケージの内容を表示”を選択します。その後、Contents/Resources とたどると、appicon.icns と docicon.icns というファイルが見つかります。
これらのファイルを置き換えればいいわけです。

icns ファイルは複数のサイズの画像から構成されていますが、512×512の画像を用意し、それをIcon Composerから読み込んでエクスポートするのが簡単です。

僕の場合は、元のアイコン上にラベルを貼って区別しようと考えた訳ですが、このとき icnsファイルをそのまま Gimp にインポートしようとすると、なぜか1辺128ピクセル以上の画像が読み込まれませんでした。
そこで、Icon Composerから一旦tifに改名してイクスポートし、それをColor Sync ユーティリティで開きます。その後、1ページ目の画像つまり、1辺512ピクセルの画像をtifファイルとしてエクスポートします。
これを Gimp にインポートして画像を編集し、完成したらtifとしてエクスポートします。
もう一度Icon Composerに完成した画像をインポートし、全てのサイズに縮小コピーします。これをicnsファイルとして保存します。
最後に元のicnsファイルと置き換えて、作業完了です。

この操作をプロジェクトファイルのアイコンに対して行うと、基本的に既存のプロジェクトのアイコンは全て更新されます。ただし、Finder 上でコピーしたプロジェクトなどには、この変更が適用されません。
そのような場合は、ファイルのアイコンを直接置き換える方法を取ります。
これにつきましては、こちらを参考にさせていただきました。

シミュレータのアイコンについても同様の操作を行います。
シミュレータのバンドルは以下にあります。
<SDKのインストールディレクトリ>/Platforms/iPhoneSimulator.platform/Developer/Applications
アイコンファイルは、Contents/Resources/simulator.icnsです。

これをDockに置いてみました。
dock.png

…Instrumentsがそのままなのはご愛嬌ということで。



スポンサーサイト
.28 2009

最初のアプリがリリースされました!

Tasaki です。

つい先ほど、申請中のアプリの合否はまだ出ないのかと、iTunes Connect を覗いてみたら…なんかグリーンランプが点灯してました。

てっきり先にメールが来るものだと思っていたので、正直かなり驚きましたが、ようやく1本、アプリを AppStore へ上げることができました。

全くの Mac 初心者だった去年の9月からおよそ7ヶ月…、試行錯誤というより暗中模索状態での開発が続きましたが、なんとかここまで漕ぎ着けることができました。
Pending Contractに陥らなかったのは、幸運だったんでしょうが。

…ということで!PictureLabelerをよろしくお願い致します!
ご意見やご要望もお待ちしておりますので、
neo@next-system.com までお寄せください!

製品の確認はこちらからどうぞ
画像にメッセージを貼付けよう! - PictureLabeler
.27 2009

ブレンドとアニメーション

Tasaki です。

今日は画像のブレンドとアニメーションについて試行錯誤していました。

ブレンディングは、UIKit や Core Graphics の API を使用して、あるコンテキストに対して行います。
これはビュー内部についての話です。

対してアニメーションは、UIKit や Core Animation の API を使用して、あるビューに対して行います。
こちらはビュー外部、ビュー同士の関係の話と言えます。

これらを組み合わせて、特殊なブレンディングを行う描画オブジェクトを
アニメーションさせられないかと思ったのですが、どうも上手くいきませんでした。(後ろのビューとのブレンディングってのは、無理な話なんでしょうかね。)

その代わりに、各ビューの描画処理の中で自力でアニメーションを行う方法を試したのですが、少しでも描画領域が広くなると、とにかく遅くて使えません。

こういう場合は、Open GL を直接触るしかないんでしょうかね?


.24 2009

コード署名エラー再来!!

Tasaki です。

とりあえず、アプリの申請を完了したので
別件のアプリの手直しをしていたのですが…
実機テストのためのプロビジョニングプロファイルを
作成しにポータルへ行ってみたところ、
なんと開発証明の有効期限が過ぎているではありませんか。

開発者登録したのが10月なのになぜ今頃?と思いましたが、
とりあえず証明書要求を行い、新たな開発証明を手に入れ、
プロビジョニングプロファイルをインストール。

ん?オーガナイザで警告が出てる。
まあいいや、そのままビルドしてみよう。
…やっぱりコード署名エラー扱いでインストールできず。

キーチェーンには確かに登録されているのに、
何故なんだ?

試行錯誤の末、
別の管理者メンバの方でログインし、同様の手順を行ったところ、
何とか無事インストールできました。

初めて実機テストしようとしたときも大変でしたけど、
この辺の作業は非常に厄介ですね。
何がよくて成功したのか現時点でもよく分かってないです。


しかも、3.0βリリース辺りから
ポータルの構成もがらりと変わりましたしね。

.22 2009

ひとまずアプリを申請しました

Tasaki です。

本当は月曜日の時点で申請できていたのですが、なんと全く同名のアプリがリリースされているというお知らせを頂きまして、名称の変更とそれにともなうアイコンの変更が必要な状況に陥ってしまいました。(名称だけでなく、機能まで類似していたため、このままリリースすると商標侵害になってしまうおそれがありました)
…ちゃんと調べとけよ、って話ですね。

その点だけ変更して申請してもよかったのですが、ただ名称変更するだけでは味気ないと思いまして、ユーザーエクスペリエンスの向上を試みたところ、バグラッシュとなってしまい、さきほど何とか申請まで漕ぎ着けたところです。

やはりポインタ絡みのバグは本当に厄介ですね。
3時間くらい原因箇所が分かりませんでした。

明日はユーザーインターフェースの変更にともなうドキュメント類の改訂作業を行う予定です。


…あー疲れた。


.20 2009

PictureLabeler Support

<Screen Structure and a Table of Buttons>

ボタン説明英語

The function of each button is as follows.

NameDescription
Letter Size ButtonChanging a size of letters in the message to input next.
Reflesh ButtonErasing all messages which you put.
Undo ButtonMoving back an user operation history.
Redo ButtonMoving forward an useroperation history.
Camera ButtonLoading a new image from photo album or camera.
CAUTION! If you have done this operation, it delete all messages and operation history, not only the old image!
Action ButtonSaving the edited result after choosing a size of it.


<How to Use>

It is a screen after the application start.

起動直後


Please tap the Camera icon to load an image from favorite source.
In the case of iPhone, you can use the picture which you took on the spot.
If the loaded image is large, it's reduced to be satisfied in the size of the contents area, and it is displayed.

画像読み込み後


A keyboard is displayed, if you tap the image or background.

メッセージ入力中


A screen after the input completion is this one.

メッセージ入力後


Touch and drag a message, when you adjust an indication point of it.
Then the message is displayed with semitransparency if it protrudes on the image.

メッセージ移動後


Tap the Action button to save the image, if editing is completed.

<Q & A>

Q.1 It is not possible to add a message .
A.1 Please load an image from Photo Album, etc.
It is not able to put a message without loading an image.

Q.2 It has become impossible to add more messages.
A.2 You can put messages up to 100.
If you want to put it moreover, please save the edited image and load it again.
But this case cannot do the layout changes of the message put before loading the image.

Q3 I have got the alert message " Memory Shortage ! ".
A.3 If you got it a lot, please try to reboot your device.
Push and hold Sleep button on the top right corner of the device.
Move the red knob of the slider to right, then the device shut down.
Push and hold Sleep button to turn on the device after the screen turned black.

Q.4 A message has become semitranceparency.
A.4 This reason is because it is not fit into the image.
Displaying semitransparency is the visual notification of it for you.
If you fit the message into the image, it becomes opaque again.
In addition, it is written in opaque when you save an editing result.


Contact Us
neo@next-system.com


.20 2009

PictureLabeler サポート

<画面構成とボタンの解説>

ボタン説明日本語

画像編集中の各ボタンの詳細はこちらです。

名前詳細
文字サイズボタン次に入力する文字のサイズを変更します
リフレッシュボタン現在表示中のメッセージを全て消去します
アンドゥボタン操作履歴を1つ戻します
リドゥボタン 操作履歴を1つ進めます
カメラボタンカメラから新しく画像を読み直します
この操作を行うと、入力したメッセージや操作の履歴は全て削除されます
アクションボタンサイズを選択して編集した画像をアルバムに保存します


<使い方>
アプリ起動後の画面です。

起動直後

まずは、カメラアイコンを選択し、画像を読み込みます。
iPhone の場合は、その場で撮影した画像をご利用いただけます。
なお、読み込んだ画像が画像表示領域に収まらない場合は縮小して表示されます。

画像読み込み後


読み込み完了後、画像または背景部分をタップするとキーボードが表示されます。

メッセージ入力中


入力完了後の画面がこちらです。

メッセージ入力後


表示位置を調整する場合はメッセージにタッチして画面をなぞります
このとき、メッセージが画像からはみ出ていると半透明で表示されます。

メッセージ移動後

編集が完了したら、アクションボタンを押して画像を保存します。

<Q & A>

Q.1 メッセージ入力ができません
A.1 写真アルバムなどから画像を読み込んでください
画像が読み込まれていない状態では、メッセージ入力は行えません

Q.2 新たなメッセージを追加できなくなりました
A.2 追加可能なメッセージは100個までです
それ以上追加したい場合は、一度画像を保存しその画像を読み直してください
ただし、この場合読み込み前に追加したメッセージのレイアウト変更などはできません

Q.3 「メモリが不足しています」と表示されるのですが…
A.3 何度も表示される場合は、一度本体の再起動を行ってください
本体右上方のスリープボタンを長押しして、シャットダウンモードに移行します
スライダーの赤いつまみを右へ動かすと、電源が切れます
画面が暗転した後で、再びスリープボタンを長押しすると、本体が起動を開始します

Q.4 メッセージが半透明になってしまいました
A.4 メッセージが画像の中に収まりきっていないためです
半透明表示はそれをお知らせするための機能です
再びメッセージが画像の中に収まると不透明表示に戻ります
また、編集結果を保存する際には不透明で書き込まれます

ご意見、ご要望はこちらへ
neo@next-system.com

.17 2009

ドキュメント鋭意製作中

Tasaki です。

今日は1日がかりでドキュメント類を製作していました。
没アプリの時に比べ説明事項が増えたため、
かなり時間がかかってます。
今の進捗状況は7割程度といったところでしょうか。
AppStore 向けとサポート用のスクリーンショットも
用意しなきゃいけませんが。

それにしても、やっぱり一番の問題はローカライズです。
自動翻訳にかけると意味不明な文章になったりしますし、
一番問題なのは回りくどくなってしまう点ですかね。
ですが、自力での翻訳は英語の勉強にはなります。

しかしリリース間近という高揚感は何とも言えないですね。
トンネルの出口の光が見えたときの感覚に近いような、違うような…

何はともあれ、来週の始めには審査に提出できると思います。


個人的には、週末の応用情報技術者試験が
目前に迫っているわけですが。

…少なくとも午後試験は受けねば。

.16 2009

ようやくリリースできそうです

Tasaki です。

今しがた、作業内容の保存と復元機能がようやく実装できました。
何通りかテストを行いましたが、現状では正常に動作しています。

ということで、
できれば明日ドキュメント類を用意して、
審査に出す予定です。

今度こそ、AppStore に載せるぞ!


.15 2009

MutableData の注意点

Tasaki です。

レジューム機能実装にまたまた苦労しているわけですが、
僕はファイルの出力に際して NSMutableData をよく使用します。
(C の構造体使ってると、これを利用するのが一番単純みたいなので)

そこで、今回はその中でハマった点を書き残しておきます。

initWithLength:を呼ぶと、
指定バイト分が 0 で初期化される訳ですが、
この後、appendBytes:length:とすると、
この初期化した領域の後ろにデータが追加されます。
これだとムダなバイトがファイルの先頭に生じることになり、
さらに読み込み時に問題が発生します。
(この先頭の0の原因が分からなくてハマってました…)
ということで、初めからappend... メソッドで追加していく場合は、
イニシャライザには、init を使用します。

書き込むデータサイズが固定の場合、
初めから割り当てる領域を指定して初期化しておいた方が
いいかなと思い、initをあえて使用しなかったわけなんですが…。
一方で、replace系のメソッドは範囲指定が必須なので、
コーディングが非常に面倒に感じました。


なんかいい方法ないんでしょうか?

.14 2009

SDK 2.2.1と3.0βの共存(補足)

Tasaki です。

以前ご紹介した共存の方法
補足事項がありましたので記載します。

この数日後に iTunes からデバイスが認識されなくなるトラブルが
発生したため、SDK for 3.0β をアンインストールしていたのですが、
以下の操作で両方の環境においてシミュレータ、実機ともに動作しました。

①SDK 2.2.1 をカスタムインストール
②SDK 3.0 βを標準インストール
③Xcode 3.1.3 (プレリリース版) を起動
④オーガナイザを開く
⑤Device 以下の名前の無いデバイスを削除
⑥Xcode 3.1.2 を起動
⑦デバイスが自動検出されるので登録する

要は、3.0 β用のオーガナイザから 2.2.1 搭載デバイスの
登録を削除する操作が必要だったということです。

紆余曲折ありましたが、
これでなんとかなりそうです。


.13 2009

SDK の多重インストール(再チャレンジ)

Tasaki です。

今日も懲りずに 3.0 β2と 2.2.1 の両方を不具合なしで
動作させるべく奮闘していました。

以前、テクニカルサポートから頂いたアドバイスの中に
別パーティションにそれぞれの SDK をインストールする
という方法があったので、それを試しました。

パーティションの分割といえば、フォーマットが必須だという
固定観念があったため、今まで試していなかったのですが…
なんと Leopard だと、既存のボリュームをそのまま分割できるそうじゃないですか!
こいつはスゲー!
ということで、早速やってみました。

やり方はこうです。
心配な方は先にバックアップしておきましょう。
①インストールディスク挿入
②再起動
③リンゴが表示されたら、C キーを押し続ける
④インストーラの起動画面が表示されたら、メニューバーから“ディスクユーティリティ”を選択
⑤左のリストから内蔵ディスクを選択
⑥“パーティション”タブを選択
⑦“+”ボタンを押し、追加するボリュームの名前、サイズを決定
⑧“適用”ボタンをクリック
⑨“パーティション”ボタンをクリック

後は数分待てば作業が完了すると思います。
これで、パーティションの分割は完了したわけですが、
この後がっかりするハメになりました…

意気揚々と新たに作成したボリュームへ SDK のインストールを試みたところ、
「現在 OS が起動中のボリュームに対してのみ、この操作を実行できます」
なんじゃそりゃ!同じハードディスクに同じ OS を2つ入れろと仰るか!

うーん、せっかく分けたけど、
いくら何でもこれはなあ…どうしよう。


.10 2009

CLLocationManager の扱い方

Tasaki です。

最近、通勤時間を利用して
測位テストをやっているんですが、
その中で何となく分かったことを書いてみます。

・startUpdatingLocation を呼ばないとすぐに通知をサボりたがる。
屋内や高い建物の影などに入ると高精度の位置情報が取得できなくなりますが、
この状態が続くと、いざ測位可能な場所に移動しても
なかなか現在地が特定できません。
(これはGPSに頼っているせいで起こっているんじゃないかと思いますが)

・高精度な位置情報が次々と通知されている状態で startUpdatingLocationを呼ぶと、次の情報が送られてくるまでに時間がかかる
上の状態に対処するため、タイマイベントで startUpdatingLocation を呼び出していたんですが、
これが仇となっているようです。

・起動しっぱなしにしたときのバッテリの消耗は尋常じゃない
みるみる減っていきます。
1時間半くらいで、満タンから残量20%の警告が出ました。
公式ドキュメントでしつこいくらい注意を促すのも分かります。

・福岡は、Wi-Fi AP による測位のカバー範囲が非常に狭い
ていうか、まだ全然ですね。
今日、 こちらで確認したんですが、
天神と百道くらいしか対応してないですし…。
うちの会社の近辺は微妙に外れていたので、とりあえず申請しておきました。
それにしても鹿児島と松江の周辺が真っ青だったのには驚きました。
…ドイツとイギリスはすごいことになってますね。


.09 2009

メール本文表示に四苦八苦

Tasaki です。

今日は測位データをメールの本文に書き込もうとして、
時間を食ってしまいました。

メール本文として、文字列を渡す場合は
記号をUnicodeに置き換えないといけないわけですが、
その前の%を表すのに、%%と表記していて、
これが原因だと理解するのにしばらくかかってしまいました。
(%だけだと、Cの文字列内で特殊文字扱いになるという
先入観があったためです)

みなさんもご注意ください。


.08 2009

アプリの再起動(詳細)

Tasaki です。

今回は、前回掲載した情報をより具体的に紹介したいと思います。

まず、URL スキームの登録についてですが、
このために情報プロパティリストを編集します。

まず、URL types の行を追加します。

InfoPlist_URLType.png


次に追加した URL types を開き Item 1 を選択し、
URL schemes の行を追加します。

URLType_URL schemes


後は、URL schemes の Item 1 にアプリの起動コードとなる
URLスキームを定義し(ここでは、customesheme としています)、
合わせて、URL identifier を逆ドメイン形式で定義しておきます。

URLType_Example.png

スキームの登録は以上で完了しました。

次の別アプリの呼び出しはいいとして、
自分自身を呼び出すコードの配置についてですが、
これはどこでもいいわけではないようで、
アプリ終了前に呼ばれる、-( void ) applicationWillTerminate: の中で
呼び出すと上手くいきます。

アプリケーションデリゲートで必要なコードは、このようになります。

- ( BOOL ) application:( UIApplication *) application handleOpenURL:( NSURL *) url {
 return YES;
}

- ( void ) applicationWillTerminate:( UIApplication *) application {
NSString *urlString = @"customscheme:";
 [ application openURL:[ NSURL URLWithString: urlString ];
}


これで全て終わりました。
ただし、お分かりだと思いますが、
このままだとホームボタンを押してもアプリが
必ず再起動してしまいますので、
何らかの脱出条件は用意しておく必要があります。

また、別のアプリを呼び出した後で、
そのアプリがスリープ状態に入ろうとすると
完全に挙動がおかしくなってしまいます。

やはり、正式に保証されている方法ではないから
ということでしょうか。

これを解決する方法を調べていたんですが、
今のところ分かっていません。
(脱獄すれば、こんな面倒なことしなくてもいいんでしょうけど)
もし、ご存知の方がいらしたら、ぜひ教えてください!


.07 2009

アプリの再起動(概要)

Tasaki です。

今回は、openURL : メソッドで他のアプリを呼び出した後、
再び自分自身を起動してもらうための方法をご紹介しようと思います。

ただし、この挙動は Human Interface Guidelines に違反していると
思われますので、App Store にて配布する場合はご注意ください。

さて、肝心の方法ですが、
まず、独自の URL スキームを登録します。
次に、openURL : へ目的のアプリを呼び出すためのURLを渡します。
この後で登録したスキームに対応したURLを openURL : に渡します。
最後に、アプリケーションデリゲートで、
application :handleOpenURL : メソッドを実装します。
これで完了です。

目的のアプリを呼び出した後、ホームボタンを押すと
見事に再度起動します。ちょっと画面遷移の仕方が変ですけど。

具体的な実装例は、次のエントリにて。


.06 2009

シミュレータのバンドル名

Tasaki です。

前回のエントリで、
シミュレータ上での動作確認が不能になったという話題を取り上げましたが、
問題箇所が発覚しましたので掲載します。

ズバリ、iPhone Simulator のバンドル名を変更していたのが
まずかったようです。
Xcode 同様、複数の SDK をインストールした場合に、
Dock 上で、どちらが起動しているか分かりやすくしようと思い、
バージョン名を付加していたんですが…

それで、どこかにシミュレータの呼び出しを管理する
定義ファイルみたいなものがあるのかと思って
SDK のフォルダを探しまわったんですが、分かりませんでした。

また、一連の不具合について、
テクニカルサポートへ尋ねたところ、
“確実なのは、もう一台起動ディスクを用意するか、別パーティションに iPhone 3.0 beta 専用のシステムを用意すること”だそうです。

まあ、それはそうなんでしょうけどね…


.03 2009

障害復旧完了…かも

Tasaki です。

昨日起こった未曾有?のトラブルですが、
ネット上で調べた限りでは、比較的起こりうる症状のようでした。
ただし、解決法は全く異なっていましたので掲載いたします。

原因は、やはりといいますか、
SDK 3.0 β2 側のオーガナイザにデバイスを登録してしまっていたことのようです。
そのまま、2.2.1 側のオーガナイザで作業をしていて
デバイスが検出できなくなった後、
全てのSDKをアンインストールして 2.2.1 を再度インストールしたので、
認識されないままになってしまったんじゃないかなあと。

そう思い、今日再度 3.0β2 をインストールして、
オーガナイザを開いてみると…、見えているではありませんか!
その後は iTunes でも検出されるようになったので、
オーガナイザの登録を解除し、β2 をアンインストール、
最後に 2.2.1 をもう一度インストールして、何とか実機テスト可能な状態にはなりました。

ただ、今回は /Developer 以下には SDK をインストールしないことにしました。
その理由は、SDK の多重インストールを行う場合に、
これが原因でうまく動作しないのではないかと考えたからです。
が、これも打開には至らないようで、
今度はシミュレータへインストールできないという状態に…

あちらを立てればこちらが立たず、といった状態は
いまだなお解消されていません。

このまま 6 月までこんな状況が続くんでしょうか…


.02 2009

非常事態発生!

Tasaki です。

今日の昼過ぎにとんでもないトラブルが発生してしまいました。
iTunes や Xcode からデバイスが検出されなくなる、
という恐ろしいものです。

初めはケーブルを疑ったんですが、
Windows PC 上の iTunes では何事もなく見えました。

次に、SDK の多重インストールまたは 3.0 β2 が
原因かと思い、SDK を全て消去し改めて 2.2.1 を入れてみたのですが、
これも功を奏しませんでした。

最後に、デバイスとマシンのリブート、
iTunes の完全消去からの再インストールを試みましたが
これもダメでした。

一応 ADC のテクニカルサポートにメールを送ってはみましたが、
果たして OS 再インストール以外に手はあるんでしょうか?
(ひょっとすると、それでもダメとか…)

今のところ原因不明なので、
明確な根拠があるわけではないのですが、
βプログラムをインストールする場合は相応の覚悟が必要
といったところでしょうか。


.01 2009

アプリケーション再起動の条件

Tasaki です。

iPhone OS 3.0 β2 が公開されましたね。
まだ、3.0 の方はあまり触っていないので、
変更点はあまり把握できていませんが。

早速ですが、今回はアプリケーションが再起動される条件を
ちょっと調査してみましたので、紹介します。

openURL: メソッドを使うと、
組み込みアプリやその他カスタムスキームを登録しているアプリが
起動されることになるわけですが、
その起動されたアプリがホームボタンを押すなどして終了した場合に、
それまで起動していたアプリが再び呼び出される、
という表現が公式ドキュメントに掲載されています。

ただし、常にそうするとは限らない、
という注意書きもその後に書かれているので、
どういう条件なら起動しないのかを調べることにしたのですが…

結論から言うと、再起動されるのは
通話アプリを呼び出した場合のみで、
その他の SMS、メール、地図などでは再起動されませんでした。

これでは、常にそうするとは限らないというより、
ほとんどのアプリが対応していない、といった方が的確のように思います。


システムによるアプリケーションの再起動は
バックグラウンド動作ができない iPhone アプリにおいて、
非常に重要な意味があると思うので、
ぜひきちんと実装しておいてほしかった機能ですね。

 HOME 

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。