繁体   English   中英

具有Objective-C的应用程序,在发布模式下启动时快速代码崩溃,调试模式良好

[英]app with Objective-C and swift code crash at launch in release mode, debug mode fine

我的项目基于Objective-C,并且具有一些第三方Swift代码。

该应用程序在调试模式下运行良好,但是,当我将其存档为发布模式时,该应用程序将在启动屏幕上崩溃。

将快速优化级别设置为“无”仍然存在相同的问题。 我安装了crashlytics 3.7,但是它在启动时崩溃,没有机会上载崩溃。 我很绝望。 有任何想法吗?

更新:

我试图删除所有快速的东西和存档,一切都照常进行了。 但是,将快速文件拖到基于Objective-C的项目中后,运行(调试)该应用程序就可以了。 但是,如果将存档(发布)并安装在iPhone上,则启动时会立即崩溃。 有什么我想念的吗?

好吧,经过数千次存档和测试,我发现这是由内部发行引起的。

它在证书中添加了一个属性“ OU”。 我不得不重新创建一个新证书,现在那里有“ OU”。 看起来苹果在处理采用快速代码的旧项目时根本没有提及它。

来自Enterprise Distribution的报价在Swift App中无法与iOS8配合使用

本文详细解释了所有内容:

https://www.airsignapp.com/ios-apps-using-swift-crash-when-signed-with-inhouse-certificate/

We can confirm that after create a new cert and .mobileprovision, no more issues.

We found origins that caused this issue, related to a missing attribute in “Subject” field InHouse Certificates :

BEFORE Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

AFTER Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

我将发布此答案,因为我没有代表来发表评论。 我也遇到过类似的问题,尽管与Swift无关。 可能值得一试。

对我来说,问题与Xcode中的文件删除有关。 我已经从Xcode项目中删除了一些文件,但是它们仍然存在于硬盘驱动器的文件夹中。 通过Xcode运行项目时,它们将加载这些文件,就像它们是项目的一部分一样,但是归档时将不包括这些文件。 这使得该应用程序在通过Xcode运行时可以完美运行,但是在运行存档版本时会崩溃,因为它试图加载不存在的内容。

因此,要检查的一件事是启动应用程序时应加载的文件在Xcode的项目导航器中可见。 希望对您有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM