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 - это один заголовочный файл. Что я могу здесь делать не так?

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

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

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