为使用的不同第三方库创建具有内部 Pods 的私有框架的框架程序

Framework procedure to create private framework with internal Pods for different 3rd party library used

我正在开发一个私有框架来为我们的客户的项目提供资源,这样他们就可以拖放他们的项目并开始使用。

为了避免不必要的库导入引用路径集和添加到构建设置工作,我提到构建框架来组织可交付成果是更好的解决方案,它可以满足 Watch OS,我Pods, Ipad,iPhone 合二为一。

我想创建一个通用框架 pods 供其他第 3 方使用。任何人都可以指导我完成这个过程,我如何通过使其尺寸紧凑并交付时除了我的接口文件之外没有暴露任何源代码来实现这一目标。

预期的结构。

我的自定义框架

然后我想将此框架添加到我的测试项目中,该项目将具有其自身的 Pods

MyTestProject.xcworkspace MyTestProject.xcproj MYCustomFramework.framework -- 这将在内部编译所有下面的括号内容,因此除了接口外没有暴露任何源代码。 {

如何做到这一点并使其尽可能小。

尝试本指南,您还必须将规范存储库添加到 pods 存储库 https://guides.cocoapods.org/making/private-cocoapods.html

已编辑:

我们有一个内部包装的 Fabric POD,它只提供我们从 Fabric 获得的 Fabric.framework(这是在 Fabric 有一个 public pod 之前)这是我们的 pod 规范。 因此,在您的回购协议中,您可以构建一个 .framework 并以与包装 Fabric 相同的方式交付它

希望对您有所帮助

{
  "name": "InternalFabric",
  "version": "1.1.1",
  "summary": "Fabric is a 3rd party library that gives us crash analytics.",
  "homepage": "https://github.com/myNameHere",
  "authors": "myNameHere",
  "license": {
    "type": "Copyright",
    "text": "\n Copyright Acme Inc. 2014\n For internal Acme use only. \n"
     },  
  "platforms": {
    "ios": "7.0"
  },
  "source": {
    "git": "https://github.com/ios-yourLibs/Fabric.git"
  },
  "requires_arc": true,
  "default_subspecs": "Core",
  "subspecs": [
      {
        "name": "Core",
        "vendored_frameworks": ["Fabric.framework","Crashlytics.framework"]
      },
      {
        "name": "Crashlytics",
        "dependencies": {
          "Fabric/Core": [

          ]
        },
        "vendored_frameworks": "Crashlytics.framework"
      }
  ]
}

经过各种尝试,我终于按照下面的方式完成了这个作品。

1) Pods(测试项目已发布)不能有很多第三方库的Pods。 2 工作区冲突,用哪个比较麻烦

2) 创建一个测试项目并为该测试项目实施 Pods 并使用工作区打开它。

3) 使用 XMPP 框架库和提取的文件夹和 headers 而没有 Pods。

4) 创建一个 Cocoa-touch 框架并在不使用 Pods.

的情况下拖动此 XMPPFramework 文件夹

5) 类似地使用手动过程将其他库集成到我的 Cocoa-Touch 框架

6) 编译了我的框架并为(设备和模拟器)

生成了 mycustomframework.framework

7) 我现在可以选择使用 LIPO 来制作聚合目标,以确保所有 XMPP 和其他第 3 方库 header 在我的框架内都是私有的,只有我公开的 public header 文件可用于测试项目集成。

8) 通过将已编译的“.framework”文件或库项目拖到我的测试项目中来解决 运行 我的测试项目,这样也可以调试我的库代码。