1

目前,我们正在开发一个项目,该项目完全使用 Objective-C 语言开发。出于某种原因,我们不得不在项目中使用 POD 项目作为依赖项。其中一个 POD 项目是使用 Swift 语言开发的。因此,我们创建了桥以在目标 c 类中使用 swift 文件。

所以现在,当我们在调试模式下直接在设备上运行这个应用程序时,它可以完美运行。但是,当我们尝试使用 Enterprise Distribution 部署此应用程序时,它会安装到设备中但无法打开。当我们单击应用程序图标打开应用程序时,它会崩溃。我们也检查了设备日志。它在加载从 POD 项目派生的库时显示问题。

我们已经在许多论坛和网站上搜索过这个问题。他们都建议,由于 POD 文件中依赖结构的变化,这个问题正在发生。

例如:在 iOS 8 POD 项目作为带有“.a”扩展名的静态库附加到应用程序之前。但是从 iOS 8 和 Swift 2.0 开始,这些项目被包含为带有“.framework”扩展名的动态框架。

我们尝试了许多解决方案,但它不起作用。我们还重新生成了我们的分发证书,因为 iOS 9 在证书字段中进行了一些更改。但它仍然无法正常工作。

所以我想问的是,我们可以在 Objective C 项目中使用 Swift POD 项目吗?这个问题的根本原因应该是什么?swift 2.0 有参与吗?

请为此问题提出一些解决方案/解决方法。

4

2 回答 2

1

Swift 依赖项只能由 CocoaPods 作为嵌入式框架导入,您可以在其中指定use_frameworks!在您的 Podfile 中,这要求您的 App 的 iOS 部署目标设置为 8.0 或更高版本。

如果您需要支持 iOS 7,您可以使用 Swift Pod 的唯一方法是删除该 Pod 依赖项并将该 Pod 的所有文件直接添加到您的应用程序的项目中。

于 2015-10-29T12:06:58.943 回答
0

这个问题我解决了!!

要解决此问题,您需要使用代码签名证书对您的应用进行签名,并将主题组织单位 (OU) 设置为您的团队 ID。Apple 对其证书进行了更改,因此您需要在签署您的应用程序之前创建一个新证书。

请按照以下步骤修复证书问题:

  1. 撤销分发/开发者证书
  2. 创建一个新的发行版/开发者证书
  3. 使用新创建的证书更新相应的配置文件
  4. 使用新证书再次归档您的应用

这已经解决了我的问题,但它仍然无法在我的 mac pc 中工作。当我从任何其他 Mac pc 生成构建时,它工作正常。所以我认为我的 XCode 和 Mac Pc 密钥链证书和配置文件可能存在问题。

希望这可以帮助你!

:D

于 2015-12-02T12:33:08.273 回答