As a Framework Author, I should be able to add ObjC Generated Interface Header to my Umbrella Header
| Originator: | jeffkhui | ||
| Number: | rdar://21376825 | Date Originated: | |
| Status: | Open | Resolved: | |
| Product: | Developer Tools | Product Version: | |
| Classification: | Reproducible: | Always |
Summary: A framework author cannot import the Objective-C Generated Interface Header (Module/Module-Swift.h) in the umbrella header because it fails on fully cleaned compiles. This requires framework users to manually import the Swift portion of a Framework's API. Steps to Reproduce: 1. Clone the Nimble Project (https://github.com/Quick/Nimble) 2. Include Nimble as a dependency to an Objective-C project. 3. Use the Objective-C API as follows: - Import Nimble.h - Write `expect(@1).to(equal(@1));` in a method body 4. Attempt compile, build should fail because `to` is not defined 5. Edit Nimble.h to add: #import <Nimble/Nimble-Swift.h> 6. Recompile (it may pass). 7. Fully clean derived data. 8. Recompile. It fails with no module found or could not find Nimble-Swift.h file. Expected Results: Actual Results: Version: Xcode 6.3.2 Xcode 7.0 beta (7A120f) Notes: More context: https://github.com/Quick/Nimble/issues/129 Nimble defines the result of `expect()` in Swift, which requires the generated header to be imported.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!
Apple's recommended workaround is to use @import instead.