ねこバタ会議

スマホアプリ制作に関するブログです。

AppStoreにバグ修正版を送信しようとしたら、This bundle is invalid.と表示されて送信できませんでした。

どうやら、MacのOSをYosemiteにした際に、何も考えずにXcodeもインストールしていて、それがベータ版だったようです。
とりあえずXcodeをアンインストールしてAppStoreから再インストールしました。

今度こそ…と思ったのですが、今度はビルド時に以下のような感じのエラーが出てしまってビルドできません。

fatal error: file 'ファイルパス' has been modified since the 
precompiled header 'ファイルパス' was built

ちょっと調べたところクリーンしてからビルドすれば直ると書いているブログが多かったのでやってみましたが、やはりエラーが出てしまいます。
 
困り果てていたのですが、やっぱりstackoverflowにありました。

Error: system file has been modified since precompiled header was built : stackoverflow

どうやら、以前のXcodeでビルドした際のキャッシュが残ってしまっているのが原因だそうです。

ということで、以下の場所にあるキャッシュを削除します。

~/Library/Developer/Xcode/DerivedData/ModuleCache

ちなみにFinderでユーザーディレクトリ内のライブラリディレクトリを開くためには、Optionを押しながら移動を選択すればいいそうです。
これも今回初めて知りました。
今まではターミナルでcd /Users/ユーザ名/Libraryみたいな感じで操作していたので、だいぶ楽になりました。

該当ディレクトリにあるキャッシュファイルを全て削除してビルドしたところ、無事に送信することが出来ました。

なお、新たにcrashlytics を導入することにしました。
アプリがクラッシュした時の情報を確認できるサービスで、これでバグの確認も捗りそうです。

導入方法についてはまた別途記事にしたいと思います。

2ちゃんにスレッドを立てて、実際に遊んでもらって意見を伺ってみました。

正直叩かれることを覚悟していたのですが、とても親切な方が多く、貴重な意見をいただきました。
 
判明したバグ・不具合については以下の通りです。

・iOS7.1で戦闘モードに入ると落ちる場合がある。また、英語モードで戦闘に入ると落ちる。
→原因がわかっていませんが、海外の方からも戦闘に入ると落ちるという報告が入っています。
今後調査して対応したいと思います。

・オートモードでのコンボ発動時に各キャラクタのタイムライン位置がリセットされる
→プログラミングミスです。完全に確認不足でした。

・スキルを習得できない場合がある。
→プログラミングミスでした。スキル経験値加算の画面で「街へ戻る」ボタンを押すのではなく、適当なところをタッチしてみてください(画像参照)

写真 2014-10-12 23 49 18

次回は、今回いただいたご意見を参考にして、今後実装予定または実装できたらいいなという機能について書きたいと思います。

Words & Magic のAndroid版を作成中ですが、開発用のマシンが壊れてしまいバタバタしていました。

ようやく新しい環境が整ったので再開できますが、これを機に開発環境をEclipseからAndroid Studioに移行することにしました。
Eclipseは機能も充実していて、ネット上に公開されているノウハウも豊富なのですが、予測候補表示がカスタマイズ後もやはりちょっと使いづらいので、思いきって変更することにしました。

とりあえず懸念となっていた予測候補表示は非常に快適です。
他の部分のメリットはあまりよくわかりません。

ただ、 ビルドしようとしたら以下のエラーが出てしまいました。

Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1

何を言っているのかさっぱりわからないのでググると、おなじみのstackoverflowのトピックが見つかりました。

Manifest merger failed : uses-sdk:minSdkVersion 14 : stackoverflow

どうやらサポートライブラリのバグ?のようです。
ということで、上記のトピックに書いてあった方法を試してみたところ、正常にビルドできるようになりました。

app/build.gradle内のdependenciesにある、
compile 'com.android.support:support-v4:+'
の部分を以下のように変更します。
compile 'com.android.support:support-v4:20.+'

おそらく、最初の設定だとサポートライブラリの最新版が入るようになっているのですが、テスト版でバグがあるんじゃないかなあと想像します。

バージョン21の安定版が出たら設定を戻したほうがいいのかもしれません。 

本日、新作ゲームのWords & MagicがAppStoreでリリースされました。

やはりiOS8とiPhone6の件で時間がかかっているらしく、審査が開始されるまでに11日かかりました。
ともあれ、無事にリリースまでこぎつけたので、一安心です。

ただ、バグがあることがわかったので、さっそく新バージョンをアップして審査請求しているところです汗

もしよかったら遊んでみてください。
ちなみにAndroid版はかなり難航しています(´・ω・`)
なるべく早くAndroid版もリリースできるようにがんばります。

wordsandmagiconappstore


【注意】ここに記載された内容の場合、一つのViewに対してのみ変更することが出来ます。
複数のViewの背景や枠線をそれぞれ変更したい場合は、以下の記事をご参照下さい。
続・Viewの枠線と背景色を動的に設定する Android&iOS(Objective-C)

ボタンに枠線と背景色を動的に設定する方法がわからなかったので、メモです。

まず、 以下のようなXMLファイルを用意して、res/drawableに適当な名前で保存します。
 
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2px" android:color="#ffffff" />
<padding android:left="2px" android:top="2px"
android:right="2px" android:bottom="2px" />
<corners android:radius="4px" />
</shape>
XMLファイルをdrawableに設定すれば、枠線が表示されます。ボタンに白い枠線が表示されました。
button.setBackgroundResource(R.drawable.border);
sc1

この時に背景色を変更しようとして以下のように書くと、ボーダーが消えてしまいます。
button.setBackgroundColor(Color.GREEN);
sc3


どうやら、背景はボーダーや色などが一括で設定されるようです(ものすごく初歩的なことだと思うのですが、あまり理解していません。すみません)。
というわけで、一旦背景の情報を取得してから変更することでボーダーや背景を変更することができます。

// 背景色を変更
GradientDrawable bgShape = (GradientDrawable)button.getBackground();
bgShape.setColor(resColor(R.color.Green));
bgShape.setStroke(4, resColor(R.color.DeepPink));
bgShape.setCornerRadius(2.5f);
resColor()はリソースからColor情報を変換するためのメソッドで、以下のような感じです。
int resColor(int res){
    return getResources().getColor(res);
}
setColorで色を設定、setStrokeで枠線の幅と色、setCornerRadiusで角の丸みを変更しています。
これを適用すると、以下のように反映されました。
 
sc2
 
ちょっと南米の昆虫のような配色になっていますね。
ちなみにリソースのカラー設定は、stackoverflowにあった以下のトピックから選んだものを使用しています。

 Android color xml resource file : stackoverflow

↑このページのトップヘ