IOS Air应用程序在没有信息的情况下崩溃

时间:2015-12-04 22:17:54

标签: ios actionscript-3 flash air segmentation-fault

我们的团队一直在努力工作2周(工作和个人),以及有关Ios部署和Adobe Air的以下问题。以下是我们的问题应用程序的详细信息。如果有人可以帮助我们调试此任务,我们非常感谢。

该团队使用IntelliJ / Flashbuilder设置airsdk 17,以下描述也影响AirSdk19和Beta Build AirSDK20。我们正在尝试在IOS上编译一个Adobe Air项目,但是当使用Apple规定的AOT编译器编译应用程序时会遇到很多麻烦(我们的Android应用程序使用JIT编译器运行得很好)。

在我讨论我们的问题之前,我想讨论我们正在开发的应用程序,以及在帮助会话中可能有帮助或可能没有帮助的任何规范。

应用程序的工作原理: 我们的应用程序设置的方式是我们在他们自己的swf中有一系列活动,以及其中的主要应用程序自己的Swf。活动分为两类:解释活动和挑战活动。所有challange活动都继承自ItemActivity类,同时所有说明活动都继承自ItemActivityVideo类,而ItemActivityVideo类继承自ItemActivity。

我们的活动继承结构如下:

说明活动

Main(每个活动的具体内容)< - ItemActivityVideo< - ItemActivity

挑战活动:

Main(每项活动专用)< - ItemActivity。

主要的Swf有一系列的屏幕,其中一个是" ItemSelect"屏幕显示一个按钮网,每个按钮指示应用程序加载一个外部活动swfs。所有swf都在主swf旁边本地托管,因此在项目加载时没有网络呼叫。

