Cocoa 具有 CocoaPods 依赖项的触控框架
Cocoa Touch Framework with CocoaPods dependencies
我正在尝试创建一个 Cocoa 触控框架。
- 我创建了一个Cocoa Touch Framework
- 我运行
pod init
- 我向其中添加了我们自己的 CocoaPod,它本身也有一些依赖项。
- 我运行
pod install
.
现在,当我尝试构建框架时(我打开 .xcodeproj
),每个依赖项都会收到以下警告。
ld: warning: directory not found for option '-F/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/Alamofire'
我收到以下错误:
ld: framework not found Alamofire
error: Resource "/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/FirebaseFirestore/gRPCCertificates-Firestore.bundle" not found. Run 'pod install' to update the copy resources script.
我预计这是因为 CocoaPod 文件没有复制到正确的位置。那是对的吗?
无论如何,我该怎么做才能完成这项工作?
我想这样做的原因如下:
我有一个 CocoaPods 项目,它是一个常规 Xcode 项目,只有 Swift 类 和一些视图控制器。我们希望将其作为闭源提供。因此,我希望将此 pod 包含在 Cocoa Touch Framework 中仍会使用户可以使用其 pods 的所有 public 功能。
如果还有其他建议,欢迎提出!
提前致谢。
我得到的第一点是你在 pod 安装后使用了 .xcodeproj
。请注意,安装 pods 后,还会创建一个扩展名为 .xcworkspace
的文件,您需要使用此文件打开项目,您以后的工作应在此文件中完成。
好的,所以我在设置时遇到的所有问题似乎都与 Xcode 相关。
基本上我所做的工作如下:
- 通过 Xcode 的
File > New > Project ...
创建一个 Cocoa 触控框架。
- 使用终端导航到框架的根文件夹(包含
YourFramework.xcodeproj
文件的文件夹)。
- 运行
pod init
.
- 将必要的 CocoaPods 添加到
Podfile
.
- 运行
pod install
.
- 确保关闭可能在 Xcode 中打开的
YourFramework
-项目。
从这里开始,我的问题开始出现。打开 YourFramework.xcworkspace
有效,但在 Xcode 的左侧导航器中,我只能展开 Pods-项目,而不是 框架-项目;它似乎是空的。建筑也没有用。
要解决此问题(因此,只需按常规步骤解决 Xcode 个问题):
- 关闭Xcode.
- 删除派生数据。
- 再次打开
YourFramework.xcworkspace
。
- 清理构建文件夹。
现在它可能会生成,也可能不会。在我的例子中,它没有,并且有 100 多个与 Swift 语言不可用相关的问题。我创建了一个没有任何源文件的框架,只是导入了CocoaPods。要解决此问题,请在至少导入 Foundation
.
的框架中创建一个 Swift 文件
现在应该可以构建了。
我正在尝试创建一个 Cocoa 触控框架。
- 我创建了一个Cocoa Touch Framework
- 我运行
pod init
- 我向其中添加了我们自己的 CocoaPod,它本身也有一些依赖项。
- 我运行
pod install
.
现在,当我尝试构建框架时(我打开 .xcodeproj
),每个依赖项都会收到以下警告。
ld: warning: directory not found for option '-F/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/Alamofire'
我收到以下错误:
ld: framework not found Alamofire
error: Resource "/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/FirebaseFirestore/gRPCCertificates-Firestore.bundle" not found. Run 'pod install' to update the copy resources script.
我预计这是因为 CocoaPod 文件没有复制到正确的位置。那是对的吗? 无论如何,我该怎么做才能完成这项工作?
我想这样做的原因如下: 我有一个 CocoaPods 项目,它是一个常规 Xcode 项目,只有 Swift 类 和一些视图控制器。我们希望将其作为闭源提供。因此,我希望将此 pod 包含在 Cocoa Touch Framework 中仍会使用户可以使用其 pods 的所有 public 功能。 如果还有其他建议,欢迎提出!
提前致谢。
我得到的第一点是你在 pod 安装后使用了 .xcodeproj
。请注意,安装 pods 后,还会创建一个扩展名为 .xcworkspace
的文件,您需要使用此文件打开项目,您以后的工作应在此文件中完成。
好的,所以我在设置时遇到的所有问题似乎都与 Xcode 相关。 基本上我所做的工作如下:
- 通过 Xcode 的
File > New > Project ...
创建一个 Cocoa 触控框架。 - 使用终端导航到框架的根文件夹(包含
YourFramework.xcodeproj
文件的文件夹)。 - 运行
pod init
. - 将必要的 CocoaPods 添加到
Podfile
. - 运行
pod install
. - 确保关闭可能在 Xcode 中打开的
YourFramework
-项目。
从这里开始,我的问题开始出现。打开 YourFramework.xcworkspace
有效,但在 Xcode 的左侧导航器中,我只能展开 Pods-项目,而不是 框架-项目;它似乎是空的。建筑也没有用。
要解决此问题(因此,只需按常规步骤解决 Xcode 个问题):
- 关闭Xcode.
- 删除派生数据。
- 再次打开
YourFramework.xcworkspace
。 - 清理构建文件夹。
现在它可能会生成,也可能不会。在我的例子中,它没有,并且有 100 多个与 Swift 语言不可用相关的问题。我创建了一个没有任何源文件的框架,只是导入了CocoaPods。要解决此问题,请在至少导入 Foundation
.
现在应该可以构建了。