I have an app (let\'s call it MyApp) written in Swift with the following targets :
MyApp
: the main targetMyAppKit
: a targ
I don't know you. But for me, it's totally legit and reasonable to have the extension and the host app contain all the pods that a framework defines. And this is what i mean:
def shared_pods
pod 'Alamofire'
end
target 'Framework' do
shared_pods
end
target 'Host' do
shared_pods
// Some other pods
end
target 'Extension' do
shared_pods
end
I know you are worried about but if you think about it, all those 3rd party frameworks you use, they all have dependencies. You don't have to worries about them because Cocoapods takes care of them for you. If you want to utilise that, then you'll need to put a local pod entry in the list.
target 'Host' do
pod Framework, :path => '../Framework'
end
But then you have to maintain the podspec
file.
This is a swift-3.0 project's profile example.
platform :ios, '8.0'
def import_public_pods
pod 'SwiftyJSON'
end
target 'Demo' do
use_frameworks!
# Pods for Demo
import_public_pods
pod 'Fabric'
pod 'Crashlytics'
target 'DemoTests' do
inherit! :search_paths
# Pods for testing
end
target 'DemoUITests' do
inherit! :search_paths
# Pods for testing
end
end
target 'DemoKit' do
use_frameworks!
# Pods for DemoKit
import_public_pods
pod 'RealmSwift'
target 'DemoKitTests' do
inherit! :search_paths
# Pods for testing
end
end
So, what gives :
import RealmSwift
statement.The fixed and working Podfile therefore is :
platform :ios, '8.0'
use_frameworks!
target 'MyApp' do
pod 'Eureka', '~> 2.0.0-beta'
pod 'PKHUD', '~> 4.0'
pod '1PasswordExtension', '~> 1.8'
end
target 'MyAppKit' do
pod 'Fuzi', '~> 1.0'
pod 'RealmSwift', '~> 2.0'
pod 'Alamofire', '~> 4.0'
pod 'KeychainAccess', '~> 3.0'
pod 'Result', '~> 3.0'
target 'MyAppWidget' do
inherit! :search_paths
end
end
And that's it. I would say that the old behaviour was more obvious and didn't require reading up on "podfile target inheritance". I did learn a lot though. Cheers!