leavez / cocoapods-binary

integrate pods in form of prebuilt frameworks conveniently, reducing compile time
MIT License
1.31k stars 206 forks source link

pod install has different behavior and results for pod `Firebase/MLVisionFaceModel` #86

Open pofat opened 5 years ago

pofat commented 5 years ago

If you have pod Firebase/MLVisionFaceModel, pod install will have different behavior between first time install (install with no Pods/ at local) and installation afterward. And after second pod install, the project will fail to be built. Because the Firebase.h in Firebase module.modulemap can not be found.

A workaround to solve this is to add "$(PODS_ROOT)/_Prebuild/GeneratedFrameworks/Firebase/CoreOnly/Sources" in User Header Search Path

Is it a bug or I did something wrong?

I think that pod install should have consistent behavior and result based on the same Podfile.

CocoaPods : 1.7.5
  Xcode : 10.2.1 (10E1001)
cocoapods-binary      : 0.4.4
plugin 'cocoapods-binary'
npjk commented 4 years ago

Hello,

I have encountered a very similar issue with Firebase/Analytics where I could no longer build after either running a pod install more than once (it only worked after the first time) or cleaning up the DerivedData folder (no idea how this could be related oO) after the first pod install. The error looks the same : Firebase.h in module.modulemap can not be found.

However, I used a different "workaround" (if you can call that a workaround…) where I simply "exclude" Firebase from the pre-build hook (no all_binary! and :binary => true on everything else).

luxmentis commented 4 years ago

I'm also having this problem with Firebase/Analytics.

@pofat Could you consider changing the title of this issue, as it's more generic than just MLVisionFaceModel? I almost didn't see this.

Seems to be a problem with headers not being where they should be. After a clean pod install, i.e. with no Pods directory, compilation works, and I have:

% find Pods -name Firebase.h
Pods/_Prebuild/GeneratedFrameworks/Firebase/CoreOnly/Sources/Firebase.h
Pods/Firebase/CoreOnly/Sources/Firebase.h
Pods/Headers/Public/Firebase/Firebase.h
Pods/Headers/Private/Firebase/Firebase.h

On subsequent pod installs, compilation fails and I have:

% find Pods -name Firebase.h
Pods/_Prebuild/GeneratedFrameworks/Firebase/CoreOnly/Sources/Firebase.h

I've used the user headers workaround, which I see as better than reverting to source for Firebase (there's a ton of code in there), but this is definitely a bug, isn't it?

Kamilton commented 1 year ago

Any solutions for this? I also tried to change my Firebase pods to binary and also Firebase/Analytics was the issue