タグ別アーカイブ: アイフォン

アイフォンアプリの宣伝、アイフォンアプリ名:どんぐり合戦を7月26日リリースしました

アイフォンアプリの宣伝、アイフォンアプリ名:どんぐり合戦を7月26日リリースしました。

申請からリリースの記事

画像
説明

*内容
アイフォンアプリ名:どんぐり合戦
りすがどんぐりをカラスに投げてカラスを退治するミニゲーム簡単シューティングです。現在の仕様はランキング無し、広告ありです。iPadレティナにも対応しています。

*ダウンロード
どんぐり合戦

*製作のべ期間4月〜7月、3ヶ月+約2週間(企画、開発、リリース日までの期間を含む)、申請からリジェクト1回の約15日で通過、日本語版のみです。cocos2d for iPhoneを使用、製作人数1名
説明ページ

リジェクトの内訳は、iPadのレティナ、非レティナ用画像が正常に表示されないというもので、判定処理をより厳密にして修正しました。

備考:過去のcocos2d for iPhone用アプリをcocos2d-xに移植していますが、objective-Cのcocos2d for iPhoneにようやく慣れてきたところで、cocos2d-xを勉強することになりゆっくり前進しているところです。
クロスプラットフォームの風が強く吹いておりcocos2d-xへ多くの人が流れて、cocos2d for iPhoneの今後のバージョンアップが気になります。好みとして、慣れているせいかobjective-Cのcocos2d for iPhoneがプログラムしやすいですね。

(4)完了、アイフォンアプリのリジェクト対応:やっと認可、そしてリリース

(4)完了、リジェクト対応:やっと認可、そしてリリース

 7月25日、アイフォンアプリがようやく認可されました。リリースは明日の予定です。
 前回のリジェクトの内容で、アイフォン5もバグレポートの機種としてメールに記載されていましたが、チェックをした機種がアイフォン5を含むものであり、実際のバグはiPadミニ(メールにはアイフォン5、「iPad」のみが記載)で発生したものと想定しました。
 そして、原因がRetina、非レティナ判別が不十分と判明し、対応しました。
とりあえず、認可のメールが来て安心しました。

結果として、リジェクト後の再申請は、最初の申請と同様に時間がかかるということがわかりました。
急ぐときは、メールで急いでチェックしてねとお願いした方がよさそうです。

 ・経緯
 7月10日 申請
 7月17日 リジェクト
 7月18日 (2)再申請前回までの内容記事
 7月24日 (3)リリース日変更メールがなくて認可されていないので、予定だった24日のリリース日を7月26日に変更(いまここ)なお、iTunesコネクトだったかに、不正侵入があったらしく数日、サイトが閉鎖されていました。これが影響しているのかもしれません。
 7月25日 認可
 7月26日 リリース

(2)アイフォンアプリ開発、リジェクト後の対応:再申請、今度は通過するか、iTunesConnectにログインして、アプリを選択してReady to upload binary をクリック

(2)アイフォンアプリ、リジェクト対応:再申請、今度は通過するか

前回(1)のリジェクト直後、ソフト改修の記事

 前回、Retina対応iPadと非Retinaの表示において、正常に表示されていないとリジェクトされました。ソースコードを確認し、判別チェック項目を追加しました。
 この申請で大丈夫でしょうか?まず結果を待つことにします。
 すべてのアイフォン、iPad機種を保有するのは、経済的に難しいのでシミュレータが頼りです。
 また、アップルのリジェクトの理由とテスト項目が詳細に提示されていません。例えば、アイフォン4ではOKで、アイフォン5はだめ、iPadMINIはだめで、iPadレティナはOKみたいに細かく不具合を示してくれれば良いのですが、「アイフォン5とiPadで確認したよ、だめなところがあります」程度なので、両方で不具合なのか、片方で不具合なのかが不明です。
 
 

7月18日、再申請しました。

 iTunesConnectにログインして、アプリを選択してReady to upload binary をクリック。
 つぎに、エディットスキームでDictributionを選択して(ここは各自設定が異なると思います)、オーガナイザを開き、該当アプリを選択して、Validate、Distributeをそれぞれクリックします。
 アップロードが始まります。
 
 

・経緯

 7月10日 申請
 7月17日 リジェクト
 

 7月18日 再申請(いまここ)

(2)cocos2d for iPhone をcocos2d-xに移植する過程の記録メモ、Androidクロスプラットフォーム化へ CCTextuer2DからCCSpriteを使う

(2)cocos2d for iPhone をcocos2d-xに移植する過程の記録メモ、Androidクロスプラットフォーム化へ CCTextuer2DからCCSpriteを使う

他の関連記事cocos2d-xに移植する過程の記録メモまとめ、Androidクロスプラットフォーム化へ 、(1)〜(6)分

 いろいろと本を3冊買って、cocos2d for iPhone をcocos2d-xに移植する過程を試みていますが、結構進みません。
 objective-cをc++にしようとするとかなり時間がかかりそうです。すんなりとはいきません。
 

・スプライトの作成の場合の比較

C++であるcocos2d-xは、オブジェクトの生成の時にnewを使用します。
一方のobjective-cはそのまま記載して画像を設定します。
・C++ , cocos2d-x

・objective-C, cocos2d for iPhone

・スケジュールの設定

C++ , cocos2d-x
int iTimer;
//schedule 1秒ごとに加算する

objective-C, cocos2d for iPhone

・座標の取得 position

C++ , cocos2d-x

objective-C, cocos2d for iPhone

・フォーラムの質問のallocのCocos2d-iphone to Cocos2d-X

タイトル:Converting snipets of code from Cocos2d-Iphone to Cocos2d-x

>Cocos2d-iphone
CCArray *spiders = [[CCArray alloc] initWithCapacity:5];

>Cocos2d-X
CCArray *spiders=CCArray::createWithCapacity(5);

Texture2dText.cpp
CCTextureCache使うときは、CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo();
が必要

CCTexture2dを使用するとき

objective-C, cocos2d for iPhone

COCS2d-x
CCTexure2Dでの注意、initWithTextureだと autorelease() is oK。しかし、CCSprite::createWithTextureでは、autorelease()を設定すると実行後しばらくしてエラーになる。
半自動か、手動管理のメモリ管理を決めましょう。

今日のアイフォンアプリ開発記録日誌、不明なエラー”_OBJC_CLASS_$_Stats”, referenced from

今日のアイフォンアプリ開発記録日誌、不明なエラー”_OBJC_CLASS_$_Stats”, referenced from

今日のエラー
アイフォンアプリを実行中の使用メモリ、CPU負荷を知りたくて、Stats.m,Stats.hを追加し、コンパイルすると

“_OBJC_CLASS_$_Stats”, referenced from
云々かんぬんのエラーが発生しました。

コードの記載が間違っているのかと思っていたら、XCODEの設定だそうです。

Target Membershipを設定すると良いそうです。

画像 targetmembership.jpg
targetmembership

今回のメモリ表示は、「達人のレシピ100」に記載されているものを自分コードに合うように変更しました。
cocos2dの場合はAppDelegate.m,hに記載しました。
サンプルコードのままでは表示されなくて、Admobで動作した記載を参考にしたら、表示されました。
画像、アイフォンキャプチャ画像
memory
こんな感じで表示されます。
メモリ使用量を見ると、なんどもゲームを繰り返し遊んでいると、メモリがどんどん増えているのがわかりました。どこかのタイミングでメモリを解放しないと増え続けそうです。

アイフォン・アイパッドデバイス端末のiOS Dev Centerへの追加登録手順メモ

アイフォン・アイパッドデバイス端末のiOS Dev Centerへの追加登録手順メモ

アイパッドをiOS Dev Centerに追加登録してアイフォン実機デバッグでアプリを確認します
アイフォンかアイパッドの証明書を作成する Provisioning Profiles

デバッグ確認が必要になりました。
アイパッドのシミュレータ(シュミレータって書きそうになりますが)では、リフレッシュレートが30以下になって動作確認が正常にできません。実機だと60FPSきちんと表示されるので、シミュレータの限界になるのでしょうね。

一つのAppIDで2つのデバイスを登録したprovisioning profileを作成しました。
アイパッドを新規にデバイスとして登録しました。
以下はその追加手順です。
なお、書籍の情報をたどりながら作業をしましたので、古い情報で作業をしたり、iOS Dev Centerのページが変わっていたりします。

前提条件として
アイフォン1機はすでに、登録されており、複数のアプリの登録をすでに実施した後のアイパッド実機の追加登録になります。
複数のAppIDが存在します。

参考サイト
App Storeへのアプリの登録手順 | 田村倉庫

複数のMacで開発記事アイフォンアプリiPhoneを作るときに複数台のMacで開発するときに証明書の認証をどうすれば良いのか?

