Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report for Bug 51233 on
Developer Community or GitHub if you have new
information to add and do not yet see a matching new report.
If the latest results still closely match this report, you can use the
In special cases on GitHub you might also want the comments:
GitHub Markdown with public comments
I am using sharpie 3.3.0p 3d8547f 3d8547fcf1f7c2c2337b122c8d1fe893eb6a1ad3 2016-08-03 04:49:53
When I try to bind the header files, sharpie is telling me that there is an error because it cannot find a header file that was imported with `#import <MQTTClient/MQTTSession.h>`.
A workaround is to change `#import <MQTTClient/MQTTSession.h>` to `#import "MQTTSession.h"` where sharpie can then find the needed header file. However, I need to do this manually. I might have missed a sharpie command but could not find anything about it.
Here is my sharpie command and its output:
$ cat bind.sh
sharpie bind -sdk iphoneos10.2 \
-namespace MyCompany.IoT.Mqtt.iOS \
-scope build/Release-universal/MQTTClient/MQTTClient.framework/Headers \
-c -F .
Parsing 1 header files...
In file included from /Users/jose.martinez/Documents/Workspaces/MyCompany.IoT.Mqtt.iOS/src/MyCompany.IoT.Mqtt.iOS/build/Release-universal/MQTTClient/MQTTClient.framework/Headers/MQTTClient-umbrella.h:21:
/Users/jose.martinez/Documents/Workspaces/MyCompany.IoT.Mqtt.iOS/src/MyCompany.IoT.Mqtt.iOS/build/Release-universal/MQTTClient/MQTTClient.framework/Headers/MQTTClient.h:18:9: fatal error:
'MQTTClient/MQTTSession.h' file not found
Automated binding is complete, but there are a few APIs which have been flagged with [Verify] attributes. While the entire binding should be audited
for best API design practices, look more closely at APIs with the following Verify attribute hints:
MethodToProperty (3 instances):
An Objective-C method was bound as a C# property due to convention such as taking no parameters and returning a value (non-void return). Often
methods like these should be bound as properties to surface a nicer API, but sometimes false-positives can occur and the binding should actually be
StronglyTypedNSArray (9 instances):
A native NSArray* was bound as NSObject. It might be possible to more strongly type the array in the binding based on expectations set through
API documentation (e.g. comments in the header file) or by examining the array contents through testing. For example, an NSArray* containing only
NSNumber* instances can be bound as NSNumber instead of NSObject.
ConstantsInterfaceAssociation (2 instances):
There's no foolproof way to determine with which Objective-C interface an extern variable declaration may be associated. Instances of these are
bound as [Field] properties in a partial interface into a nearby concrete interface to produce a more intuitive API, possibly eliminating the '
Constants' interface altogether.
Once you have verified a Verify attribute, you should remove it from the binding source code. The presence of Verify attributes intentionally cause
For more information about the Verify attribute hints above, consult the Objective Sharpie documentation by running 'sharpie docs' or visiting the
1 error generated.
Error while processing /Users/jose.martinez/Documents/Workspaces/MyCompany.IoT.Mqtt.iOS/src/MyCompany.IoT.Mqtt.iOS/build/Release-universal/MQTTClient/MQTTClient.framework/Headers/MQTTClient-umbrella.h.
Submitting usage data to Xamarin...
Submitted - thank you for helping to improve Objective Sharpie!
Done. Exiting with error code 1.
error: Clang failed to parse input and exited with code 1