Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project fails to compile when included from podspec in a second-tier framework #1382

Closed
3 tasks done
joeboyscout04 opened this issue Nov 4, 2019 · 2 comments
Closed
3 tasks done
Labels
Milestone

Comments

@joeboyscout04
Copy link

joeboyscout04 commented Nov 4, 2019

I'm getting an issue with the latest master specifically this commit where IGListKit fails to compile if it is included as a dependency from a pod which is also itself a dependency.

Screen Shot 2019-11-04 at 21 05 43

I've attached the demo project below. Basically, the setup is as follows:

  • OuterFramework
    • Inner Framework
      • IGListKit

The framework seems to link properly, but the imports to IGListDiffKit are broken 😢.

I think this has something to do with how the imports are done in IGListKit (which is also is a problem with us using SPM, see #1368 ). The #import < > syntax is assuming something about what's in the global header search paths, which breaks for the case here where the InnerFramework's header search paths don't know about IGListDiffKit. The InnerFramework compiles fine by itself. I tried a few different attempts to fix this via the podspec, without success.

New issue checklist

  • I have reviewed the README and documentation
  • I have searched existing issues and this is not a duplicate
  • I have attempted to reproduce the issue and include an example project.

General information

  • IGListKit version: master
  • iOS version(s): iOS 13
  • CocoaPods/Carthage version: 1.8.4
  • Xcode version: 11.1
  • Devices/Simulators affected: All
  • Reproducible in the demo project? (Yes/No): Yes

Demo project:
IGListKitFrameworkTester.zip

@iperry90 iperry90 added this to the 4.0.0 milestone Nov 11, 2019
@iperry90 iperry90 added the bug label Nov 11, 2019
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (Instagram#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Differential Revision: D18449842

fbshipit-source-id: b929b1f81ec9801fb5a717d1c3f6079a86a35a99
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary:
I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address Instagram#1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Differential Revision: D18449843

fbshipit-source-id: 812c6b6a8bdc18a273127a3e380a400f4efef303
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (Instagram#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Differential Revision: D18449842

fbshipit-source-id: cbcf399a95fc64824772ddc23ea59d4eebf3745a
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary:
Pull Request resolved: Instagram#1385

I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address Instagram#1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Differential Revision: D18449843

fbshipit-source-id: 15745f602bf6932728927d714a9247b51a47e2fc
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (Instagram#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Differential Revision: D18449842

fbshipit-source-id: 6434f6782237568b6910af76368ced2fb2ec7ac7
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary:
Pull Request resolved: Instagram#1385

I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address Instagram#1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Differential Revision: D18449843

fbshipit-source-id: 556a0dc9e6b5bbd560953156045ac6d4a21b5415
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (Instagram#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Differential Revision: D18449842

fbshipit-source-id: 9359f886c702bb8b1aa2863a0fee766e0d637db8
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary:
Pull Request resolved: Instagram#1385

I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address Instagram#1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Reviewed By: iperry90

Differential Revision: D18449843

fbshipit-source-id: 46d7c0a46d3a2042dd2b73336f4d89a8baf89574
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (Instagram#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Differential Revision: D18449842

fbshipit-source-id: 09119e447563707ff20b883dcf6baaa3a72a4304
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary:
Pull Request resolved: Instagram#1385

I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address Instagram#1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Reviewed By: iperry90

Differential Revision: D18449843

fbshipit-source-id: 6811f8b20045ebebb2f9eaffd33462f341d724fc
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (Instagram#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Differential Revision: D18449842

fbshipit-source-id: c8f9e3a527389292ba47dea3733fb25146f2a693
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 12, 2019
Summary:
Pull Request resolved: Instagram#1385

I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address Instagram#1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Reviewed By: iperry90

Differential Revision: D18449843

fbshipit-source-id: 70089cd3221f5af31006b47860fbd4426d4e5ef6
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 13, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (Instagram#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Differential Revision: D18449842

fbshipit-source-id: f49891f6eeb36c2cae70b5338cea96b2e121ef31
natestedman added a commit to natestedman/IGListKit that referenced this issue Nov 13, 2019
Summary:
Pull Request resolved: Instagram#1385

I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address Instagram#1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Reviewed By: iperry90

Differential Revision: D18449843

fbshipit-source-id: d8703090fac4b509cb7e25c88a0961b4e5290668
facebook-github-bot pushed a commit that referenced this issue Nov 13, 2019
Summary: This allows us to have a single declaration of the version in the `Info.plist`, and have it automatically synced to the podspec. I'm going to split the podspecs as I did it wrong (#1382) when splitting the libraries, so this avoids having three places where the version is declared.

Reviewed By: iperry90

Differential Revision: D18449842

fbshipit-source-id: 2991180ee14003b8ebe1f4ef601036404315dfd6
facebook-github-bot pushed a commit that referenced this issue Nov 13, 2019
Summary:
Pull Request resolved: #1385

I attempted to work the two frameworks into a single podspec, but it didn't really work that well. Instead, let's just split them into two podspec files - this should work fine, and more closely follows the Carthage/Xcode behavior.

This should address #1382. Note that the attached project does need to be edited, because we also need to manually specify the `IGListDiffKit` pod location. This issue will go away with the release of 4.0.

Reviewed By: iperry90

Differential Revision: D18449843

fbshipit-source-id: 2750aee1ba39d21b9f1b3521ea8911929ae728b1
@natestedman
Copy link
Contributor

Hey @joeboyscout04, this should be resolved in master now. You'll need to update your Podfile to also reference IGListDiffKit from master (same repo), this requirement should go away once we release 4.0.

@iperry90
Copy link

@joeboyscout04 closing this issue since it should now be resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants