请将嵌入式目标的主机目标添加到 Podfile
Posted
技术标签:
【中文标题】请将嵌入式目标的主机目标添加到 Podfile【英文标题】:Please add the host targets for the embedded targets to the Podfile 【发布时间】:2018-12-04 07:26:42 【问题描述】:我的项目是 Swift 2.0。我正在尝试所有可能的方法,但没有找到任何解决方案。
我的 pod 文件
# Uncomment this line to define a global platform for your project
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, :deployment_target => '8.0'
# ignore all warnings from all pods
inhibit_all_warnings!
use_frameworks!
def available_pods
pod 'IQKeyboardManager'
pod 'Instabug'
pod "TSMessages"
pod 'AsyncSwift' , :git => 'https://github.com/duemunk/Async.git'
pod 'Onboard' # not used
pod 'DZNEmptyDataSet' # not used
pod 'iOS-Slide-Menu'
pod 'Kanna', :git => 'https://github.com/tid-kijyun/Kanna.git'
pod 'HanekeSwift', :git => 'https://github.com/Haneke/HanekeSwift.git'
pod 'Alamofire'
pod 'ObjectMapper', :git => 'https://github.com/Hearst-DD/ObjectMapper.git'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'
pod 'ReachabilitySwift'
pod 'SCLAlertView'
pod 'ImageLoader'
pod 'NVActivityIndicatorView', :git => 'https://github.com/ninjaprox/NVActivityIndicatorView.git'
pod 'ActiveLabel'
pod 'MWFeedParser'
pod "SwiftElegantDropdownMenu"
pod 'SwiftHEXColors'
pod 'UITextView+Placeholder'
pod "AFDateHelper"
pod 'DateTools'
pod "SwiftDate", "~> 2.0"
pod 'APAddressBook/Swift'
pod 'FBSDKLoginKit'
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'PusherSwift', git: 'https://github.com/pusher/pusher-websocket-swift.git', branch: 'push-notifications'
end
def available_pods_exc
pod 'Alamofire'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'
pod 'ReachabilitySwift'
pod 'Kanna', :git => 'https://github.com/tid-kijyun/Kanna.git'
pod 'AsyncSwift' , :git => 'https://github.com/duemunk/Async.git'
end
target 'link' do
available_pods
end
target 'ReadLaterExtension' do
available_pods_exc
end
target 'Link Tests' do
pod 'Quick', '0.3.1'
pod 'Nimble'
end
我发现下面的错误
[!] Unable to find host target(s) for ReadLaterExtension. Please add the host targets for the embedded targets to the Podfile.
Certain kinds of targets require a host target. A host target is a "parent" target which embeds a "child" target. These are example types of targets that need a host target:
- Framework
- App Extension
- Watch OS 1 Extension
- Messages Extension (except when used with a Messages Application)
【问题讨论】:
【参考方案1】:问题不在podfile,而在项目!
修复:
转到 XCode 选择您的 HOST 目标。 打开目标的“常规”页面在“嵌入式二进制文件”部分,确保您的 EXTENSION 目标存在。
在你的 Podfile 中你应该有:
target 'HostApp' do
....
target 'YourExtension' do
....
end
end
【讨论】:
【参考方案2】:为了禁用构建/运行您构建的 NSExtension,您应该:
-
在项目导航器中点击项目文件
单击包含的应用程序目标(您想要运行的目标)
单击构建阶段选项卡
打开目标依赖项
删除扩展程序(您不想运行的那个)
要恢复它,只需单击同一位置的 + 号,然后
重新添加。
在我的情况下工作成功
【讨论】:
【参考方案3】:为了将来参考,我想添加一个我刚刚发现的此错误消息的原因:
在主要目标构建阶段中,Embed App Extensions
部分必须位于 [CP] Copy Pods Resources
和 [CP] Embed Pods Frameworkds
之上。
【讨论】:
以上是关于请将嵌入式目标的主机目标添加到 Podfile的主要内容,如果未能解决你的问题,请参考以下文章