Objective Sharpie 缺少大部分 API
Objective Sharpie Missing Most of the API
我正在尝试让 Objective Sharpie 为 Spotify iOS SDK 生成绑定。
我使用以下命令:
sharpie bind -sdk iphoneos10.2 \
-output SpotifyAuthenticationBindings \
SpotifyAuthentication.framework/Headers/SpotifyAuthentication.h \
-scope SpotifyAuthentication.framework/Headers/ \
-c -F .
但是,输出的 ApiDefinitions.cs
似乎没有包含太多常量之外的内容:
using Foundation;
using SpotifyAuthentication;
using UIKit;
[Static]
[Verify (ConstantsInterfaceAssociation)]
partial interface Constants
{
// extern double SpotifyAuthenticationVersionNumber;
[Field ("SpotifyAuthenticationVersionNumber", "__Internal")]
double SpotifyAuthenticationVersionNumber { get; }
// extern const unsigned char [] SpotifyAuthenticationVersionString;
[Field ("SpotifyAuthenticationVersionString", "__Internal")]
byte[] SpotifyAuthenticationVersionString { get; }
// extern NSString *const SPTAuthStreamingScope;
[Field ("SPTAuthStreamingScope", "__Internal")]
NSString SPTAuthStreamingScope { get; }
// extern NSString *const SPTAuthPlaylistReadPrivateScope;
[Field ("SPTAuthPlaylistReadPrivateScope", "__Internal")]
NSString SPTAuthPlaylistReadPrivateScope { get; }
// extern NSString *const SPTAuthPlaylistReadCollaborativeScope;
[Field ("SPTAuthPlaylistReadCollaborativeScope", "__Internal")]
NSString SPTAuthPlaylistReadCollaborativeScope { get; }
// extern NSString *const SPTAuthPlaylistModifyPublicScope;
[Field ("SPTAuthPlaylistModifyPublicScope", "__Internal")]
NSString SPTAuthPlaylistModifyPublicScope { get; }
// extern NSString *const SPTAuthPlaylistModifyPrivateScope;
[Field ("SPTAuthPlaylistModifyPrivateScope", "__Internal")]
NSString SPTAuthPlaylistModifyPrivateScope { get; }
// extern NSString *const SPTAuthUserFollowModifyScope;
[Field ("SPTAuthUserFollowModifyScope", "__Internal")]
NSString SPTAuthUserFollowModifyScope { get; }
// extern NSString *const SPTAuthUserFollowReadScope;
[Field ("SPTAuthUserFollowReadScope", "__Internal")]
NSString SPTAuthUserFollowReadScope { get; }
// extern NSString *const SPTAuthUserLibraryReadScope;
[Field ("SPTAuthUserLibraryReadScope", "__Internal")]
NSString SPTAuthUserLibraryReadScope { get; }
// extern NSString *const SPTAuthUserLibraryModifyScope;
[Field ("SPTAuthUserLibraryModifyScope", "__Internal")]
NSString SPTAuthUserLibraryModifyScope { get; }
// extern NSString *const SPTAuthUserReadPrivateScope;
[Field ("SPTAuthUserReadPrivateScope", "__Internal")]
NSString SPTAuthUserReadPrivateScope { get; }
// extern NSString *const SPTAuthUserReadTopScope;
[Field ("SPTAuthUserReadTopScope", "__Internal")]
NSString SPTAuthUserReadTopScope { get; }
// extern NSString *const SPTAuthUserReadBirthDateScope;
[Field ("SPTAuthUserReadBirthDateScope", "__Internal")]
NSString SPTAuthUserReadBirthDateScope { get; }
// extern NSString *const SPTAuthUserReadEmailScope;
[Field ("SPTAuthUserReadEmailScope", "__Internal")]
NSString SPTAuthUserReadEmailScope { get; }
// extern NSString *const SPTAuthSessionUserDefaultsKey;
[Field ("SPTAuthSessionUserDefaultsKey", "__Internal")]
NSString SPTAuthSessionUserDefaultsKey { get; }
}
// typedef void (^SPTAuthCallback)(NSError *, SPTSession *);
delegate void SPTAuthCallback (NSError arg0, SPTSession arg1);
// @interface SPTConnectButton : UIControl
[BaseType (typeof(UIControl))]
interface SPTConnectButton
{
}
如何让它生成所有 类 的定义? (ex SPTAuth)
在 SpotifyAuthentication.framework/Headers/SpotifyAuthentication.h
中,从 import
语句中删除 SpotifyAuthentication/
目录:
#import <SPTAuth.h>
#import <SPTSession.h>
#if TARGET_OS_IPHONE
#import <SPTConnectButton.h>
#import <SPTAuthViewController.h>
#import <SPTStoreViewController.h>
#import <SPTEmbeddedImages.h>
#endif
夏皮:
sharpie -tlm-do-not-submit \
bind \
-sdk iphoneos10.2 \
-output SpotifyAuthenticationBindings \
SpotifyAuthentication.framework/Headers/SpotifyAuthentication.h \
-c -ISpotifyAuthentication.framework/Header
您的结果 ApiDefinitions.cs
现在应该包含 ~300 行,您将对 [Verify]
标签进行一些清理工作....
我正在尝试让 Objective Sharpie 为 Spotify iOS SDK 生成绑定。
我使用以下命令:
sharpie bind -sdk iphoneos10.2 \
-output SpotifyAuthenticationBindings \
SpotifyAuthentication.framework/Headers/SpotifyAuthentication.h \
-scope SpotifyAuthentication.framework/Headers/ \
-c -F .
但是,输出的 ApiDefinitions.cs
似乎没有包含太多常量之外的内容:
using Foundation;
using SpotifyAuthentication;
using UIKit;
[Static]
[Verify (ConstantsInterfaceAssociation)]
partial interface Constants
{
// extern double SpotifyAuthenticationVersionNumber;
[Field ("SpotifyAuthenticationVersionNumber", "__Internal")]
double SpotifyAuthenticationVersionNumber { get; }
// extern const unsigned char [] SpotifyAuthenticationVersionString;
[Field ("SpotifyAuthenticationVersionString", "__Internal")]
byte[] SpotifyAuthenticationVersionString { get; }
// extern NSString *const SPTAuthStreamingScope;
[Field ("SPTAuthStreamingScope", "__Internal")]
NSString SPTAuthStreamingScope { get; }
// extern NSString *const SPTAuthPlaylistReadPrivateScope;
[Field ("SPTAuthPlaylistReadPrivateScope", "__Internal")]
NSString SPTAuthPlaylistReadPrivateScope { get; }
// extern NSString *const SPTAuthPlaylistReadCollaborativeScope;
[Field ("SPTAuthPlaylistReadCollaborativeScope", "__Internal")]
NSString SPTAuthPlaylistReadCollaborativeScope { get; }
// extern NSString *const SPTAuthPlaylistModifyPublicScope;
[Field ("SPTAuthPlaylistModifyPublicScope", "__Internal")]
NSString SPTAuthPlaylistModifyPublicScope { get; }
// extern NSString *const SPTAuthPlaylistModifyPrivateScope;
[Field ("SPTAuthPlaylistModifyPrivateScope", "__Internal")]
NSString SPTAuthPlaylistModifyPrivateScope { get; }
// extern NSString *const SPTAuthUserFollowModifyScope;
[Field ("SPTAuthUserFollowModifyScope", "__Internal")]
NSString SPTAuthUserFollowModifyScope { get; }
// extern NSString *const SPTAuthUserFollowReadScope;
[Field ("SPTAuthUserFollowReadScope", "__Internal")]
NSString SPTAuthUserFollowReadScope { get; }
// extern NSString *const SPTAuthUserLibraryReadScope;
[Field ("SPTAuthUserLibraryReadScope", "__Internal")]
NSString SPTAuthUserLibraryReadScope { get; }
// extern NSString *const SPTAuthUserLibraryModifyScope;
[Field ("SPTAuthUserLibraryModifyScope", "__Internal")]
NSString SPTAuthUserLibraryModifyScope { get; }
// extern NSString *const SPTAuthUserReadPrivateScope;
[Field ("SPTAuthUserReadPrivateScope", "__Internal")]
NSString SPTAuthUserReadPrivateScope { get; }
// extern NSString *const SPTAuthUserReadTopScope;
[Field ("SPTAuthUserReadTopScope", "__Internal")]
NSString SPTAuthUserReadTopScope { get; }
// extern NSString *const SPTAuthUserReadBirthDateScope;
[Field ("SPTAuthUserReadBirthDateScope", "__Internal")]
NSString SPTAuthUserReadBirthDateScope { get; }
// extern NSString *const SPTAuthUserReadEmailScope;
[Field ("SPTAuthUserReadEmailScope", "__Internal")]
NSString SPTAuthUserReadEmailScope { get; }
// extern NSString *const SPTAuthSessionUserDefaultsKey;
[Field ("SPTAuthSessionUserDefaultsKey", "__Internal")]
NSString SPTAuthSessionUserDefaultsKey { get; }
}
// typedef void (^SPTAuthCallback)(NSError *, SPTSession *);
delegate void SPTAuthCallback (NSError arg0, SPTSession arg1);
// @interface SPTConnectButton : UIControl
[BaseType (typeof(UIControl))]
interface SPTConnectButton
{
}
如何让它生成所有 类 的定义? (ex SPTAuth)
在 SpotifyAuthentication.framework/Headers/SpotifyAuthentication.h
中,从 import
语句中删除 SpotifyAuthentication/
目录:
#import <SPTAuth.h>
#import <SPTSession.h>
#if TARGET_OS_IPHONE
#import <SPTConnectButton.h>
#import <SPTAuthViewController.h>
#import <SPTStoreViewController.h>
#import <SPTEmbeddedImages.h>
#endif
夏皮:
sharpie -tlm-do-not-submit \
bind \
-sdk iphoneos10.2 \
-output SpotifyAuthenticationBindings \
SpotifyAuthentication.framework/Headers/SpotifyAuthentication.h \
-c -ISpotifyAuthentication.framework/Header
您的结果 ApiDefinitions.cs
现在应该包含 ~300 行,您将对 [Verify]
标签进行一些清理工作....