在 Objective C 项目中使用 Swift Pods

Use Swift Pods in Objective C project

目前,我们正在做一个项目,纯使用Objective-C语言开发。出于某种原因,我们不得不在我们的项目中使用 POD 项目作为依赖项。其中一个 POD 项目是使用 Swift 语言开发的。所以我们创建了桥以在 objective 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 有参与吗?

请为这个问题提出一些建议solution/workaround。

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

如果你需要支持iOS 7,你可以使用Swift Pod的唯一方法是删除那个Pod依赖,直接把那个Pod的所有文件添加到你的App的项目中。

我已经解决了这个问题!!

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

请按照以下步骤解决证书问题:

  1. 吊销 distribution/developer 证书
  2. 创建一个新的distribution/developer证书
  3. 使用您新创建的证书更新相应的配置文件
  4. 使用新证书再次存档您的应用程序

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

希望对您有所帮助!!

:D