emitted errors but did not return a nonzero exit code to indicate failure というエラーがでた

Default.pngをいじっていたらシミュレータを起動した時にエラーになりました

While reading /Users/kawasakiosamu/Dropbox/workspace/Hogehoge/Default.png pngcrush caught libpng error: \352\217\300n\354\217\327扚@!\354\217\340 Command /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/copypng emitted errors but did not return a nonzero exit code to indicate failure

たしかDefault.pngというファイルがいくつかあると都合が悪いみたいです。
追加したファイルを消したりと画像を元に戻していたらエラーがでなくなりました。

参考:http://stackoverflow.com/questions/13679710/not-a-png-filcommand-copypng-emitted-errors-but-did-not-return-a-nonzero-exit-co

Incomplete implementation of class クラス名 というエラー

Objective-CでiPhoneアプリを作っているとIncomplete implementation of class クラス名というエラーがでることがあります。

これはメソッドが無いときによくでるエラーです。
例えばヘッダに以下のようなhogeメソッドがあったとします。
-(void) hoge:(UIImage *)image;

そしてメタファイルのほうにhogeがない場合Incomplete implementation of…というエラーがでます。
このエラーが出た場合メソッドがあるかどうかを確認するようにしたほうがいいですね(☝ ՞ਊ ՞)☝

cocos2dでUIInterfaceOrientationMaskPortraitを指定しないとエラーがでた

cocos2dのプロジェクトをつくって画面を縦方向にしようとしたときのエラーです。ちなみにプロジェクト名はOmikujiです。

TARGETSのSupported Interface Orientationsから縦方向にしようと選択しました。
cocos2d-supported-interface-orientations

ビルドしようとしたら落ちました。

Omikuji[57461:15203] Retina Display Not supported
2013-03-30 16:06:00.568 Omikuji[57461:15203] *** Terminating app due to uncaught exception ‘UIApplicationInvalidInterfaceOrientation’, reason: ‘Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES’
*** First throw call stack:
(0x2501012 0x1edee7e 0x2500deb 0xba1702 0xb9c046 0xb9c246 0xae501f 0xdc792 0xab17b7 0xab1da7 0xab2fab 0xac4315 0xac524b 0xab6cf8 0x3209df9 0x3209ad0 0x2476bf5 0x2476962 0x24a7bb6 0x24a6f44 0x24a6e1b 0xab27da 0xab465c 0xdbff6 0x2625)
libc++abi.dylib: terminate called throwing an exception

これはAppDelegateに指定しているOrientationの方向が悪いみたいです。
-(NSUInteger)supportedInterfaceOrientations {
// iPhone only
if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone )
return UIInterfaceOrientationMaskPortrait;
// iPad only
return UIInterfaceOrientationMaskPortrait;
}

UIInterfaceOrientationMaskLandscapeをUIInterfaceOrientationMaskPortraitに書き換えます。

エラーが消えてシミュレータが起動できるようになりました(☝ ՞ਊ ՞)☝

cocos2dの画面を縦方向にするなら画面を縦方向に変更するに従ったほういいのかもしれないです。

cocos2dで画面をiPhone5対応する

cocos2dで作成中のアプリに、シミュレータの上下へ黒い帯が入っていました。

むむ、これはおかしいですね。希望としては黒い帯が消えてほしいのです。
検索してみるとそれらしき対応策が見つかりました。

新たな解像度(640px x 1136px)のスプラッシュ画像を
Default-568h@2x.pngというファイル名で作成しましょう。

このスプラッシュ画像の存在が、iPhone 5解像度で表示されるトリガとなります。
逆に、スプラッシュ画像を作成しないと、上下に黒いスペースが表示されたままとなってしまいます。
参考:http://moomindani.wordpress.com/2012/10/24/cocos2d-iphone5/

どうやらDefault-568h@2x.pngという名前の画像を作ればいいみたいです。
元から入っていたDefault.pngをコピーしてファイル名を変更しました。
Default-568h@2x
ついでに画像サイズを640*1136pxに変更しました。

すると

ばっちりです!!上下の黒い帯が消えました(☝ ՞ਊ ՞)☝
ちなみにDefault-568h.pngというのは入れていません。

Xcodeにスニペットを追加する

cocos2dでゲームを作っているとXcodeの補完がやや貧弱な気がして強化したくなりました。

Xcodeにスニペットを追加することによって補完を強化します。

スニペットのパネルを開きます。
Xcodeのスニペット

スニペットに追加したいコードを選択します。
スニペットに追加するコードを選択する

新しくスニペットが追加されます。おそらく一番下に追加されるはずです。
新しく追加されたスニペット

追加されたスニペットを選択してEditからスニペットを編集します。
スニペットを編集

Completion Shortcutに補完されるときにタイプする単語を入れます。「CCLabelTTF」とタイプしたときに登録したスニペットが表示されるようにします。
また、タブ補完をされるためには、<#@"文字列"#>のように<##>で囲ってあげます。
スニペットの編集

上図のようにするために入力した文字列です。

CCLabelTTF *label = [CCLabelTTF labelWithString: <#@"文字列"#> dimensions:CGSizeMake(<#width #>, <#height #>) hAlignment:UITextAlignmentCenter fontName:<#@"Arial"#> fontSize:<#32#>];
label.position = ccp(<#positionX#>, <#positionY#>);
[self addChild:label];

コードの入力画面に戻ってCCLまでタイプするとリストに登録したスニペットがすでに表示されています。
Xcodeに登録したCCLabelTTFのスニペット

タブから選択するとちゃんと登録したらスニペットが表示されました。
Xcodeに登録したスニペットを表示
よかったよかった(☝ ՞ਊ ՞)☝

Xcodeの補完が足りないところはこの調子いくつかスニペットを登録していこうかとおもいます。

TitaniumMobileで開発したいなど

Titaniumってどうなの(☝ ՞ਊ ՞)☝

いっちょやってみっか

JavaScriptとTitaniumではじめる iPhone/Androidアプリプログラミング 【Titanium Mobile SDK 2.1 & Titanium Studio 2.1 対応】
JavaScriptとTitaniumではじめる iPhone/Androidアプリプログラミング 【Titanium Mobile SDK 2.1 & Titanium Studio 2.1 対応】 森 真吾

マイナビ 2012-09-14
売り上げランキング : 43360

Amazonで詳しく見る by G-Tools

[tweet]

iPhoneアプリの他言語対応でエラーがでた

他言語対応をしようとしたらエラーが出て困りました。

実際に出たエラーはこちらです。

Localizable.strings:0: error: read failed: The data couldn’t be read because it has been corrupted.

このエラーはケアレスミスでした。
"New" = "ほげ"
のように記述していたため、行末に;が抜けていました。
"New" = "ほげ";
上記のように修正したら正しく動きました。

これはひどい(☝ ՞ਊ ՞)☝

岐阜スマートフォンウィークのハッカソンでアプリ作りました

岐阜スマートフォンウィークのアイデアソンとハッカソンに参加しました(☝ ՞ਊ ՞)☝

初日はアイデアソン

[tweet]
アイデアソンでは石井力重さんという講師の方がアイデア作りの方法について講義+ワークをしてくださいました。
http://ishiirikie.jpn.org/article/62330078.html
この日のスライド資料も上記サイトにすべて公開されています。

夕方から二日間のハッカソン

ハッカソンのお題はご当地アプリということ岐阜を盛り上げるアプリということでした。

ボクが選んだ企画は、信長をカスタマイズするという企画です。
メンバーはボク以外に2人で3人のチームでした。

しかしこのチームがやばかったです。

何しろiPhoneアプリでツールを作ったことがある人間がゼロ。
iPhoneプラグラミング経験がかろうじてあるレベルが2人・・・絶望的状況でした。

しかし実は検索すると意外に進捗した感じになりました。

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

カメラの開発などは未経験だったのでやばいとおもわれましたが、初日の夜に基礎実装はほぼ終わっていました。

カメラにエフェクトをいれる辺りでかなり手こずってピンチでした。
プレゼンの準備など全くしていませんし画像など入っていません。

つまりプレゼンづくりなどの準備をする暇がありませんでした。

facebookから発表するボクの写真。

この段階ではすでにエフェクトがかかった写真が上がっています。

[tweet]

[tweet]

[tweet]

[tweet]

なんとかしどろもどろで発表がおわりました。

岐阜スマートフォンウィークアプリハッカソン発表

[tweet]

ハッカソンに参加してよかったこと

ハッカソンに参加して良かったことは2点あります。

  • カメラアプリにチャレンジしたこと
  • 1日でプロト完成までいけたこと

おそらくボク個人単体では、カメラアプリを作ろうと考えることがそもそもなかったとおもいます。
しかし、ハッカソンに参加することでカメラアプリを作る経験が得られたのは大きな収穫でした。

そして1日でプロト完成までいけたことが自信につながりました。そもそも完成までいけないんじゃないかと思っていましたから。

チームに参加したメンバーを見たときは開発がもっともできないのはボクじゃないかとおもっていまたしたが、実際にはボクがメインで開発をやることになりおもしろい体験ができました。

次に何かのハッカソンがあったらまた参加してみたいです。

また、岐阜信長カメラのアプリに関してはリリースしてみたいとおもいます。

おしまい

Titanium Studioをインストールした

Titanium Mobileを使いたいのでTitanium Studioをインストールしました。

Titanium Studioを入手するために以下のURLへアクセスしました。
http://www.appcelerator.com/platform/titanium-sdk/
Titanium-mobile-download

会員登録をしないとダウンロードできないので会員登録します。

会員登録が終わったらダウンロードページからTitanium Studioをダウンロードします。右にダウンロードリンクがあります。
https://my.appcelerator.com/resources
Titanium-mobile-download-page

ボクはMacを使っているのでTitanium Studioのアイコンをドラッグをするとインストールが始まります。
Titanium-mobile-install-mac

しばらくするとインストール完了です。
Titanium SDKを立ち上げます。

インストールするディレクトリだったとおもいますので、okを押します
Titanium-mobile-workspace-lancher

メンバー登録は済んでいるのでnextを押します。
Titanium-mobile-account

Titanium Studioに最初に登録したメールアドレスとパスワードを入力します。
Titanium-mobile-Account-login

インストールのローディングが走ります。
Titanium-mobile-install-loading

起動成功しました。インストール完了です。
Titanium-studio-sdk-3.0

ついでに、アップデートが表示されているのでアップデートもしておきます。Nextを押します。
スクリーンショット 2013-02-15 9.00.00

NodeJSと書いてあるので必要ないかもしれませんね。
スクリーンショット 2013-02-15 9.00.09

Updateの開始
updateが開始

Titanium Studioのアップデートが終わりました。
スクリーンショット 2013-02-15 9.24.41

おしまい

注意ポイント、TitaniumStudioはネットがユーザー認証があるのでユーザーとの連携がないと使えません。

The worldというtwiterアプリについて

なかなか良さげなクライアントです(☝ ՞ਊ ՞)☝

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]

[tweet]