ObjC-автомат

аюсь пройтись по этому руководству:

https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/

пытаемся создать привязки для этого проекта github:

https://github.com/lminhtm/LMGaugeView

Использование Sharpie 3.4.

Я сталкиваюсь со следующими проблемами:

Я не могу сгенерировать толстый двоичный файл с архитектуройi386 armv7 x86_64 arm64 потому что я строю против iOS11. Я могу генерировать только толстый двоичный файл с архитектуройx86_64 а такжеarm64при попытке других выдает сообщение об ошибкеinvalid iOS deployment version, iOS 10 is the max deployment target for 32-bit targets, Это ожидается?

Когда я затем использую Sharpie, я могу генерировать файлы API и Struct, однако каждый из этих файлов имеет огромные размеры: в структуре Struts 24K + строки и API 54K + строки. Я также следовал учебному пособию по YouTube, и он получил около 200 строк, так что тот факт, что у меня такие большие цифры, заставляет меня думать, что что-то происходит. Его учебник не был для моего проекта Objective-C, но я даже попробовал тот же, что и он, и в итоге получил тот же результат.

Файл Struct в итоге содержит более 7 тысяч ошибок, и я вижу бесчисленные строки, которые выглядят примерно так:

// 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]);

Где пропущены имена идентификаторов и есть это [неподдерживаемая сборка: часть, которую я не понимаю.

Существует также бесчисленное множество ссылок на другие версии iOS, а также watchOS и TV, поэтому создается впечатление, что он пытается создать API и Structs для каждой существующей ОС и версии, что имеет смысл, почему файлы будут такими большими. Вот небольшой фрагмент из файла 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);

Я знаю, что эти файлы должны быть намного меньше, тем более что код Objective-C - это один заголовочный файл. Что я могу здесь делать не так?

Я могу предоставить более подробную информацию, если это необходимо!

 sbonkosky20 окт. 2017 г., 02:58
@AlexSorokoletov При попытке другого модуля WMGaugeView я получаю сообщение об ошибке 404 not found. Я попробовал другой пакет, и он работал, кажется, что-то конкретное для этого. Есть ли что-то, что мне нужно указать или сделать для этого?
 Alex Sorokoletov19 окт. 2017 г., 05:02
У вас установлена ​​последняя версия XCode (9) и Sharpie? Я хочу помочь, иметь некоторый опыт работы с привязками iOS
 Alex Sorokoletov19 окт. 2017 г., 05:29
Я быстро проверил стручок, который вы упомянули. Оказывается, для этого у вас должны быть установлены последние версии XCode и Sharpie (текущая версия 3.4). Вы можете обновить шулер, запустивsharpie update, Затем вы можете создать привязку. Я пытался, и, кажется, работает нормально, посмотрите сами:youtube.com/watch?v=g7qQJnMxubU&feature=youtu.be Инструмент, который я использовал в видео - это оболочка для шулера, которую я использую для привязок Xamarin.iOS
 sbonkosky27 окт. 2017 г., 03:58
@AlexSorokoletov Спасибо, Алекс!
 sbonkosky20 окт. 2017 г., 02:32
@AlexSorokoletov Я даже не могу выразить свою благодарность за то, что вы ответили мне. Я пользуюсь твоим инструментом, и он работал так прекрасно, что у меня на глазах появилась слеза, ха-ха! Если есть где-то, что я мог бы пожертвовать, пожалуйста, дайте мне знать, и если вы добавите это как ответ, я обязательно приму это. Миллион раз, СПАСИБО !!

Ответы на вопрос(1)

Решение Вопроса

Оказывается, для этого у вас должны быть установлены последние версии XCode и Sharpie (текущая версия 3.4).

Вы можете обновить шулер, запустивsharpie update, Затем вы можете создать привязку.

Я пытался, и, кажется, работает нормально, посмотрите сами:youtube.com/watch?v=g7qQJnMxubU&feature=youtu.be

Бесстыдная вилка - инструмент, который я использовал в видео - это обертка для шулера, которую я использую для привязок Xamarin.iOS -ObjC-автомат.

Ваш ответ на вопрос