ios - Xcode Workspace - 未从框架开发容器中找到导入

标签 ios swift xcode cocoapods podspec

我已经设置了一个工作区,其中包含两个 Swift 项目:一个是我正在开发的框架,另一个是该框架的演示应用程序。

Podfile 如下所示:

platform :ios, '9.0'
workspace 'foo.xcworkspace'

target 'framework' do
    project 'framework.xcodeproj'
end

target :'demo' do
    project 'demo/demo.xcodeproj'
    pod 'framework', :path => 'framework.podspec'
end

.podspec 文件如下所示:

Pod::Spec.new do |s|
    s.name         = 'framework'
    s.authors      = { "foo author" }
    s.version      = '0.1.0'
    s.summary      = 'foo summary.'
    s.homepage     = 'foo homepage'
    s.platform     =  :ios, '9.0'
    s.license      = {
        :type => "Proprietary",
        :file => "LICENSE"
    }
    s.source       = {
        :git => 'https://url.to/foo.git',
        :tag => s.version.to_s
    }
    s.source_files = 'framework/framework/**/*.{swift,h,m}'
    s.requires_arc = true
    s.weak_framework = "XCTest"
    s.pod_target_xcconfig = {
        'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"',
    }
end

运行pod install后,Xcode/AppCode仍然看不到框架项目中的类。因此,如果我向演示应用程序中的类添加手动导入并尝试编译,则会失败:

Error:(13, 21) use of undeclared type 'FooClass'

我需要做什么才能让演示应用程序项目正确地看到框架项目生成的 pod 中的类?

最佳答案

尝试使用继承!演示目标上的 :search_paths 这意味着他们没有获得自己的 Pod 副本,但可以通过头文件看到它们的存在。

platform :ios, '9.0'
workspace 'foo.xcworkspace'

target :framework do
    project 'framework.xcodeproj'
end

target :demo do
    inherit! :search_paths
    project 'demo/demo.xcodeproj'
    pod 'framework', :path => 'framework.podspec'
end

未经测试但也许值得一试

关于ios - Xcode Workspace - 未从框架开发容器中找到导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45074383/

相关文章:

iOS模拟器如何自动化用户操作然后继续调试

ios - 按顺序在 UITableView 中多选单元格

swift - 完成语句关闭错误

ios - 将用户的消息传递到另一个 TableView

swift - 如何使用 Xcode 和 Swift 跟踪 fatal error ?

swift - 如何在 swift 中保存内置应用程序数据

iOS:NSString 的可逆散列?

ios - 如何在 MapKit 中获取可见的叠加层? (即来自 Mapkit View 的 MKOverlay/MKOverlayRenderer)

ios - View 底部的 UITextView

class - 带有 NSBundle 的段错误 11(对于类 :) and multiple type constraint (protocol + class)