facebookarchive / pop

An extensible iOS and OS X animation library, useful for physics-based interactions.
Other
19.66k stars 2.88k forks source link

use pop as a dependency of a custom pod will not compile #310

Open JoeShi opened 8 years ago

JoeShi commented 8 years ago

I have main project, and a framework project. In the main project, I use the framework project as a pod.

pod 'MyCustomPod'

My framework project use pod as a pod, so I write

s.dependency 'pod', '~> 1.0.9'

in the MyCustomPod.podspec file.

The result is the main project cannot compile. If I do not directly put pod 'pop' in the main project's podfile and do not use my custom pod, it can compile.

Error Message:

screen shot 2016-02-26 at 4 35 51 pm
mhlangagc commented 8 years ago

Maybe thuis can help. I added this line of code at the end of my Pod File and it seemed to work. I had the same error.

target 'MyProject' do

pod 'pop'
...
end

post_install do |installer|
`find Pods -regex 'Pods/pop.*\\.h' -print0 | xargs -0 sed -i '' 's/\\(<\\)pop\\/\\(.*\\)\\(>\\)/\\"\\2\\"/'`
end
nlutsenko commented 8 years ago

Hey guys, any chance you can specify the version of CocoaPods you are using? I am going to test this right now, as I might have an idea on why this doesn't work...

JoeShi commented 8 years ago

hello, @nlutsenko , I am using 0.39.0

JoeShi commented 8 years ago

Hey @mhlangagc. Thank you, after append your script, I can build now. I think this will also cause some problem for other developer. Looking for the perfect solution from facebook.

nlutsenko commented 8 years ago

Hey guys, any chance you can paste a full error log here? I am having trouble reproducing this issue... So far I've tried both use_frameworks! and not, as well as few pods that depend on pop via CocoaPods in a new project running latest product version of Xcode - 7.2.

Also, if you guys can share some specifics about your setup:

The part that I am interested in the most and where this would help tremendously is actual compiler error. To get it:

warpling commented 8 years ago

Hope I'm not adding to the noise but I too have random compilation weirdness with pop where Xcode incessantly displays warning about Pop and won't autocomplete. I'm never sure what fixes it but it hasn't blocked my compilation in awhile. I don't use frameworks for pop.

comyar commented 8 years ago

I'm running into this when developing a Swift CocoaPod for iOS that has pop as a dependency. I simply have the following in my podspec: s.dependency 'pop', '~> 1.0.0'.

I believe it's because the compiler was made more strict regarding the includes it allows in the framework header (I believe this was done in Xcode 7.1, I'm using Xcode 7.3). The error crops up in two scenarios. The first is when running pod lib lint, the other is when building another project that uses my CocoaPod (that project has use_frameworks! in its Podfile).

Cleaning DerivedData doesn't work and allowing non-modular headers in build settings doesn't work also.

Semi-sanitized error output:

CompileSwift normal x86_64 <PATH>/Glass/Glass/WindowManager.swift
    cd <PATH>/<PROJECT>/Pods
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c <PATH>/Glass/Glass/Window.swift -primary-file <PATH>/Glass/Glass/WindowManager.swift -target x86_64-apple-ios9.0 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -I /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Products/Debug-iphonesimulator -F /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Products/Debug-iphonesimulator -g -import-underlying-module -module-cache-path /Users/Comyar/Library/Developer/Xcode/DerivedData/ModuleCache -D COCOAPODS -serialize-debugging-options -Xcc -I/Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Glass-generated-files.hmap -Xcc -I/Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Glass-own-target-headers.hmap -Xcc -I/Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Glass-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Glass-project-headers.hmap -Xcc -I/Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Products/Debug-iphonesimulator/include -Xcc -I<PATH>/<PROJECT>/Pods/Headers/Private -Xcc -I<PATH>/<PROJECT>/Pods/Headers/Private/Glass -Xcc -I<PATH>/<PROJECT>/Pods/Headers/Public -Xcc -I<PATH>/<PROJECT>/Pods/Headers/Public/GoogleMaps -Xcc -I/Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/DerivedSources/x86_64 -Xcc -I/Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -DCOCOAPODS=1 -Xcc -ivfsoverlay -Xcc /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/unextended-module-overlay.yaml -Xcc -working-directory<PATH>/<PROJECT>/Pods -emit-module-doc-path /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Objects-normal/x86_64/WindowManager~partial.swiftdoc -Onone -module-name Glass -emit-module-path /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Objects-normal/x86_64/WindowManager~partial.swiftmodule -serialize-diagnostics-path /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Objects-normal/x86_64/WindowManager.dia -emit-dependencies-path /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Objects-normal/x86_64/WindowManager.d -emit-reference-dependencies-path /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Objects-normal/x86_64/WindowManager.swiftdeps -o /Users/Comyar/Library/Developer/Xcode/DerivedData/<PROJECT>-ddqkpgnavqlsekgwgdfbmuegldll/Build/Intermediates/Pods.build/Debug-iphonesimulator/Glass.build/Objects-normal/x86_64/WindowManager.o

<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:13:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPDefines.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:15:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPAnimatableProperty.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:16:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPAnimation.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:17:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPAnimationEvent.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:18:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPAnimationExtras.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:19:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPAnimationTracer.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:20:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPAnimator.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:21:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPBasicAnimation.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:22:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPCustomAnimation.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:23:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPDecayAnimation.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:24:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPGeometry.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:25:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPLayerExtras.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:26:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPPropertyAnimation.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/pop-umbrella.h"
        ^
<PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:9: note: in file included from <PATH>/<PROJECT>/Pods/Target Support Files/pop/pop-umbrella.h:3:
#import "POP.h"
        ^
<PATH>/<PROJECT>/Pods/pop/pop/POP.h:27:9: error: include of non-modular header inside framework module 'pop.POP'
#import <pop/POPSpringAnimation.h>
        ^
<PATH>/Glass/Glass/WindowManager.swift:28:8: error: could not build Objective-C module 'pop'
import pop
       ^
sunshineclt commented 8 years ago

I have this problem, too. @mhlangagc 's method works for me, but I don't think it is a complete solution to this problem. Waiting for complete solution :)