[swift-users] How to optionally link swift framework into another framework

Jakub Bednář jakub.bednar at avast.com
Mon Mar 6 10:26:16 CST 2017


Hello everyone,

I am trying to add optional logging into my framework, but for sake of this question, lets assume I want to add optional logging into an app. I have created an example with following setup:

1. Logging.framework declares

	public protocol Logging {
		func debug(message: String)
	}

	and I have build the framework for the app to see it.

2. Application has 

	import Logging
	
	public class Engine {

		let logger: Logging?

		public init(withLogger logger: Logging? = nil) {
			self.logger = logger 
		}

		public work() {
			self.logger?.debug(“Working”)
		}
	} 

Now I don’t have the Logging.framework in Embed Binaries nor Link Frameworks lists. My app builds ok, but then fails to start telling me that Logging.framework was not loaded. I checked the binary using otool -L and Logging.framework is still referenced by the binary. Is there any way how to achieve my goal? This would be trivial with Objective-C and I still can’t figure it out in Swift.

Thanks a lot,

J.



More information about the swift-users mailing list