Ios 在目标C项目中使用Swift Pods

Ios 在目标C项目中使用Swift Pods,ios,objective-c,swift,cocoapods,enterprise-distribution,Ios,Objective C,Swift,Cocoapods,Enterprise Distribution,目前,我们正在进行一个项目,该项目完全使用Objective-C语言开发。出于某种原因,我们不得不在项目中使用POD项目作为依赖项。其中一个POD项目是使用Swift语言开发的。因此,我们创建了在目标c类中使用swift文件的桥 所以现在,当我们在调试模式下直接在设备上运行这个应用程序时,它工作得非常好。但当我们尝试使用企业发行版部署此应用程序时,它会安装到设备中,但不会打开。当我们点击应用程序图标打开应用程序时,它就会崩溃。我们还检查了设备日志。它显示了加载从POD项目派生的库时出现的问题 我

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

所以现在,当我们在调试模式下直接在设备上运行这个应用程序时,它工作得非常好。但当我们尝试使用企业发行版部署此应用程序时,它会安装到设备中,但不会打开。当我们点击应用程序图标打开应用程序时,它就会崩溃。我们还检查了设备日志。它显示了加载从POD项目派生的库时出现的问题

我们已经通过许多论坛和网站搜索了这一问题。他们都认为,由于POD文件中依赖关系结构的变化,这个问题正在发生

例如:在iOS 8之前,POD项目作为扩展名为“.a”的静态库连接到应用程序。但在iOS 8和Swift 2.0中,这些项目作为动态框架包含,扩展名为“.framework”

我们已经尝试了许多解决方案,但都不起作用。我们还重新生成了分发证书,因为iOS 9在证书字段中有一些更改。但它仍然不起作用

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


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

Swift依赖项只能由CocoaPods作为嵌入式框架导入,您可以在Podfile中指定,这要求您的应用程序的iOS部署目标设置为8.0或更高


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

我已经解决了这个问题

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

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

  • 吊销分发/开发人员证书
  • 创建新的分发/开发人员证书
  • 使用新创建的证书更新相应的配置文件
  • 使用新证书再次存档应用程序
  • 这已经解决了我的问题,但它仍然不能在我的mac pc上工作。当我从任何其他mac pc生成构建时,它工作正常。因此,我认为可能存在与我的XCode和Mac Pc密钥链证书和配置文件相关的问题

    希望这能对你有所帮助


    :D

    我已经使用了“使用框架”,我的部署目标是8.4+。但问题是,当直接在设备/模拟器中运行我的应用程序时,它会工作得很好。但当我使用企业分发证书发布模式安装应用程序时,它不会打开。当单击应用程序图标时,它总是会崩溃。@Armanstranger如果只为调试配置添加了一个或多个POD,则可能会发生这种情况,因此当您在非调试模式下运行应用程序时,这些POD将丢失。这样的配置可能看起来像:
    pod'Jibber Framework',“~>2.0',:configurations=>['Debug']