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
'Pod Spec Lint' failed validation #8125
Comments
I was actually going to log the same issue this morning. This is due to the new build system that is now on by default in Xcode 10. The new build system is much stricter about what each step of the build is doing so that it can avoid doing duplicate work in order to speed up the build process. Unfortunately, I don't believe that Cocoapods full supports the new build system yet™. What is happening here is that when Cocoapods creates the project for lint validation, the new build system is used even if the current project has the new build system turned off via the workspace setting (Project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings): <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildSystemType</key>
<string>Original</string>
</dict>
</plist> What I think would resolve this is a configuration option to pass to the |
@madsolar8582 so the terminal command would be: pod spec lint --verbose --UseNewBuilddSystem=NO? |
@kevinvugts No. The linter would need to take in a flag that would then pass |
@madsolar8582 So by the time cocoapods does not support this. What should I do? I've got XCode 10 on my laptop and the newest cocoapods. And I need to be able to lint in order to continue. :D |
@kevinvugts What I've done for now is to use |
Sorry could you explain that step by step? I have never done that. |
This looks like the same issue as #8116. See this comment specifically: #8116 (comment) My best advise is to fix this to work with Xcode 10. Introducing a new option seems maybe OK but nothing guarantees that the consumer will use the old system either and therefore your pod will fail to build for them. |
@kevinvugts Certainly.
You can also do this from Xcode itself by going to Preferences>Locations and then adjusting Command Line Tools. |
@dnkoutso Would it make sense to also add a configuration to the podspec to enforce the legacy build system? |
@madsolar8582 If the build system can be set per target then maybe yes. If its a global setting then no. It is probably best to move forward and fixing libraries to work properly with Xcode 10 as I can imagine in the near future Apple removing the legacy build system entirely or making it even harder to enable. |
@dnkoutso The build system is global as the root project builds all of the subprojects. While I do agree that moving towards the new build system is the right approach, the new build system is not 1:1 with the (now) legacy build system, so some projects do have legitimate reasons to need to continue using the legacy build system until Apple has added those capabilities to the new build system. Those limitations (as well as breaking issues that are unresolved) can be found here. |
Yes we are in a transition period for sure. If its global setting unfortunately I cannot see a reason to add this to the I checked the git repo for this podspec. This seem the same problem as in #8116 so it should be fairly easy to fix. |
Confirmed this is the same as #8116. Pod::Spec.new do |s|
s.name = "iMessageFramework"
s.version = "1.0.0"
s.summary = "Small test to test code sharing via cocoapods."
s.description = "This is some superl oco framework that was made by kevin vugts."
s.homepage = "https://github.com/kevinvugts/"
s.license = "MIT"
s.author = { "Kevin Vugts" => "kevin-vugts@live.com" }
s.platform = :ios, "11.0"
s.source = { :git => "https://github.com/kevinvugts/iMessageFramework.git", :tag => "1.0.0" }
s.source_files = "iMessageFramework/**/*"
s.exclude_files = "iMessageFramework/**/*.plist"
s.swift_version = '4.2'
s.ios.deployment_target = '11.0'
end This worked and I was able to Also this line: s.pod_target_xcconfig = { 'SWIFT_VERSION' => '4.0' } It is not currently used by CocoaPods so use |
@dnkoutso Could you explain what a "source glob" is for those of us who've never heard of the term? I can't see anywhere in my project that is including the Info.plist but I'm still getting that error. |
Thanks! That worked |
to change xcode select use command as sudo and change it back to what it was as before : |
Thank you !! |
remove info.plist and add line to podspec s.pod_target_xcconfig = { 'SWIFT_VERSION' => '4.0' } ref > CocoaPods/CocoaPods#8125
Yes, I am using the latest CocoaPods release
Cocoapods version: 1.6.0.beta.1
XCode version: Version 10.0
Report
What did you do?
I created a pod spec file with 'pod spec create' and filled in the appropriate content
What did you expect to happen?
After I run 'pod spec lint --verbose' I received an build error from Xcode which I am not able to reproduce. I expected it to succesfully validate the spec file but it didn't.
What happened instead?
It threw the following error:
The text was updated successfully, but these errors were encountered: