前提・実現したいこと
Unity5.3で作成したプロジェクトをxcode7.3のiPhone4s(iOS9.3),iPhone5(iOS9.3)などのCPUが32bitだった機体のシミュレーターでビルド・実行するとインストールはされるのですが、アプリは動作しません。
より正確にはUnityのロゴが表示される前の起動画面(ローンチ画面?)で動作が停止します。停止しますが、アプリが落ちているわけではなさそうです。
シミュレーター本体がフリーズしているわけでもなく、ホームボタンなどの操作によるアプリの終了は行えます。
エラーを解消してUnity5.3で作成したプロジェクトをxcode7.3のiPhone4s(iOS9.3)のシミュレーター上で動作させたいです。
発生している問題・エラーメッセージ
dyld: Symbol not found: __ZN14Il2CppIUnknown3IIDE
Referenced from: /Users/administrator/Library/Developer/CoreSimulator/Devices/[シミュレーターのIdentifier]/data/Containers/Bundle/Application/D0E525C4-52CE-4180-A2DA-361B5537C098/[アプリ名].app/[アプリ名]
Expected in: flat namespace
in /Users/administrator/Library/Developer/CoreSimulator/Devices/[シミュレーターのIdentifier]/data/Containers/Bundle/Application/D0E525C4-52CE-4180-A2DA-361B5537C098/[アプリ名].app/[アプリ名]
(lldb)
該当のソースコード
▼Thread 1 / 0 dyld_fatal_error
dyld_sim`dyld_fatal_error:
0x92c000 <+0>: int3
-> 0x92c001 <+1>: nop
▼Thread 1 / 7 _dyld_start
dyld`_dyld_start:
0x8fe36000 <+0>: popl %edx
0x8fe36001 <+1>: pushl $0x0
0x8fe36003 <+3>: movl %esp, %ebp
0x8fe36005 <+5>: andl $-0x10, %esp
0x8fe36008 <+8>: subl $0x20, %esp
0x8fe3600b <+11>: calll 0x8fe36010 ; <+16>
0x8fe36010 <+16>: popl %ebx
0x8fe36011 <+17>: movl 0x34e75(%ebx), %ecx
0x8fe36017 <+23>: movl 0x34e71(%ebx), %eax
0x8fe3601d <+29>: subl %eax, %ebx
0x8fe3601f <+31>: addl %ebx, %ecx
0x8fe36021 <+33>: movl %edx, (%esp)
0x8fe36024 <+36>: movl 0x4(%ebp), %eax
0x8fe36027 <+39>: movl %eax, 0x4(%esp)
0x8fe3602b <+43>: leal 0x8(%ebp), %eax
0x8fe3602e <+46>: movl %eax, 0x8(%esp)
0x8fe36032 <+50>: movl %ebx, 0xc(%esp)
0x8fe36036 <+54>: movl %ecx, 0x10(%esp)
0x8fe3603a <+58>: leal 0x1c(%esp), %eax
0x8fe3603e <+62>: movl %eax, 0x14(%esp)
0x8fe36042 <+66>: calll 0x8fe36086 ; dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*)
-> 0x8fe36047 <+71>: movl 0x1c(%esp), %edx
0x8fe3604b <+75>: cmpl $0x0, %edx
0x8fe3604e <+78>: jne 0x8fe3605c ; <+92>
0x8fe36050 <+80>: movl %ebp, %esp
0x8fe36052 <+82>: addl $0x4, %esp
0x8fe36055 <+85>: movl $0x0, %ebp
0x8fe3605a <+90>: jmpl *%eax
0x8fe3605c <+92>: movl 0x4(%ebp), %ebx
0x8fe3605f <+95>: movl %ebx, (%esp)
0x8fe36062 <+98>: leal 0x8(%ebp), %ecx
0x8fe36065 <+101>: movl %ecx, 0x4(%esp)
0x8fe36069 <+105>: leal 0x4(%ecx,%ebx,4), %ebx
0x8fe3606d <+109>: movl %ebx, 0x8(%esp)
0x8fe36071 <+113>: movl (%ebx), %ecx
0x8fe36073 <+115>: addl $0x4, %ebx
0x8fe36076 <+118>: testl %ecx, %ecx
0x8fe36078 <+120>: jne 0x8fe36071 ; <+113>
0x8fe3607a <+122>: movl %ebx, 0xc(%esp)
0x8fe3607e <+126>: pushl %edx
0x8fe3607f <+127>: jmpl *%eax
0x8fe36081 <+129>: nopl (%eax)
試したこと
- プロジェクトの内容は何もない空間に立方体が描画されているだけのものです。GUIなども作ってませんし、アセットやプラグインも入れてません。
- iPhone5sやiPhone6などのシミュレーターでは動作します。
- Architectures -> Standard architectures(i386, x86_64) ― $(ARCHS_STANDARD)
- Vaild Architectures -> i386, x86_64
- xcodeのiOS Deployment TargetとUnityのTarget minimum iOS Versionはともに8.0です。
- Appetize.ioで確認してみましたが同様の現象が起きました。
- Product > Cleanの処理は何度か行っています。
補足情報(言語/FW/ツール等のバージョンなど)
■制作環境
OSX 10.11.4
Unity5.3.4f1
Xcode 7.3
■Unity側の設定
Target Device -> iPhone + iPad
Target SDK -> Simulator SDK
Target minimum iOS Version -> 8.0
Architectureはx86_64と表示されてグレーアウト
■その他
作業を行ったMacにxcodeの以前のバージョンはインストールしていません。
iPhone4sのシミュレーター自体は起動します。
できるかぎり調べたつもりですが、解決にいたりませんでした。
どうかよろしくお願いいたします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
■Unity側の設定
Target Device -> iPhone + iPad
Target SDK -> Simulator SDK
Target minimum iOS Version -> 8.0
Architectureはx86_64と表示されてグレーアウト
Architectureはx86_64と表示されてグレーアウトということは、Scripting Backendの設定がIL2CPPになっていると思います。
Scripting Backendの設定をMono Runtime APIにすることで、iPhone4s,iPhone5などの32bitのCPUのシミュレーターも動くようになると思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/05/27 11:36
まさにその通りでした!
IL2CPPからMono2xに変更したところ
Architectureがi386となり
32bit系シミュレーターでも動作いたしました。
どこかで読んだIL2CPPが妥当という記事を盲目的に信じて
そこは変更していませんでした。
でもMono2xにすると今度は64bit系シミュレータでは動かなくなるのですね…
私のような初心者は注意が必要だ。
的確な解答ありがとうございました!