作業日は、2013年6月8日です。
以下は作業したとおりに、画面キャプチャしながら、登録を進めました。そのため、正しい手順になっていないことがあります。
<AppIDの追加>その後、2台目の実機(アイパッド)登録になります。1台目はアイフォンで登録済みです。
1.iOS Dev Centerにログイン(すでにデベロッパー会員になっていることが条件です。)
https://developer.apple.com/devcenter/ios/index.action

2.画面右上の方の[Certificates, Identifiers & Profiles]をクリック

>>>>間違って別のところに進みました。AppIDの追加の場合は、下の3Aから進めてください。
(誤り)3.iOS Appsのグループの中のProvisioning Profilesをクリック

新しいプロファイルを追加
(誤り)4.画面の右側の十時アイコン(Add)をクリック
画像00
00
(誤り)5.Development の iOS App Developmentのラジオチェックを選択
01jpg
01
(誤り)6.Add iOS Provisioning Profileページで、Select App ID. となります。
でも、失敗。ページが違います。
02。jpg
02
AppIDを追加したいのですが。
>>>>

03。jpg
03
3A.Registering an App IDのページです。

04。jpg
04
05。jpg
05
06。jpg
06
Wildcard App IDで自分のドメインを登録

4A.先に進んで、完了。これで、新しくAppIDを登録できました。

5A.次に、先ほどの誤りの3に戻って、Provisioning Profilesをクリック
6A.画面の右側の十時アイコン(Add)をクリック
(誤り)5.Development の iOS App Developmentのラジオチェックを選択
(誤り)6.Add iOS Provisioning Profileページで、Select App ID. となります。
先ほど、作成したAppIDを選択
07。jpg
07
7.自分の登録を確認
08。jpg
08

8.端末を選択
今はアイフォン一台です。とりあえず、このまま進みますが、
アイパッドを新規に登録したかったのですが。
ここで、十時アイコン(Add)をクリックします。
が一緒でした。
What type of provisioning profile do you need?の画面になりました。
09。jpg
09
>>結局同じ画面を繰り返しでした。

とりあえず、まず、アイフォンの実機を登録します。

9.Name this profile and generate.
Profile Name:を登録します。ここは開発者がわかる名称で良いそうです。
iPadDonguri_profile
としました。
10。jpg
10
10。Your provisioning profile is ready.
ダウンロードできました。
11。jpg
11
<実機追加>
画面を見て気づきました。左側にDevicesとありました。
12。jpg
ここをクリックします。
12
1 iOS Devices
13。jpg
13
登録された実機デバイスが表示されています。
今回iPadを登録したいので、十字キーを押します。

2.Registering a New Device or Multiple Devices
ようやくアイパッドを登録して、実機でアプリの確認ができそうです。
UDIDは、iTunesの概要タブのシリアル番号をクリックすると表示されます。
14.jpg
14
このまま登録を進めます。

15。jpg
15
完了

そして、また、
IdentifiersのAppIDsで、先ほど作成したAppIDで二つの端末で使用すれば良いのでしょうか(登録で着るみたいです。)

16。jpg
16
違いました。
ここではなにもできません。

Provisioning Profielsで、アイパッドの実機を登録できるでしょうか?
17。jpg
17
先ほど登録したiPadDonguri_profileをクリックします。

Device 1totalと記載されていて、Editボタンがありました。もしかしてできるかもしれません。
Editボタンをクリックします。
18.jpg
18
Deviceが表示されました。
これまでの実機追加のところで追加アイパッドが表示されています。選択します。
19。jpg
19
Your provisioning profile is ready.ページで
ダウンロードします。
20。jpg
20

(ここは不要みたいでした。)
>>>>>>>
<キーチェーンアクセスの設定>
キーチェーンアクセスを開き、
メニューのキーチェーンアクセス、証明書アシスタント、認証局に証明書を要求を選択します。
21。jpg
21
そのまま、進め、ファイルを保存します。私は、書類に入れました。
>>>>>>>

<iPadDonguri_profile(1).mobileprovision、iOS devで作成したファイルをオーガナイザに登録>
先ほど、iOS devで作成したファイル、ここでは書類に保存したものを、オーガナイザに登録します。
ここでは、XCODEのアイコンにドラッグします。するとオーガナイザ起動します。
このとき、新しい端末のアイパッドをMacに接続しておきます。

そして、アイパッドの項目を選択し、UseDeviceをクリックします。
22。jpg
22
そして、アプリを実機で確認するために、端末を設定して実行を押しました。

エラーが表示:
Code Sign error: A valid provisioning profile matching the application’s Identifier ‘com.yourcompany.e-Don’ could not be found

‘com.yourcompany.e-Don’を
‘com.enjoygoodtown.e-Don’
にしました。

