> On Jan 20, 2017, at 9:39 AM, Jordan Rose via swift-users 
> <swift-users@swift.org> wrote:
> 
> Hi, Rien. Libraries don’t support bridging headers because the client of the 
> library has to be able to import the header, and arbitrary bridging headers 
> may conflict. (This is actually the primary purpose of modules for 
> Objective-C: to declare a group of headers that are self-contained—besides 
> what other modules they import—and can therefore be imported earlier or later 
> without difficulty.) The compiler will mildly try to stop you from doing this 
> if it can figure out you’re building a library, but it’s a bad idea no matter 
> what. Even if everything appears to compile fine, it’s likely you’ll get 
> inscrutable errors when trying te debug anything that uses your library.
> 
> The particular difference between Xcode-created frameworks and 
> SwiftPM-generated libraries is that Xcode frameworks are set up to be 
> mixed-source, using the Objective-C public umbrella header in place of a 
> bridging header. SwiftPM doesn’t support mixed-source targets. (Since I don’t 
> work on SwiftPM myself I don’t know if there are any public plans to do so.)
> 
> The recommended solution is to group your Objective-C headers into modules 
> (usually just frameworks) and import them that way, rather than to jam them 
> in via a bridging header.

That is correct, we have no immediate plans to support a mixed source model, 
our recommendation is to expose any C/C++/Objective-C through a clean modular 
interface, and then import that and use it in your higher level Swift modules.

 - Daniel

> 
> Sorry for the trouble,
> Jordan
> 
> 
>> On Jan 20, 2017, at 08:49, Rien via swift-users <swift-users@swift.org 
>> <mailto:swift-users@swift.org>> wrote:
>> 
>> I noticed something strange about Xcode and SPM concerning the capability to 
>> generate Libraries.
>> 
>> When I try to create a Library in Xcode and then want to add an Objective-C 
>> bridging header, that is denied. It claims that bridging is not supported 
>> for Libraries.
>> 
>> When I create an Xcode project through the SPM (with “swift package 
>> generate-xcodeproj”) then I can use bridging headers, even though the end 
>> result is a library.
>> 
>> Question: Is this a viable work around? or are there hidden dangers that 
>> might not be immediately apparent?
>> 
>> As a side note: SPM complains about multiple languages and currently only 
>> supports pure Swift modules.
>> This creates the strange situation that I now use SPM to create an xcode 
>> project and then use Xcode to create bridged mixed language libraries.
>> 
>> Regards,
>> Rien
>> 
>> Site: http://balancingrock.nl <http://balancingrock.nl/>
>> Blog: http://swiftrien.blogspot.com <http://swiftrien.blogspot.com/>
>> Github: http://github.com/Swiftrien <http://github.com/Swiftrien>
>> Project: http://swiftfire.nl <http://swiftfire.nl/>
>> 
>> 
>> 
>> 
>> _______________________________________________
>> swift-users mailing list
>> swift-users@swift.org <mailto:swift-users@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to