解释活动是唯一利用声音的活动,它位于"语音控制器" class,每当引用这个类时(只需通过诸如" new VoiceController()之类的指令),Ios App崩溃,某些项目在时间线的各个部分崩溃,而没有任何关于为什么的指示来自Flash调试器或崩溃日志。调试器只是打印"播放器会话已退出"同时,崩溃日志会产生一个段错误信号" SigSegV",而没有任何关于导致内存滥用的指示。

帮助我们的团队调试此问题的任何帮助都会对我们有很大帮助,我们在使用dsymutils对崩溃日志进行符号化方面存在问题,因为当前的Apple架构与Adobes&#39之间发生了巨大变化;日期文件。

以下是我们App的崩溃日志的一部分:

Incident Identifier: FC5E0968-20E5-4A52-BF7E-38FCBA425D00
CrashReporter Key:   ----------------------------------------------
Hardware Model:      iPad2,5
Process:             myApp [1848]
Path:                /private/var/mobile/Containers/Bundle/Application/30740408-6AAD-447E-8ED3-0ECAEF7A7B0A/myApp.app/myApp
Identifier:          myApp
Version:             0.4.0 (0.4.0)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2015-12-04 13:29:38.38 -0500
Launch Time:         2015-12-04 13:29:22.22 -0500
OS Version:          iOS 9.1 (13B143)
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000083
Triggered by Thread:  0

Filtered syslog:
None found

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   myApp                       0x0248debe 0x74000 + 37854910
1   myApp                       0x00797598 0x74000 + 7484824
2   myApp                       0x00797598 0x74000 + 7484824
3   myApp                       0x00794b7c 0x74000 + 7474044
4   myApp                       0x007b6794 0x74000 + 7612308
5   myApp                       0x0247aab8 0x74000 + 37776056
6   myApp                       0x0248f926 0x74000 + 37861670
7   myApp                       0x024506b6 0x74000 + 37602998
8   myApp                       0x02450648 0x74000 + 37602888
9   myApp                       0x021fb188 0x74000 + 35156360
10  myApp                       0x0225027c 0x74000 + 35504764
11  myApp                       0x01facb90 0x74000 + 32738192
12  myApp                       0x01fb2650 0x74000 + 32761424
13  myApp                       0x0010b80c 0x74000 + 620556
14  myApp                       0x007b74d0 0x74000 + 7615696
15  myApp                       0x007eda9c 0x74000 + 7838364
16  myApp                       0x0247aab8 0x74000 + 37776056
17  myApp                       0x0248f926 0x74000 + 37861670
18  myApp                       0x024506b6 0x74000 + 37602998
19  myApp                       0x02450648 0x74000 + 37602888
20  myApp                       0x021fb188 0x74000 + 35156360
21  myApp                       0x021fbd08 0x74000 + 35159304
22  myApp                       0x021fba9c 0x74000 + 35158684
23  myApp                       0x021fb614 0x74000 + 35157524
24  myApp                       0x021bd364 0x74000 + 34902884
25  myApp                       0x00237d18 0x74000 + 1850648
26  myApp                       0x00237dec 0x74000 + 1850860
27  myApp                       0x0247aab8 0x74000 + 37776056
28  myApp                       0x0248f926 0x74000 + 37861670
29  myApp                       0x0219b9fc 0x74000 + 34765308
30  myApp                       0x0219c198 0x74000 + 34767256
31  myApp                       0x021f8bf8 0x74000 + 35146744
32  myApp                       0x0208b79c 0x74000 + 33650588
33  myApp                       0x0208c2f4 0x74000 + 33653492
34  myApp                       0x01fc0a9c 0x74000 + 32819868
35  QuartzCore                      0x2999b7f2 0x29941000 + 370674
36  QuartzCore                      0x2999b63e 0x29941000 + 370238
37  IOMobileFramebuffer             0x2f87957a 0x2f874000 + 21882
38  IOKit                           0x270524d8 0x2704e000 + 17624
39  CoreFoundation                  0x25f48058 0x25ea2000 + 680024
40  CoreFoundation                  0x25f5a3b2 0x25ea2000 + 754610
41  CoreFoundation                  0x25f59ac6 0x25ea2000 + 752326
42  CoreFoundation                  0x25f57ed8 0x25ea2000 + 745176
43  CoreFoundation                  0x25eab118 0x25ea2000 + 37144
44  CoreFoundation                  0x25eaaf04 0x25ea2000 + 36612
45  GraphicsServices                0x2f035ac8 0x2f02c000 + 39624
46  UIKit                           0x2a0edf14 0x2a072000 + 507668
47  myApp                       0x020b6e40 0x74000 + 33828416
48  libdyld.dylib                   0x3819d872 0x3819b000 + 10354

1 个答案:

答案 0 :(得分:0)

任何事情都可能导致您的Ios应用程序崩溃而不会导致Android版本崩溃,例如:文件名。您可以加载一个名为“test.mp3”的声音,并在文件系统“Test.mp3”中真正调用它,它将在调试中工作,在Android中工作,甚至在Ios中播放几次然后崩溃应用程序。 Ios中的所有文件名都应该是小写的,不包含花哨的字符。一般来说,调试AIR中的Ios应用程序实际上只是追踪,没有真正简单的方法将DYSM转换为AS3中的任何有意义的跟踪,跟踪,跟踪。 我使用扩展的Sprite类在每个项目中工作,该类可以在一次调用中删除所有已注册的侦听器。非常方便,但第一个版本在Ios中随机崩溃。我把痕迹全部放在最后,最后发现我的最后一条痕迹就在'removeListeners()'调用之前。所以我注释掉了方法代码而没有崩溃。然后我重新设计了系统,使其更加稳固,一切都运行良好,没有在Ios中发生任何崩溃。

总结一下:

  • 在Ios中,如果在外部加载任何内容时要密切关注文件名,它们应该是小写的,不包含花哨的字符,否则......请注意崩溃!

  • 要调试并真正知道发生了什么,只有跟踪,在任何地方放置跟踪并注意最后一个,错误的代码将在之后。我确实有一个系统可以将所有跟踪实时输出到服务器,所以即使在testflight安装中也能捕获它们。把类似的东西放在一起。