我决定在iOS小部件中将我的主项目分为两部分以重用代码。

因此,我在xcworkspace(可可触摸框架)中创建了一个新的目标文件。
这两个目标都有一些共同的pod依赖项,我无法确定正确的构建方式。

ios - 无法找到使用主应用程序目标构建自己的框架目标的正确方法-LMLPHP

第一次尝试:

在podfile中,我为两个目标都指定了所需的pod,但是在构建时,我遇到了多个错误

Foo类在MyApp和MyFramework中都实现。将使用两者之一。哪一个未定义。

第二次尝试:

然后,我尝试将框架目标放到主应用程序目标中(就像我们通常使用测试目标一样)

target 'MyApp' do
    main_pods
    app_pods

    target 'MyFramework' do
        inherit! :search_paths

        target 'MyFrameworkTests' do
            inherit! :search_paths
            testing_pods
        end
    end
end

但是,由于没有找到依赖关系,因此框架无法构建
例:

没有这样的模块Firebase

注意:

要构建我的主要目标,我必须先构建框架目标,否则找不到'MyFramework'模块。当我建立主要目标时,无法同时建立两者吗?

最佳答案

我也有一个应用程序,我在一个单独的项目中创建了一个框架,但是工作空间相同。我使用pod来获取所有外部库,并通过将其添加到Xcode的Embedded Binaries中将自己的框架嵌入到应用程序的目标中。我的Podfile看起来像这样:

workspace 'MyApp'

abstract_target 'BasePods' do
    use_frameworks!

    pod 'Alamofire', '~> 4.4'
    pod 'PromiseKit', '~> 4.1'
    project '../MyAppProject/MyApp/MyApp.xcodeproj'

    target 'MyApp'
    target 'MyAppDevelopment'
end

target 'MyAppCore' do
  use_frameworks!

    pod 'Alamofire', '~> 4.4'
    pod 'PromiseKit', '~> 4.1'
    project '../MyAppProject/MyAppCore/MyAppCore.xcodeproj'

      target 'MyAppCoreTests' do
    inherit! :search_paths
    end
end

在这里,我会创建两个单独的pod目标-一个用于应用程序,另一个用于框架。我将它们拆分,因为它们位于不同的目录中。

10-07 19:49
查看更多