Je tente de marcher à travers ce guide:Problème de liaison bibliothèque Objective-C à C# avec objectif Sharpie
https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/
essayant de créer des liaisons pour ce projet github:
https://github.com/lminhtm/LMGaugeView
Utilisation de Sharpie 3.4.
Je suis en cours d'exécution dans les questions suivantes:
Je ne peux pas générer un binaire Fat avec les architectures
i386 armv7 x86_64 arm64
parce que je suis bâtiment contre iOS11. Je ne peux générer un binaire Fat avec les architecturesx86_64
etarm64
, en essayant les autres me donne le message d'erreurinvalid iOS deployment version, iOS 10 is the max deployment target for 32-bit targets
. Est-ce prévu? Lorsque j'utilise Sharpie, je peux générer les fichiers API et Struct. Cependant, chacun de ces fichiers est énorme, avec des Structs se terminant à 24K + lignes, et des lignes API 54K +. J'ai suivi un didacticiel YouTube et la sortie qu'il a eu était d'environ 200 lignes, alors le fait que les miennes soient si énormes me fait penser à quelque chose qui se passe. Son tutoriel n'était pas pour mon même projet Objective-C mais j'ai même essayé le même qu'il a fait et fini avec le même résultat.Le fichier struct finit par avoir plus de 7K erreurs, et je vois des lignes innombrables qui ont l'air quelque chose comme:
// extern long double tanhl (long double) __attribute__((const)) __attribute__((nothrow)); [DllImport ("__Internal")] [Verify (PlatformInvoke)] static extern [unsupported Builtin: long double] tanhl ([unsupported Builtin: long double]);
où il manque des noms d'identification et a ce [non pris en charge Builtin: pièce I don ne comprends pas. Il existe également d'innombrables références à d'autres versions d'iOS, à watchOS et à TV, il semble donc que l'on cherche à créer l'API et les Structs pour chaque système d'exploitation et version, ce qui est logique. Voici un petit extrait du fichier struct:
// extern CGPathRef _Nullable CGPathCreateCopyByTransformingPath (CGPathRef _Nullable path, const CGAffineTransform * _Nullable transform) __attribute__((availability(ios, introduced=5.0))) __attribute__((cf_audited_transfer));
[iOS (5,0)]
[DllImport ("__Internal")]
[Verify (PlatformInvoke)]
[return: NullAllowed]
static extern unsafe CGPathRef* CGPathCreateCopyByTransformingPath ([NullAllowed] CGPathRef* path, [NullAllowed] CGAffineTransform* transform);
// extern CGMutablePathRef _Nullable CGPathCreateMutableCopy (CGPathRef _Nullable path) __attribute__((availability(ios, introduced=2.0))) __attribute__((cf_audited_transfer));
[iOS (2,0)]
[DllImport ("__Internal")]
[Verify (PlatformInvoke)]
[return: NullAllowed]
static extern unsafe CGMutablePathRef* CGPathCreateMutableCopy ([NullAllowed] CGPathRef* path);
// extern CGMutablePathRef _Nullable CGPathCreateMutableCopyByTransformingPath (CGPathRef _Nullable path, const CGAffineTransform * _Nullable transform) __attribute__((availability(ios, introduced=5.0))) __attribute__((cf_audited_transfer));
[iOS (5,0)]
[DllImport ("__Internal")]
[Verify (PlatformInvoke)]
[return: NullAllowed]
static extern unsafe CGMutablePathRef* CGPathCreateMutableCopyByTransformingPath ([NullAllowed] CGPathRef* path, [NullAllowed] CGAffineTransform* transform);
Je sais que ces fichiers doivent être beaucoup plus petite, d'autant plus que le code Objective-C est un fichier d'en-tête. Que pourrais-je faire mal ici?
Je peux fournir plus de détails si nécessaire!
Avez-vous installé la dernière version de XCode (9) et Sharpie? Je veux aider, avoir une certaine expérience avec les liaisons iOS –
J'ai rapidement vérifié le pod que vous avez mentionné. Il s'avère que, pour cela, vous devez avoir les dernières XCode et Sharpie (3.4 est la version actuelle). Vous pouvez mettre à jour sharpie en exécutant 'sharpie update'. Ensuite, vous pouvez générer une liaison. J'ai essayé et il semble fonctionner très bien, voyez-vous: https://www.youtube.com/watch?v=g7qQJnMxubU&feature=youtu.be L'outil que j'ai utilisé dans la vidéo est un emballage pour sharpie que j'utilise pour Xamarin Liaisons .iOS –
@AlexSorokoletov Je ne peux même pas commencer à exprimer ma gratitude pour vous répondre. J'utilise votre outil et il a fonctionné si parfaitement qu'il a apporté une larme à mes yeux haha! S'il y a un endroit où je pourrais faire un don, faites le moi savoir, et si vous ajoutez ceci comme réponse, je l'accepterai définitivement. Un million de fois, MERCI !! – sbonkosky