alexsorokoletov / objc-automatic

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

Unable to create bindings for GoogleMobileVision #15

Open ghost opened 6 years ago

ghost commented 6 years ago

An empty directory is created for GoogleMobileVision/FaceDetector.

Also, GoogleInterchangeUtilities doesn't have any headers in the framework folder.

I'm assuming it was so when the demo video (bindings for Firebase/Analytics) was created, then how was the bindings generated?

alexsorokoletov commented 6 years ago

Hi @Shan11812 What was the pod you tried to bind?

Regarding

Also, GoogleInterchangeUtilities doesn't have any headers in the framework folder. This is ok, headers are required to expose API to C#. If the binary contains something that is only linked but not exposed to C#, then there are no headers.

objc-automatic takes care of that makes sure that these binaries without headers are provisioned into the final app and are linked out the same way as objective C would do.

ghost commented 6 years ago

I'm trying to bind GoogleMobileVision/FaceDetector objc-automatic generates nuget packages, but when I install them in VisualStudio, GoogleMobileVision dll (as well as package) doesn't appear in the references.... though its 3 dependencies appear...

bind.sh produces the following warning...

VERIFY: pod GoogleMobileVision/FaceDetector doesn't have any binaries generated for config -sdk "iphoneos" VERIFY: pod GoogleMobileVision/FaceDetector most probably doesn't have any binaries generated

Inside the bindings folder, GoogleMobileVision.FaceDetector folder is empty!

alexsorokoletov commented 6 years ago

@Shan11812 can please you run that one more time with VERBOSE=true parameter and share your logs in a gist file and link it here?

mshepher commented 6 years ago

Hi, I'm having what I believe to be the same issue (also with, surprise surprise, a google pod, NearbyMessages). I also get a message saying that NearbyMessages most likely doesn't have any binaries, and I also get output in packages that doesn't include any of the binaries from the pods themselves:

VERIFY: pod NearbyMessages doesn't have any binaries generated for config  -sdk "iphoneos"
VERIFY: pod NearbyMessages most probably doesn't have any binaries generated

I should point out here that the NearbyMessages umbrella header file is named GNSMessages.h, not NearbyMessages.h, but adding ROOT_HEADER_FILE=GNSMessages.h doesn't seem to change anything. I've attached the full output from running the bind/build commands with VERBOSE enabled. There's also a du command at the end just to demonstrate that the nuget package doesn't include any of the binaries. output.txt

Thank you for your work on this tool, and please let me know if there's any information or output I can provide that would help debug this issue.

alexsorokoletov commented 6 years ago

Looking into that as well. I'll try to give you an update this week. Thank you for your understanding.

alexsorokoletov commented 6 years ago

Some thoughts on this thread.

@mshepher CocoaPod NearbyMessages has a bit untypical structured and because of that it's hard to infer what is going on there and objc-automatic (in the current form) can't understand it.

Regarding GoogleMobileVision/FaceDetector @Shan11812 , this one might have some hope, it's structured similarly to Firebase pods which are complex but possible to process. FaceDetector itself has no headers, just binary. And one dependency to a GoogleMobileVision/Detector which has some headers and also a binary.

I'm fixing objc-automatic core to make it work on simple ones (some tools and dependencies were outdated and pods updated) and after that I'd be interested in looking how to make it work again on complex pods like yours. If you need something built and bound faster, you will have to do all that manually.

mshepher commented 6 years ago

That's disappointing to hear, but thank you for looking into it and checking back in.