我已经设置了一个工作区,其中包含两个 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/