cordova3.4.0-0.1.3(PhoneGap)で質問です。iOS6.1がインストールされているiPad2向けに出力し、ビルドまでは成功するのですが、実行直後に例外が発生し、うまく実機で動作させることができません。同じコードをiOS7.1がインストールされているiPadAirに行った場合は同様の問題が発生しません。Xcodeは5.1です。どこが問題なのかわからないので、チェックすべきポイントを教えていただければ幸いです。

なおXcodeに記録されるエラーの内容は以下の通りです。

2014-03-16 21:50:50.568 アプリ名[1567:907] *** Assertion failure in -[CDVConfigParser parser:parseErrorOccurred:], /Users/(省略)/App/platforms/ios/CordovaLib/Classes/CDVConfigParser.m:85
2014-03-16 21:50:50.570 アプリ名[1567:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'config.xml parse error line 86 col 40'
(文字数制限により以下略)

以上よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/03/16 22:03:39
  • 終了:2014/03/17 22:24:20
id:halohalolin

(先ほどのエラーについて続きです)

First throw call stack:

(0x313c62a3 0x3923a97f 0x313c615d 0x31c9bab7 0xcaa65 0x31ce2a13 0x39537c5b 0x3954adcb 0x3955077d 0x395520cd 0x39551ced 0x31ce2937 0x31ce28e1 0x31ce2b35 0x31ce2bcb 0xbc279 0xbb75b 0xbb81f 0xceed5 0xbb97d 0xcef7d 0xce859 0x3322ead9 0x3322e663 0x3322684b 0x331cec39 0x331ce6cd 0x331ce11b 0x34ec45a3 0x34ec41d3 0x3139b173 0x3139b117 0x31399f99 0x3130cebd 0x3130cd49 0x33225485 0x33222301 0xce493 0x39671b20)
libc++abi.dylib: terminate called throwing an exception

以上よろしくお願いいたします。

ベストアンサー

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632014/03/17 12:58:13

ポイント500pt

↓ここをご参照ください。

Phonegapでconfig.xmlのパースエラーは,アイコン設定変更時に発生する。その解決手順
http://d.hatena.ne.jp/TipsMemo+computer-technology/20140317/p1


・アイコン画像は所定の場所に設置されていますか?

・どのサイトまたは書籍の手順に従って作業していますか?その手順と自分の環境でバージョンが違いませんか?手順書と手元の環境では必要なリソースが異なっていませんか?チュートリアル通りやっても実行時エラーになる場合があります。マイナーバージョンまで一致するかご確認ください。

・config.xmlの例外箇所はどのような記述になっていますか?該当する行を消しても同様のエラーになりますか?

・プロジェクトを作り直すという手っ取り早い最終手段があります。それでも再発しますか?だとするとやはりバージョン違いの手順を行なっていませんか?

id:halohalolin

lang_and_engineさんありがとうございます。

> config.xmlの例外箇所はどのような記述になっていますか?該当する行を消しても同様のエラーになりますか?

該当する行(86行目)がそもそも存在しません。

> プロジェクトを作り直すという手っ取り早い最終手段があります。それでも再発しますか?

再発しています。

こうなったのを思い返してみますと

3.3系でそもそも組んでいて、その時点では上手くいっていた

追加してFileAPIを使うことになり、組み込もうとしました

しかし、ビルド後からはFileAPIを認識してくれないのに
cordova plugin ではインストール済みと言って埒が明かない

cordova plugin rm等を試すが、エラーが出て削除できない
(エラーは失念)

あきらめてプロジェクトを作り直す

今度はiPad2への書き出しが上手くいかなくなった

なら3.4系にアップデートしたらどうだ?

やっぱり上手くいかない、エラーも同じ←イマココ

という状態です。

またあとで、アイコン周りをもう一度調べてみます。

2014/03/17 16:18:43
id:halohalolin

lang_and_engineさんありがとうございました。

1.config.xmlについて、Identity and Typeを調べてみたところ
なぜかiosフォルダ内のconfig.xmlではなく、build前のconfig.xmlを参照していた

2.その上で「<icon gap:platform="ios" height="57" src="res/icon/ios/icon-57.png" width="57" />」を削除した

上記2点を修正したところ、何故かiPad2でも再びビルド&動作するようになりました。
ヒントをくださりありがとうございます。

ただ2番については「3.3系でそもそも組んでいて、その時点では上手くいっていた」の頃からずっとこのコードだったので、今回の症例は解せないのですが。
まぁApp IconsやLaunch Imagesは、config.xmlに頼らず自分で元から
(プロジェクト名) > TARGETS > (プロジェクト名) > GeneralのApp IconsやLaunch Imagesより指定していたので、まあいいやということにしようと考えています。

2014/03/17 22:23:18

その他の回答(1件)

id:halohalolin

質問文を編集しました。詳細はこちら

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632014/03/17 12:58:13ここでベストアンサー

ポイント500pt

↓ここをご参照ください。

Phonegapでconfig.xmlのパースエラーは,アイコン設定変更時に発生する。その解決手順
http://d.hatena.ne.jp/TipsMemo+computer-technology/20140317/p1


・アイコン画像は所定の場所に設置されていますか?

・どのサイトまたは書籍の手順に従って作業していますか?その手順と自分の環境でバージョンが違いませんか?手順書と手元の環境では必要なリソースが異なっていませんか?チュートリアル通りやっても実行時エラーになる場合があります。マイナーバージョンまで一致するかご確認ください。

・config.xmlの例外箇所はどのような記述になっていますか?該当する行を消しても同様のエラーになりますか?

・プロジェクトを作り直すという手っ取り早い最終手段があります。それでも再発しますか?だとするとやはりバージョン違いの手順を行なっていませんか?

id:halohalolin

lang_and_engineさんありがとうございます。

> config.xmlの例外箇所はどのような記述になっていますか?該当する行を消しても同様のエラーになりますか?

該当する行(86行目)がそもそも存在しません。

> プロジェクトを作り直すという手っ取り早い最終手段があります。それでも再発しますか?

再発しています。

こうなったのを思い返してみますと

3.3系でそもそも組んでいて、その時点では上手くいっていた

追加してFileAPIを使うことになり、組み込もうとしました

しかし、ビルド後からはFileAPIを認識してくれないのに
cordova plugin ではインストール済みと言って埒が明かない

cordova plugin rm等を試すが、エラーが出て削除できない
(エラーは失念)

あきらめてプロジェクトを作り直す

今度はiPad2への書き出しが上手くいかなくなった

なら3.4系にアップデートしたらどうだ?

やっぱり上手くいかない、エラーも同じ←イマココ

という状態です。

またあとで、アイコン周りをもう一度調べてみます。

2014/03/17 16:18:43
id:halohalolin

lang_and_engineさんありがとうございました。

1.config.xmlについて、Identity and Typeを調べてみたところ
なぜかiosフォルダ内のconfig.xmlではなく、build前のconfig.xmlを参照していた

2.その上で「<icon gap:platform="ios" height="57" src="res/icon/ios/icon-57.png" width="57" />」を削除した

上記2点を修正したところ、何故かiPad2でも再びビルド&動作するようになりました。
ヒントをくださりありがとうございます。

ただ2番については「3.3系でそもそも組んでいて、その時点では上手くいっていた」の頃からずっとこのコードだったので、今回の症例は解せないのですが。
まぁApp IconsやLaunch Imagesは、config.xmlに頼らず自分で元から
(プロジェクト名) > TARGETS > (プロジェクト名) > GeneralのApp IconsやLaunch Imagesより指定していたので、まあいいやということにしようと考えています。

2014/03/17 22:23:18
id:language_and_engineering No.2

lang_and_engine回答回数170ベストアンサー獲得回数632014/03/17 19:57:07

ストーリーボード上でひも付け等をやり直してみるとどうでしょうか。
(プロジェクト再作成時には,1からひも付けをやり直したのでしょうか?古いファイルセットをそのまま流用していますか?)

Xcodeでビルド時に return UIApplicationMain が出たときの対処|iPhoneアプリ開発ブログ
http://ameblo.jp/swift11/entry-11308528196.html
>削除したはずの「test」にまだ紐付けされている状態になっています。×で紐付けを解除して再度ビルドしたところ、きちんと動作しました

id:halohalolin

lang_and_engineさん、ありがとうございます。
(誤字がありましたので修正します)

そもそもストーリーボードはさわっていません。
先に記載した「あきらめてプロジェクトを作り直す」ですが、プロジェクトの全ファイルを全て別フォルダにどけた上で、 cordova createからやり直しました。

さすがにbuild前に用意しておくwwwフォルダだけは前プロジェクトの内容を丸々コピーしましたが、何か悪影響を及ぼしているのでしょうか・・・。

2014/03/17 22:04:36
  • id:halohalolin
    iPad2は、Xcodeから実行した際、main.mの以下の箇所を問題として指摘します。

    #import <UIKit/UIKit.h>

    int main(int argc, char* argv[])
    {
    @autoreleasepool {
    int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); ←【ここ】
    return retVal;
    }
    }

    よろしくお願い致します。
  • id:fiwa
    config.xmlの場所はわりと最近/wwwからプロジェクトのルートに移動されているようですが、そういったことが影響している可能性はないでしょうか?
    ドキュメントを見ると/wwwにある場合もサポートされているようではありますが...
    http://cordova.apache.org/docs/en/3.4.0/config_ref_index.md.html#The%20config.xml%20File
  • id:halohalolin
    fiwaさんありがとうございます。
    私の事例においては、その影響が少ないのでは?と考えています。

    なぜならプロジェクトを空にして、cordova3.4系にアップデートした後最初にcreateした際、config.xmlも含め、自分が構築していたプロジェクトとは配置が異なっているのに気がついたので、自分のwwwソースもコピー前に構成をあわせるよう修正していたからです。

    その修正が失敗していた可能性もありますが、結果的にはconfig.xmlの変更で再びビルドしたものが動くようになったことから、可能性が少ないと推測した次第です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません