<div dir="ltr"><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">Hey everyone,</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">I'm running into a very specific case right now and I'm wondering if anyone has any experience with this situation.</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">I have a Swift project that is using a custom Swift framework that I created. The Swift framework contains a bunch of public objects that can be used by the projects that import this framework.</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">I now want to change those public objects to be defined and generated by Google Protocol Buffers. Currently, Google's supported languages only has Objective-C and not Swift for iOS classes so I have generated a bunch of Objective-C classes. This is where the problem comes in.</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">If I want to use the Objective-C classes in Swift inside and outside of the Framework, I need to include the generated class headers into the framework's umbrella header. In Xcode 7.1 and above, the Swift compiler has become very strict and will not accept non-modular headers. I've made all the generated classes public but their imported classes all need to be public as well which also need to be made public, and since this is the protobuf Framework, this is made much harder.</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">eg. #import "GPBProtocolBuffers.h" //This has to be made public and everything GPBProtocolBuffers.h has to be modular etc.</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">I need my generated Objective-C classes to be made public and accessible to everything that imports that framework I've created. Has anyone come across this before and have a reasonable solution?</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">Summary:</p><ul style="margin:0px;padding:0px 0px 0px 30px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;color:rgb(51,51,51);line-height:24px;background-color:rgb(244,247,251)"><li style="margin:0.5ex 0px;padding:0px;border:0px;font-style:inherit;font-family:inherit;vertical-align:baseline;line-height:1.4737em;list-style-type:inherit">Have a Swift project using a Swift framework's public objects.</li><li style="margin:0.5ex 0px;padding:0px;border:0px;font-style:inherit;font-family:inherit;vertical-align:baseline;line-height:1.4737em;list-style-type:inherit">Changed the framework's objects to Google Protocol Buffer generated Objective-C classes.</li><li style="margin:0.5ex 0px;padding:0px;border:0px;font-style:inherit;font-family:inherit;vertical-align:baseline;line-height:1.4737em;list-style-type:inherit">The Objective-C classes have to be added to the umbrella header so Swift can access them.</li><li style="margin:0.5ex 0px;padding:0px;border:0px;font-style:inherit;font-family:inherit;vertical-align:baseline;line-height:1.4737em;list-style-type:inherit">Swift compiler complains about inclusion of non-modular classes.</li></ul><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);min-height:8pt;background-color:rgb(244,247,251)"> </p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">Thanks,</p><p style="margin:0px;padding:0px;border:0px;font-family:'Myriad Set Pro','Lucida Grande','Helvetica Neue',Helvetica,Arial,Verdana,sans-serif;vertical-align:baseline;line-height:1.4737em;color:rgb(51,51,51);background-color:rgb(244,247,251)">Vic</p>
</div>