alexsorokoletov / objc-automatic

[Not supported anymore] Automation tool to bind CocoaPods to NuGet packages for Xamarin.iOS
45 stars 15 forks source link

Bind Yandex SpeechKit SDK for iOS #7

Closed wcoder closed 6 years ago

wcoder commented 6 years ago

Hi Alex!

I tried to bing Yandex SpeechKit SDK for iOS, and I collided with some issues:

I have some bind solution for this library (without use your tool), but that is not good: https://github.com/wcoder/Yandex.SpeechKit.Xamarin/tree/master/src/Yandex.SpeechKit.Xamarin.iOS

Could you please help to bind this SDK library?

alexsorokoletov commented 6 years ago

Hi @wcoder! Thanks for trying the tool 👍 and providing the feedback.

For the header file I might have an easy solution by providing an additional option to the tool. Some CocoaPods are not traditional and while I want this tool to work with anything, sometimes it is not realistic. Check Firebase or AWS pods...

I've ran a quick test over YandexSpeechKit pod and I see similar results with the ApiDefinitions and Structs file. Sharpie for some reason includes Foundation and UIKit types there. YSKError.h is missing #import <Foundation/Foundation.h> (see for example YSKInitializer.h) but that does not solve the problem.

Which version of XCode do you have? I've 9.1, maybe running this again with XCode 7 or 8 would help since YandexSpeechKit was build using iphoneos9.2 SDK.

Another though I have is that I never tried sharpie after iOS 11.1 SDK update and that might be adding some fluctuations.

To summarize, you can try latest master of the tool (sh bind.sh POD=YandexSpeechKit ROOT_HEADER_FILE=SpeechKit.h VERBOSE=true). This will help you with issue 1 from your list.

If you later find a solution to item 2, I will be really curious to learn which command line for sharpie you did use and how is that different from what objc-automatic does:

sharpie bind -output bindings/YandexSpeechKit -sdk "iphoneos" -scope pods/YandexSpeechKit/XCode/Pods/YandexSpeechKit/YandexSpeechKit.framework/Headers/*.h pods/YandexSpeechKit/XCode/Pods/YandexSpeechKit/YandexSpeechKit.framework/Headers/SpeechKit.h -n DreamTeam.Xamarin.YandexSpeechKit -c -Ipods/YandexSpeechKit/XCode/Pods/YandexSpeechKit/YandexSpeechKit.framework/Headers  -F pods/YandexSpeechKit/XCode/Pods/YandexSpeechKit/YandexSpeechKit -v
wcoder commented 6 years ago

Hi Alex!

Tried some solutions.

I used iPhone SDK 9.2 from XCode 7.2 for binding this library.

This command worked for me:

sharpie pod bind -v

or more arguments:

sharpie bind -sdk iphoneos9.2 -framework Pods/YandexSpeechKit/YandexSpeechKit.framework`

After fix verify attributes project was built without compilation errors.

Maybe to add SHARPIE_ARGS argument for your tool (for advanced setup)?

alexsorokoletov commented 6 years ago

@wcoder interesting feedback, sharpie bind pod works in a different way which has pros/cons.

I can add SHARPIE_ARGS but how that would help?

As we speak, I think we can get that working since it's a framework. Or at least should be detected as framework. Let me try that.

Thanks for the information about XCode version.

alexsorokoletov commented 6 years ago

@wcoder wondering if you had any chance to look at this issue? I'll wait a week and then will close the issue if no response.