再度実行して、無事新しく登録したアイパッドで実機確認ができました。

今日のエラー tree.hがないといわれて、libxmlを追加したらArgument list too longエラー

今日のエラー tree.hがないといわれて、libxmlを追加したらArgument list too longエラー

サンプルコードをダウンロードしてコンパイルすると、警告とエラーが表示されました。
そこで、

Xcode4でlibxmlをインクルードする際の注意点(外部サイト)

を参考にして、

(1)Link binary With Librariesでlibxmlを追加し、

(2)「Build Setting」→「Search Pass」→「Header Search Paths」でPathに$(SDK_DIR)/usr/include/libxml2 を指定

すると、

Argument list too long: recursive header expansion failed at /Applications/Audacity/help/manual/m/images/0/08.
引数が長すぎる。
と言われても、こちらがしていしているわけではないのに、
しらべると
なにやら、パスを短くするようにしたらよいみたいな英文が発見されるも具体的な対処が見つからず。再帰が何とかという英文もあったがそのときは意味不明。

そこで、パスを設定した先ほどのところの設定をみると、recursive(再帰)、non(再帰しない)とあったので、再帰しないNon-recursiveを選択。

「Build Setting」→「Search Pass」→「Header Search Paths」でPathに$(SDK_DIR)/usr/include/libxml2 を指定のところで、no-recursiveを選択すると、エラーがなくなりました。

X-CODE4.6.2です。

前回のエラー

アイフォンアプリ開発、今日のエラー、別のクラスに生成していた

アイフォンアプリ開発、今日のエラー、別のクラスに生成していた

メニューを表示させるクラスが2種類ありました。
指定していたのは、Aメニューなのに、Bメニューが生成されました。
もしかして、クラス名が違っているだけかと思っていたら、
なんと、宣言までは、Aメニュークラスなのに、生成で、Bメニューを指定してたというコピペのミスでした。

<原因>
コピペミスによる希望するクラスではないクラスを指定していた。

<模索過程>
変数名が別になっていないかをチェック。
ブレークポイントを指定。
関数名を変更。(原因がわかった後は、もとにもどした)
それでも、異なるメニューが呼ばれる。
再度、コードをよく見ると、別のクラスを生成してた。
コピペしていて、本来のクラス生成にしていなかった。

これに気づかなかったのは、メニュー構成が全く同じだったから、そのまま使ってた。

<改善できるか?>
・気をつけるというしかないですが、もっと直感的に間違っていると認識できるように今後検討する。


*** Assertion failure in +[BossMainGame sharedBossMainGame], Game.m:34
*** Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘not yet initialized’
*** First throw call stack:

Today’s Error
I added Class of Same function to another Class.
example, there are a menu class and another menu class. I make one menu method. but I mistook to add one menu class to another class method.

error
MenuClass * menu=[AnotherMenuClass node];//

correct
MenuClass * menu=[MenuClass node];//

I understood copy and paste was wrong.

前のエラー

ゲーム製作のための講座メモ RPGからシミュレーション、ボードゲーム、アルゴリズムなど

ゲーム製作のための講座メモ RPGからシミュレーション、ボードゲーム、アルゴリズムなど

アイフォン向けのRPGゲームを作りたいと思っています。しかし、どのようにしてコードを組んだり、AIを組み込んで良いのかさっぱりわからず、難しい状態です。
そこで、手始めに、ゲームのアルゴリズムやサンプルコードを探し、そこから必要なプログラムコードを学んでいきたいと思っています。

I will plan to make a RPG game for iPhone. But it is difficult to build any code and AI system for me. So first I find any algorithm of game and sample game codes, I learn and pick up its program code.

ジャンル別ゲームの作り方とアルゴリズムまとめ – ネットサービス研究室
00画像
サイト画像

その他、ゲーム製作メモ

今日のアイフォンアプリ開発、cocos2d のエラー、Enumeration values ‘NSTextAlignmentJustified’

今日のアイフォンアプリ開発、cocos2d のエラー、Enumeration values ‘NSTextAlignmentJustified’

cocos2d-iphone-1.0.1/tests/PerformanceTestsプロジェクトで
PerformanceParticleTestを実行したエラーです。

FontLabel.m、FontLabelStringDrawing.mのファイルで、

Enumeration values ‘NSTextAlignmentJustified’ and ‘NSTextAlignmentNatural’ not handled in switch
とうのが、エラーとして表示されました。
該当のSwitch文に
default:break;を追加すれば、OK。

参考サイト
[cocos2d] xcodeを4.5にした時に出てくる警告の解消方法