Post

Replies

Boosts

Views

Activity

Reply to Xcode 12 Framework: 'Double-quoted include in framework header, expected angle-bracketed instead'
This is not just an issue with Cocoapods projects, and it's a compile error instead of a warning in Xcode 15.0.1. I was having this problem in a native macos application, where one of my application modules is a framework, and the framework module has a C header file referenced by two other C header files, also in the framework. In my codebase, the framework module is named IslepopAUFramework, and the three header files (all at the root level of the framework project) were coded as such: islepop_editapi_types.h: #ifndef islepop_editapi_types_h #define islepop_editapi_types_h typedef enum { UNKNOWN, EDIT_AUDIO_CONFIGURATION, GET_PATCH_BANK, SAVE_PATCH_BANK, NEW_PATCH_BANK, LOAD_PATCH_BANK, NEW_PATCH, ... islepop_external_bindings.h: #ifndef ISLEPOP_EXTERNAL_BINDINGS_H #define ISLEPOP_EXTERNAL_BINDINGS_H #import "islepop_editapi_types.h" //Edit API void fire_the_engine(); void shut_it_down(); RustEditAPIResponse* send_command(RustEditAPICommand* command); void free_response(RustEditAPIResponse* response); ... #endif islepop_midi_1_0_bindings.h: #ifndef islepop_midi_1_0_bindings_h #define islepop_midi_1_0_bindings_h #import "islepop_editapi_types.h" //CRUD operations for MIDI subscriptions.. or at least the CR and D: RustEditAPIResponse* add_midi_subscription(int32_t patch_id, int32_t patch_unit_id, int32_t parameter_id, double_t range_low, double_t range_high); RustEditAPIResponse* remove_midi_subscription(int32_t subscription_id, uint8_t message_type, uint8_t message_subtype); RustEditAPIResponse* send_command_to_midi(RustEditAPICommand* command); void free_midi_response(RustEditAPIResponse* response); #endif As noted at the bottom of this post (https://developer.apple.com/forums/thread/69606), I had to add all of my C header files to the Headers section of the Build Phases tab of my framework target. I also had to change the #import statements in islepop_external_bindings.h and islepop_midi_1_0_bindings.h to angle-bracketed imports, as such -- notice that the angle brackets include the framework name, even though all of these header files are in the same place, at the root of IslepopAUFramework: #import <IslepopAUFramework/islepop_editapi_types.h> With these two changes, the error requiring angle-bracketed includes is fixed, and the compiler can actually find the header files.
Nov ’23
Reply to Slider .rotationEffect broken in MacOS 14.5
Having the same problem on Sonoma 14.5 and Xcode 15.4 -- rotating 90 or 270 degrees fails to render the slider and console shows the message "CGAffineTransformInvert: singular matrix."
Topic: UI Frameworks SubTopic: SwiftUI
Replies
Boosts
Views
Activity
Jun ’24
Reply to Xcode 12 Framework: 'Double-quoted include in framework header, expected angle-bracketed instead'
This is not just an issue with Cocoapods projects, and it's a compile error instead of a warning in Xcode 15.0.1. I was having this problem in a native macos application, where one of my application modules is a framework, and the framework module has a C header file referenced by two other C header files, also in the framework. In my codebase, the framework module is named IslepopAUFramework, and the three header files (all at the root level of the framework project) were coded as such: islepop_editapi_types.h: #ifndef islepop_editapi_types_h #define islepop_editapi_types_h typedef enum { UNKNOWN, EDIT_AUDIO_CONFIGURATION, GET_PATCH_BANK, SAVE_PATCH_BANK, NEW_PATCH_BANK, LOAD_PATCH_BANK, NEW_PATCH, ... islepop_external_bindings.h: #ifndef ISLEPOP_EXTERNAL_BINDINGS_H #define ISLEPOP_EXTERNAL_BINDINGS_H #import "islepop_editapi_types.h" //Edit API void fire_the_engine(); void shut_it_down(); RustEditAPIResponse* send_command(RustEditAPICommand* command); void free_response(RustEditAPIResponse* response); ... #endif islepop_midi_1_0_bindings.h: #ifndef islepop_midi_1_0_bindings_h #define islepop_midi_1_0_bindings_h #import "islepop_editapi_types.h" //CRUD operations for MIDI subscriptions.. or at least the CR and D: RustEditAPIResponse* add_midi_subscription(int32_t patch_id, int32_t patch_unit_id, int32_t parameter_id, double_t range_low, double_t range_high); RustEditAPIResponse* remove_midi_subscription(int32_t subscription_id, uint8_t message_type, uint8_t message_subtype); RustEditAPIResponse* send_command_to_midi(RustEditAPICommand* command); void free_midi_response(RustEditAPIResponse* response); #endif As noted at the bottom of this post (https://developer.apple.com/forums/thread/69606), I had to add all of my C header files to the Headers section of the Build Phases tab of my framework target. I also had to change the #import statements in islepop_external_bindings.h and islepop_midi_1_0_bindings.h to angle-bracketed imports, as such -- notice that the angle brackets include the framework name, even though all of these header files are in the same place, at the root of IslepopAUFramework: #import <IslepopAUFramework/islepop_editapi_types.h> With these two changes, the error requiring angle-bracketed includes is fixed, and the compiler can actually find the header files.
Replies
Boosts
Views
Activity
Nov ’23