从ipa文件启动应用程序崩溃,但从Xcode运行正常?

8
当我直接从Xcode运行我的项目到设备上时,它可以完美运行而不会崩溃。但是当我创建该项目的ipa文件并通过iTunes将其安装到我的设备上时,当我点击登录按钮时它会崩溃,后来经过多次尝试登录后,它才能正常工作。
如果在互联网上查阅此问题,但对我没有帮助。这些是我参考的链接。 使用Xcode开发构建应用程序时,应用程序可以正常工作。但是使用ipa文件运行时会崩溃 游戏从ipa文件崩溃,但从Xcode中运行正常? 我不理解实际问题是什么,为什么直接从Xcode运行时不会崩溃,而通过ipa运行时会崩溃。是否有代码压缩或不同的代码编译机制,在ipa或Xcode中运行时存在区别。
非常感谢任何帮助。
崩溃日志
Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libswiftCore.dylib      0x00000001010b25dc 0x100f74000 + 1304028
1   AppName                 0x00000001001030c4 0x1000bc000 + 291012
2   Appname                 0x00000001001062cc 0x1000bc000 + 303820
3   Alamofire               0x00000001004c9c9c 0x10047c000 + 318620
4   Alamofire               0x00000001004c899c 0x10047c000 + 313756
5   Alamofire               0x0000000100486d08 0x10047c000 + 44296
6   libdispatch.dylib       0x000000018571e1fc 0x18571d000 + 4604
7   libdispatch.dylib       0x000000018571e1bc 0x18571d000 + 4540
8   libdispatch.dylib       0x0000000185722d68 0x18571d000 + 23912
9   CoreFoundation          0x0000000186842810 0x186765000 + 907280
10  CoreFoundation          0x00000001868403fc 0x186765000 + 898044
11  CoreFoundation          0x000000018676e2b8 0x186765000 + 37560
12  GraphicsServices        0x0000000188222198 0x188216000 + 49560
13  UIKit                   0x000000018c7b57fc 0x18c73b000 + 501756
14  UIKit                   0x000000018c7b0534 0x18c73b000 + 480564
15  AppName                 0x0000000100139e4c 0x1000bc000 + 515660
16  libdyld.dylib           0x00000001857515b8 0x18574d000 + 17848

Thread 1:
 0   libsystem_kernel.dylib 0x0000000185863a88 0x185844000 + 129672
 1   libsystem_pthread.dylib    0x0000000185927344 0x185926000 + 4932
 2   libsystem_pthread.dylib    0x0000000185926d8c 0x185926000 + 3468

Thread 2:
 0   libsystem_kernel.dylib 0x0000000185863a88 0x185844000 + 129672
 1   libsystem_pthread.dylib    0x0000000185927160 0x185926000 + 4448
 2   libsystem_pthread.dylib    0x0000000185926d8c 0x185926000 + 3468

 Thread 3:
 0   libsystem_kernel.dylib   0x0000000185863a88 0x185844000 + 129672
 1   libsystem_pthread.dylib    0x0000000185927344 0x185926000 + 4932
 2   libsystem_pthread.dylib    0x0000000185926d8c 0x185926000 + 3468

Thread 4:
0   libsystem_kernel.dylib    0x0000000185863a88 0x185844000 + 129672
1   libsystem_pthread.dylib     0x0000000185927344 0x185926000 + 4932
2   libsystem_pthread.dylib     0x0000000185926d8c 0x185926000 + 3468

Thread 5 name:  com.apple.uikit.eventfetch-thread
Thread 5:
0   libsystem_kernel.dylib      0x0000000185845188 0x185844000 + 4488
1   libsystem_kernel.dylib      0x0000000185844ff8 0x185844000 + 4088
2   CoreFoundation            0x00000001868425d0 0x186765000 + 906704
3   CoreFoundation            0x00000001868401ec 0x186765000 + 897516
4   CoreFoundation            0x000000018676e2b8 0x186765000 + 37560
5   Foundation                0x00000001872ab26c 0x18729f000 + 49772
6   Foundation                0x00000001872cbdd0 0x18729f000 + 183760
7   UIKit                   0x000000018d129c38 0x18c73b000 + 10415160
8  Foundation                0x00000001873a8e68 0x18729f000 + 1089128
9  libsystem_pthread.dylib    0x0000000185929850 0x185926000 + 14416
10  libsystem_pthread.dylib    0x0000000185929760 0x185926000 + 14176
11  libsystem_pthread.dylib    0x0000000185926d94 0x185926000 + 3476

Thread 6:
0   libsystem_kernel.dylib   0x0000000185862e1c 0x185844000 + 126492
1   libsystem_pthread.dylib  0x00000001859289c0 0x185926000 + 10688
2   libc++.1.dylib           0x00000001852513ec 0x18524a000 + 29676
3   JavaScriptCore           0x000000018b0725d0 0x18a799000 + 9278928
4   JavaScriptCore           0x000000018b072544 0x18a799000 + 9278788
5   JavaScriptCore           0x000000018b072424 0x18a799000 + 9278500
6   JavaScriptCore           0x000000018b0726d4 0x18a799000 + 9279188
7   libsystem_pthread.dylib  0x0000000185929850 0x185926000 + 14416
8   libsystem_pthread.dylib  0x0000000185929760 0x185926000 + 14176
9   libsystem_pthread.dylib  0x0000000185926d94 0x185926000 + 3476

Thread 7 name:  com.apple.NSURLConnectionLoader
Thread 7:
0   libsystem_kernel.dylib    0x0000000185845188 0x185844000 + 4488
1   libsystem_kernel.dylib    0x0000000185844ff8 0x185844000 + 4088
2   CoreFoundation            0x00000001868425d0 0x186765000 + 906704
3   CoreFoundation            0x00000001868401ec 0x186765000 + 897516
4   CoreFoundation            0x000000018676e2b8 0x186765000 + 37560
5   CFNetwork                 0x0000000186f73a70 0x186e94000 + 916080
6   Foundation               0x00000001873a8e68 0x18729f000 + 1089128
7   libsystem_pthread.dylib   0x0000000185929850 0x185926000 + 14416
8   libsystem_pthread.dylib    0x0000000185929760 0x185926000 + 14176
9   libsystem_pthread.dylib    0x0000000185926d94 0x185926000 + 3476

Thread 8 name:  JIT Worklist Worker Thread
Thread 8:
0   libsystem_kernel.dylib  0x0000000185862e1c 0x185844000 + 126492
1   libsystem_pthread.dylib 0x00000001859289c0 0x185926000 + 10688
2   libc++.1.dylib          0x00000001852513ec 0x18524a000 + 29676
3   JavaScriptCore          0x000000018b05ad64 0x18a799000 + 9182564
4   JavaScriptCore          0x000000018ae32a5c 0x18a799000 + 6920796
5   JavaScriptCore          0x000000018ae32eac 0x18a799000 + 6921900
6   JavaScriptCore          0x000000018a7a300c 0x18a799000 + 40972
7   JavaScriptCore          0x000000018a7a2f1c 0x18a799000 + 40732
8   libsystem_pthread.dylib 0x0000000185929850 0x185926000 + 14416
9   libsystem_pthread.dylib 0x0000000185929760 0x185926000 + 14176
10  libsystem_pthread.dylib 0x0000000185926d94 0x185926000 + 3476

 Thread 9 name:  WTF Parallel Helper Thread
 Thread 9:
0   libsystem_kernel.dylib    0x0000000185862e1c 0x185844000 + 126492
1   libsystem_pthread.dylib   0x00000001859289c0 0x185926000 + 10688
2   libc++.1.dylib            0x00000001852513ec 0x18524a000 + 29676
3   JavaScriptCore           0x000000018b05ad64 0x18a799000 + 9182564
4   JavaScriptCore           0x000000018b05a2e8 0x18a799000 + 9179880
5   JavaScriptCore          0x000000018b05a088 0x18a799000 + 9179272
6   JavaScriptCore          0x000000018a7a300c 0x18a799000 + 40972
7   JavaScriptCore          0x000000018a7a2f1c 0x18a799000 + 40732
8   libsystem_pthread.dylib  0x0000000185929850 0x185926000 + 14416
9   libsystem_pthread.dylib  0x0000000185929760 0x185926000 + 14176
10  libsystem_pthread.dylib  0x0000000185926d94 0x185926000 + 3476

 Thread 10 name:  com.apple.CoreMotion.MotionThread
 Thread 10:
 0   libsystem_kernel.dylib    0x0000000185845188 0x185844000 + 4488
 1   libsystem_kernel.dylib    0x0000000185844ff8 0x185844000 + 4088
 2   CoreFoundation           0x00000001868425d0 0x186765000 + 906704
 3   CoreFoundation           0x00000001868401ec 0x186765000 + 897516
 4   CoreFoundation           0x000000018676e2b8 0x186765000 + 37560
 5   CoreFoundation           0x00000001867bbb44 0x186765000 + 355140
 6   CoreMotion               0x000000018d631120 0x18d5c3000 + 450848
 7   libsystem_pthread.dylib  0x0000000185929850 0x185926000 + 14416
 8   libsystem_pthread.dyli   0x0000000185929760 0x185926000 + 14176
 9   libsystem_pthread.dylib  0x0000000185926d94 0x185926000 + 3476

Thread 0 crashed with ARM Thread State (64-bit):
 x0: 0x0000000101524380   x1: 0x00000001702f4d00  
    x2:0x0000000000000008   x3: 0x00000001858a922c
x4: 0x0000000000000014   x5: 0x0000000000000010   x6: 
    0x0000000000000000   x7: 0x0000000000000600
x8: 0x00000001702f4900   x9: 0x00000001702f4900  x10:    
    0x0000000000000001  x11: 0xbaddc0dedeadbead
x12: 0x0000010000000100  x13: 0x206e6120676e6970  x14: 
    0x6c616e6f6974704f  x15: 0x000a65756c617620
x16: 0x00000001858996b0  x17: 0x0000000000000000  x18: 
    0x0000000000000000  x19: 0x0000000170442eb0
x20: 0x0000000170e67400  x21: 0x0000000000000000  x22: 
    0x0000000000000000  x23: 0x0000000000000014
x24: 0x00000001ac178d20  x25: 0x0000000000000000  x26: 
    0xffffffffffffffff  x27: 0x0000000170e67400
x28: 0x0000000002ffffff   fp: 0x000000016fd415b0   lr: 
    0x00000001010b25dc
sp: 0x000000016fd415a0   pc: 0x00000001010b25dc cpsr: 0x20000000

谢谢


也许如果是一些特殊问题,查看系统日志会更好。 - Samuel Tulach
有时候你需要检查你正在使用的编译标志。一些标志可能会导致设备崩溃。 - Zico
@SamuelTulach 我检查了崩溃日志:线程0名称:Dispatch队列:com.apple.main-thread。线程0崩溃:这是我看到的崩溃部分。 - Sreejith S
@Zico 实际上,当应用程序启动时,会出现登录页面。当我输入用户名、密码,然后点击登录按钮时,它就会崩溃。但在 Xcode 中,它没有崩溃,可以正常工作。问题只在 IPA 文件中显示。 - Sreejith S
3个回答

11

你需要查看崩溃日志。

  1. 将设备连接到Mac电脑上
  2. 在Xcode中,按下cmd+shift+2。
  3. 找到你的设备,然后按下日志按钮
  4. 等待一段时间,然后你就可以看到所有崩溃日志了。
  5. 找到和你的应用程序名称相关的日志。如果你不明白,请在这里发布。

线程0名称:Dispatch队列:com.apple.main-thread 线程0崩溃: - Sreejith S
@user5747934 你应该粘贴所有的日志。 - Owen Zhao
我添加了崩溃日志,请浏览一下。 - Sreejith S
@user5747934 我建议你注释掉一些代码行并重新构建你的应用程序,重复此过程直到你能够定位导致此问题的代码行。 - Owen Zhao
Json 部分出现了错误,我认为。现在我正在按照您的建议进行处理。 - Sreejith S

8

我也遇到了同样的问题。

你需要编辑你的方案。

归档 --> 构建配置 --> 将其设置为Debug。现在尝试归档并测试你的IPA,它应该可以正常工作。


我以前做过这个。 :) 我们可以将这个IPA文件作为调试模式的Achieve方案提交给AppStore吗? - Sreejith S
是的,我们可以。我已经提交了相同的文件,并使用调试模式。它也得到了批准@Sreejiths。 - Tabish Sohail
你是救命恩人。 - Shahid Iqbal

2
我假设您使用不同的构建配置来构建您的应用程序,基本上在从Xcode运行时使用“Debug”配置,在部署为ipa时使用“Release”配置。我们遇到了类似的问题,即在发布配置中出现无法解释的错误,并发现Swift优化引起了问题。目前,我们已将发布构建从“快速,整个模块优化”切换到“快速,单文件优化”,直到我们可以缩小问题范围。

希望这有所帮助!

enter image description here


我尝试过这种方法,但发现它不起作用。在这个应用程序中,我正在使用Alamofire,有什么问题吗? - Sreejith S
@Sreejiths,你找到解决方法了吗..? - Raghav Chopra
我的调试版本可以正常运行,但是发布版本会崩溃。正在尝试找出问题所在。 - Raghav Chopra
1
这对我很有效。我有一个SwiftUI应用程序,由于几乎不可能调试的EXC_BAD_ACCESS错误而崩溃。不幸的是,较新版本的Xcode中的选项不同,因此我选择了“None [-Onone]”优化以使其正常工作。 - andrei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接