【踩坑记录】—— app运行闪退(Mac版)

news/2024/11/19 17:28:59/

目录

    • 一、故事开始
    • 二、问题分析
    • 三、无脑排查
    • 四、总结

一、故事开始

2022/3/27 一个风和日丽的下午☀️☀️

近期在学做一些入门级的小项目,写了个小工具的脚本之后,想拓展一下,用PYQT5做个简单的小界面,然后分别在Windows和Mac系统下进行打包,输出应用。

Windows下的打包很顺利,并且一次就成功了。但是当我到Mac系统操作的时候,可谓是一步一个坑!我使用的是pyinstaller,在终端用打包命令 pyinstaller -w --clean main.py将项目打包成main.app,双击运行,期望的功能界面出来了,稍微操作一波,小样,这么简单吗?
图1
正当我准备来一波沉浸式体验主功能的时候,wtf ?崩溃了??心里默默做好了准备,要搞心态了!



二、问题分析

通过pyinstaller 执行命令打包完成后,生成了这些文件,主要看下,dist目录,是打包产物
图2
当我双击可执行文件main时,会出现控制台,且展示功能界面,可正常运行。
但是,双击main.app后,就会出现我上面说到的,中途闪退的问题,这次我定位到了是触发了某些事件导致的。
图3

但是由于没有控制台输出,崩溃日志又是编码过的,不接吗的话没法定位具体哪一行代码导致的问题,由于我是新手,还没研究过Python打包产物,所以就先开始了 解决问题三部曲的第一部:Google。
最后定了两个排查方向:
1、进行文件操作的时候,文件路径不对导致找不到文件;
2、print的地方去掉



三、无脑排查

实际上我优先考虑了路径问题,因为分析了通过pycharm运行或者在终端跑脚本运行,都跟app运行的目录略有不同,且执行位置的文件也不一样,所以在路径方面花了较多心思先排查,从什么相对路径换到绝对路径,在不断的无脑打印中逐渐迷失自我。。。

2 hours later~

嗯,很棒!依旧没有解决问题,不过还是有点发现,将.app 拉到终端里,使用 open xx.app打开的时候,居然不会闪退,并且我可以看得到,确确实实是路径有问题,报了一些 dictionary not found 的信息出来,很nice。

这下我直接把路径给写到一个固定的目录去,再次调试,发现再次用控制台open app的方式,已经可以完整跑完功能了,嘿嘿 那么,问题是不是解决了呢,直接操作一波,双击 .app 打开,怀着必胜的心态,开始了烂熟于心的操作,嗯?还是崩了,就如我的心态一般🤮🤮🤮

走投无路了,发现还有另外一个方向没排查过,死马当活马医,试试就试试,把所有print方法都给注掉了,可能是我的努力感动了上天,问题解决了!!! 呵呵呵,5分钟的事,我硬是给搞了2个钟,不过结果还是好的🤡🤡

图4



四、总结

作为一名有探索精神的初级程序🐒,解决问题是关键,但是知道问题的根源是最终目的!我必定要深究到底,为什么会这样,于是 又在Google的世界里遨游了起来~~

又是一个 2 hours later~

文章少之又少,不知道是不是我的描述有问题,竟没有找到一篇能参考的,emmm,好吧,我放弃了,只能暂时先这样,后续等我知道原因后再来补充。如果有大佬了解的话,烦请告知,感谢!

end.


http://www.ppmy.cn/news/303580.html

相关文章

Android中造成APP闪退的原因总结

1. 网络异常引起的 2. APP中访问网络的地方,组件中的ImageView没有正常的下载并显示到app 页面上。 3.APP的sdk和手机的系统不兼容。 4.拍照/选择图片后闪退:①手机内存小②部分手机在使用相机拍照时候存在横竖屏切换,可能会导致我们应用重新调整生命…

app闪退

1、如何跟踪app的崩溃率和线上闪退? iOSapp闪退时系统会生成一个crash日志,保存在设备上。crash日志里面有很多有用的信息,比如对内存堆栈信息和内存映像,通过解析这些信息来解析出crash时的代码逻辑。 crash一般有两种原因&…

最常见的闪退崩溃(Android、ios) 原因

设备碎片化:由于设备极具多样性,APP在不同的设备上可能有表现不同;带宽限制:带宽不佳的网络对APP所需的快速响应时间可能不够;网络的变化:不同网络间的切换可能会影响APP的稳定性;内存管理&…

iPad横屏调用相册,出现闪退

Terminating app due to uncaught exception UIApplicationInvalidInterfaceOrientation, reason: Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES 是因为UIImagePickerController是竖屏的,而ipa…

app闪退分析

一、网络异常引起的 1.网络异常引起的,服务端响应不及时,可能导致闪退,检查网络配置情况 二、版本过低 1.应用版本过低,app的sdk和手机的系统不兼容,造成闪退 2.有些api在老版本中有,在新版本中没有&am…

解决APP打开后闪退的问题

解决APP打开后闪退的问题 Android 编程中有时没有给资源命名或组件ID命名,会造成APP启动后就闪退

ipad iphone开发_如何修复iPhone或iPad上崩溃的应用程序

ipad iphone开发 N.Z.Photography/Shutterstock NZ摄影/快门 Apps can crash or freeze on iPhones and iPads, just as they can on any other platform. Apple’s iOS operating system disguises app crashes by closing the app. If you’re experiencing crashing, freezi…

ipadqq闪退

各位果粉们,你们的ipadqq最近是不是频繁的闪退?好烦人,ipadqq闪退一上一下,接个信息都不容易,这到底是怎么回事?根据网友的反馈,包括iPad Air 2和iPad mini在内的机型在运行QQ时一直出现闪退的情…