在Objective C项目中使用Swift Pod

时间:2015-10-29 10:20:35

标签: ios objective-c swift cocoapods enterprise-distribution

目前,我们正在开发一个纯粹使用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 Project中使用Swift POD项目吗? 这个问题的根本原因应该是什么? swift 2.0是否参与其中?

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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

  1. 撤销分发/开发者证书
  2. 创建新的分发/开发者证书
  3. 使用新创建的证书更新相应的配置文件
  4. 使用新证书再次归档您的应用
  5. 这已经解决了我的问题,但它仍然无法在我的mac pc中工作。当我从任何其他Mac PC生成构建然后它的工作正常。所以我认为可能存在与我的XCode和Mac Pc密钥链证书和配置文件相关的问题。

    希望这可以帮助你!!。

    :d