应用与Objective-C和快速代码崩溃在发布模式下启动,debugging模式罚款

我的项目是基于Objective-C的,有一些第三方的swift代码。

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

将swift优化级别设置为None仍然有同样的问题。 我已经安装了crashlytics 3.7,但在启动时崩溃,没有机会上传崩溃。 我非常绝望。 有任何想法吗?

更新:

我试图删除所有迅速的东西和档案,一切都像往常一样。 但是,一旦我将swift文件拖到基于Objective-C的项目中,运行(debugging)应用程序就没有问题。 但是,如果存档(释放)并将其安装在iPhone上,立即在启动时崩溃。 任何我缺less的东西?

好吧,在经过数千次存档和testing之后,我发现它是由内部分发引起的。

证书中有一个属性“OU”。 我不得不重新创build一个新的证书,现在它有'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 

我会发布这是一个答案,因为我没有代表发表评论。 我有类似的问题,虽然没有涉及到斯威夫特。 可能值得一试。

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

因此,需要检查的一点是,启动应用程序时应该加载的文件在Xcode的项目导航器中是可见的。 希望它可以帮助!