Ios 具有CocoaPods依赖项的Cocoa Touch框架

Ios 具有CocoaPods依赖项的Cocoa Touch框架,ios,swift,xcode,frameworks,Ios,Swift,Xcode,Frameworks,我正在尝试创建一个Cocoa Touch框架 我创建了一个Cocoa Touch框架 我运行了pod init 我添加了我们自己的CocoaPod,它本身也有一些依赖性 我运行了pod安装 现在,当我尝试构建框架(打开.xcodeproj)时,每个依赖项都会收到以下警告 ld:警告:找不到选项'-F/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework culynvrparvtfjbjlitmammotpkf/Build/

我正在尝试创建一个Cocoa Touch框架

  • 我创建了一个Cocoa Touch框架
  • 我运行了
    pod init
  • 我添加了我们自己的CocoaPod,它本身也有一些依赖性
  • 我运行了
    pod安装
现在,当我尝试构建框架(打开
.xcodeproj
)时,每个依赖项都会收到以下警告

ld:警告:找不到选项'-F/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework culynvrparvtfjbjlitmammotpkf/Build/Products/Debug iphoneos/Alamofire'的目录

我得到以下错误:

ld:未找到框架Alamofire
错误:未找到Resource“/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework culynvrparvtfjbjlitmammotpkf/Build/Products/Debug iphoneos/firebaseforestore/gRPCCertificates Firestore.bundle”。运行“pod安装”以更新复制资源脚本

我认为这是因为CocoaPod文件没有复制到正确的位置。对吗? 我该怎么做才能让这一切顺利进行呢

我想这样做的原因如下: 我有一个CocoaPods项目,它是一个常规的Xcode项目,只有Swift类和一些视图控制器。我们希望将其作为封闭源代码提供。所以我希望将这个pod包含在Cocoa-Touch框架中,仍然可以让用户使用其pod的所有公共功能。 如果还有其他建议,欢迎提出


提前感谢。

我得到的第一点是在pod安装后使用
.xcodeproj
。请注意,一旦您安装了pods,就会创建一个扩展名为
.xcworkspace
的文件,您需要使用此文件打开project,您将来的工作应该在该文件中完成。

好的,所以我设置此文件时遇到的所有问题似乎都与Xcode有关。 基本上,我所做的工作如下:

  • 通过Xcode的
    文件>新建>项目创建Cocoa Touch框架…
  • 使用终端导航到框架的根文件夹(包含
    YourFramework.xcodeproj
    -file的文件夹)
  • 运行
    pod init
  • 将必要的cocoapod添加到
    pod文件
  • 运行
    pod安装
  • 确保关闭可能在Xcode中打开的
    YourFramework
    -项目
  • 从现在起,我的问题开始出现。打开
    YourFramework.xcworkspace
    可以工作,但是在Xcode的左侧导航器中,我只能扩展Pods-项目,而不能扩展Framework-项目;它似乎是空的。这座建筑也不起作用。 要解决这个问题(因此,只需解决Xcode问题的常规步骤):

  • 关闭Xcode
  • 删除派生数据
  • 再次打开
    YourFramework.xcworkspace
  • 清理生成文件夹
  • 现在它可能会构建,也可能不会。在我的情况下,它没有,并得到了与Swift语言不可用相关的100多个问题。我创建了一个没有任何源文件的框架,只是导入了cocoapod。要解决此问题,请在至少导入
    Foundation
    的框架中创建一个Swift文件


    现在它应该可以建造了。

    是的,我确实知道这一点。问题是,当我打开
    .xcworkspace
    时,Pods项目是可扩展的,但实际的项目不是(只是名称)。似乎在重新启动Xcode几次并清理所有东西之后,它就工作了。所以我想我解决了这个问题。现在,CocoaPod的名称(正在导入的pod之一)和框架/项目的名称之间出现了冲突。所以我不能使用导入mycoapod,因为它是我们自己导入的东西。