Cocoapods: Pod with swift 4.2 fails at linting

Created on 20 Sep 2018  ยท  15Comments  ยท  Source: CocoaPods/CocoaPods

When I try to lint (pod lib lint) this branch: https://github.com/pedrommcarrasco/Constrictor/tree/swiftMigration4.2

I get the following error:

note: Using new build system
    note: Planning build
    note: Constructing build description
    Build system information
    warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')

    Build system information
    warning: duplicate output file '/Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist' on task: ProcessInfoPlistFile /Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist /var/folders/0m/813c6pxs0dldbpnc178tdjl42j04dh/T/CocoaPods-Lint-20180920-15882-raz55r-Constrictor/Pods/Target Support Files/Constrictor/Constrictor-Info.plist (in target 'Constrictor')

    Build system information
    error: Multiple commands produce '/Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist':
    1) Target 'Constrictor' (project 'Pods') has copy command from '/Users/pedro.carrasco/Desktop/Personal/Constrictor/Constrictor/Constrictor/Info.plist' to '/Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist'
    2) Target 'Constrictor' (project 'Pods') has process command with output '/Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist'

    ** BUILD FAILED **

   Testing with `xcodebuild`.
 -> Constrictor (2.0.0)
    - ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description
    - NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - NOTE  | [iOS] xcodebuild:  warning: duplicate output file '/Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist' on task: ProcessInfoPlistFile /Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist Target Support Files/Constrictor/Constrictor-Info.plist (in target 'Constrictor')
    - NOTE  | [iOS] xcodebuild:  error: Multiple commands produce '/Users/pedro.carrasco/Library/Developer/Xcode/DerivedData/App-hbzpghxpiyguluaeksouvryobhqo/Build/Products/Release-iphonesimulator/Constrictor/Constrictor.framework/Info.plist':

[!] Constrictor did not pass validation, due to 1 error.
You can use the `--no-clean` option to inspect any issue.

After searching around, some solutions mentioned removing info.plist from Compile Sources (if it was there) or selecting the legacy build system. The problem is, both things seem to be ๐Ÿ›  and not proper solutions.

Any idea of what's currently happening? Is it a known issue? Or am I doing something wrong?

Most helpful comment

The podspec contains s.source_files = "Constrictor/Constrictor/**/*" which includes all files including Info.plist files that are being added as if they are source files.

Either move the files outside the glob or use s.exclude_files = "Constrictor/Constrictor/*.plist" to exclude these files from compilation.

I did the latter and it worked:

    ** BUILD SUCCEEDED **

   Testing with `xcodebuild`. 
 -> Constrictor (2.0.0)
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description
    - NOTE  | [iOS] xcodebuild:  note: Using build description 'ba0fe2dc4c9c98ae5663b904c749b4bf'
    - NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - NOTE  | [iOS] xcodebuild:  note: Using eager compilation
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, trace file: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/build.trace'
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, current manifest: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/current-manifest.xcbuild'
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, current serialized description: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/current-desc.xcbuild'000gn/T/CocoaPods-Lint-20180920-88638-wzfma2-Constrictor/App.xcworkspace` for inspection.

All 15 comments

There is not enough information to debug this. Please upload a sample, it is also best to ask this question in StackOverflow under cocoapods tag as it currently seems like the new Xcode build system is much stricter on double processing files.

Hey @dnkoutso what are you expecting with a sample? Isn't https://github.com/pedrommcarrasco/Constrictor/tree/swiftMigration4.2 enough? (it's a really small pod)

@pedrommcarrasco I am really sorry I was too fast and did not see the link.

@dnkoutso all fine ๐Ÿ˜„

The podspec contains s.source_files = "Constrictor/Constrictor/**/*" which includes all files including Info.plist files that are being added as if they are source files.

Either move the files outside the glob or use s.exclude_files = "Constrictor/Constrictor/*.plist" to exclude these files from compilation.

I did the latter and it worked:

    ** BUILD SUCCEEDED **

   Testing with `xcodebuild`. 
 -> Constrictor (2.0.0)
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description
    - NOTE  | [iOS] xcodebuild:  note: Using build description 'ba0fe2dc4c9c98ae5663b904c749b4bf'
    - NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - NOTE  | [iOS] xcodebuild:  note: Using eager compilation
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, trace file: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/build.trace'
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, current manifest: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/current-manifest.xcbuild'
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, current serialized description: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/current-desc.xcbuild'000gn/T/CocoaPods-Lint-20180920-88638-wzfma2-Constrictor/App.xcworkspace` for inspection.

Xcode 10 is much more strict. The file is already being added as part of the framework and therefore it complains.

Thanks a lot @dnkoutso for your insight! ๐Ÿ‘

I am facing the same.

I used
s.exclude_files = "Constrictor/Constrictor/*.plist" But nothing happens.

My file is

Veers-MacBook-Pro:MyLibrary veersuthar$ pod spec lint --no-clean --allow-warnings 

 -> MyLibrary (0.1.0)
    - WARN  | summary: The summary is not meaningful.
    - ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description
    - NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - NOTE  | [iOS] xcodebuild:  warning: duplicate output file '/Users/veersuthar/Library/Developer/Xcode/DerivedData/App-dmqziqtydyqcxjasnsbqoczfdnxd/Build/Products/Release-iphonesimulator/MyLibrary/MyLibrary.framework/Headers/MyLibrary-umbrella.h' on task: CpHeader Target Support Files/MyLibrary/MyLibrary-umbrella.h /Users/veersuthar/Library/Developer/Xcode/DerivedData/App-dmqziqtydyqcxjasnsbqoczfdnxd/Build/Products/Release-iphonesimulator/MyLibrary/MyLibrary.framework/Headers/MyLibrary-umbrella.h (in target 'MyLibrary')
    - NOTE  | [iOS] xcodebuild:  error: Multiple commands produce '/Users/veersuthar/Library/Developer/Xcode/DerivedData/App-dmqziqtydyqcxjasnsbqoczfdnxd/Build/Products/Release-iphonesimulator/MyLibrary/MyLibrary.framework/Headers/MyLibrary-umbrella.h':

Pods workspace available at `/var/folders/sz/kdwp2qvn0dn8mjk9z3wc8lrh0000gn/T/CocoaPods-Lint-20190206-8495-z3omjn-MyLibrary/App.xcworkspace` for inspection.

Analyzed 1 podspec.

[!] The spec did not pass validation, due to 1 error.


#

Be sure to run `pod lib lint MyLibrary.podspec' to ensure this is a

valid spec before submitting.

#

Any lines starting with a # are optional, but their use is encouraged

To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html

#

Pod::Spec.new do |s|
s.name = 'MyLibrary'
s.version = '0.1.0'
s.summary = 'A short description of MyLibrary.'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

s.description      = <<-DESC
TODO: Add long description of the pod here.
DESC

s.homepage         = 'https://bitbucket.org/veerdeveloper/MyLibrary'
# s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license          = { :type => 'MIT', :file => 'LICENSE' }
s.authors   = { 'Chatar Veer' => '[email protected]โ€™, 'Samina Shaikh' => '[email protected]โ€™ }
s.source           = { :git => 'https://[email protected]/veerdeveloper/MyLibrary.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.exclude_files = 'MyLibrary/*.plist'
s.platform     = :ios, '11.0'
s.swift_version = '4.2'
s.pod_target_xcconfig = { 'SWIFT_VERSION' => '4.0' }
s.ios.deployment_target = '10.0'
#    s.source_files = 'MyLibrary/Classes/**/*'
s.source_files = 'MyLibrary/Classes/**/*.{h,m,swift}'

s.requires_arc = true

s.resource_bundles = {
    'MyLibrary' => ['MyLibrary/Assets/*']
}

# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'

s.dependency 'WebRTC', '~> 63.11.20455'
s.dependency 'MDWamp', '~> 2.2.4'
s.dependency 'CocoaLumberjack/Swift', '~> 3.4.2'

s.dependency 'Cosmos'
s.dependency 'NVActivityIndicatorView'
s.dependency 'Pageboy'

end

My Commands are

pod spec lint --no-clean --allow-warnings 
pod lib lint --no-clean --allow-warnings

Swift version is 4.2.
pod --version 1.6.0.rc.2
Xcode Version 10.1 (10B61)

When I come in App.workspace, it shows me two files.

screen shot 2019-02-06 at 12 59 24 pm

JUST FYI:

I renamed my Project name with MyLibrary. To keep it a kind of privacy matters, but its confirm all is same.

Thanks.

If you see, there are two FILES, while there is no second file on DISK.

Where its adding second file on root, I have only one in Support Files, & which is added in Build Phases Public.

Any suggestion or quick solution?

- NOTE  | xcodebuild:  error: Unexpected duplicate tasks:
- NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file and one is not being generated automatically. (in target 'App' from project 'App')

ude_files = 'MyLibrary/*.plist'

@veer-suthar just want to double check that you pushed this to git, deleted the previous release 0.1.0 and created a new one so that it points to that last commit?

The podspec contains s.source_files = "Constrictor/Constrictor/**/*" which includes all files including Info.plist files that are being added as if they are source files.

Either move the files outside the glob or use s.exclude_files = "Constrictor/Constrictor/*.plist" to exclude these files from compilation.

I did the latter and it worked:

    ** BUILD SUCCEEDED **

   Testing with `xcodebuild`. 
 -> Constrictor (2.0.0)
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description
    - NOTE  | [iOS] xcodebuild:  note: Using build description 'ba0fe2dc4c9c98ae5663b904c749b4bf'
    - NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - NOTE  | [iOS] xcodebuild:  note: Using eager compilation
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, trace file: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/build.trace'
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, current manifest: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/current-manifest.xcbuild'
    - NOTE  | [iOS] xcodebuild:  note: build debugging is enabled, current serialized description: '/Users/dimitris/Library/Developer/Xcode/DerivedData/App-bytkfslwanytkaexgvgdexglehlg/Build/Intermediates.noindex/XCBuildData/buildDebugging-559171842.26113/current-desc.xcbuild'000gn/T/CocoaPods-Lint-20180920-88638-wzfma2-Constrictor/App.xcworkspace` for inspection.

Just wanna say thanks for this! ๐Ÿ™๐Ÿผ

Everything similar at the top whatever is discussed but I am getting an error
error: Multiple commands produce '/Users/dipeshpokhrel/Library/Developer/Xcode/DerivedData/App-fkqviewhndhxvobvgwlmcimpaecl/Build/Products/Release/VideoKit_2.8/VideoKit_2_8.framework/Versions/A/Headers/srtp.h'

where as there is no such file called srtp.h..
How to exclude this

you can use
exclude_files": "Headers/srtp.{h,m}"

On Wed, Dec 30, 2020 at 3:47 PM Dipeshpokhrelgit notifications@github.com
wrote:

Everything similar at the top whatever is discussed but I am getting an
error
error: Multiple commands produce
'/Users/dipeshpokhrel/Library/Developer/Xcode/DerivedData/App-fkqviewhndhxvobvgwlmcimpaecl/Build/Products/Release/VideoKit_2.8/VideoKit_2_8.framework/Versions/A/Headers/srtp.h'

where as there is no such file called srtp.h..
How to exclude this

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/CocoaPods/CocoaPods/issues/8116#issuecomment-752404002,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOOXMBB2M3XMV2UMLSGY2FDSXL42BANCNFSM4FWIRP3A
.

--

Thanks and Regards,
Amit Kumar Gupta
Mobile SDK Developer
3rd Floor, A-35,
Sector 2- Noida 201301
Contact: 7905717240
www.izooto.com

Was this page helpful?
0 / 5 - 0 ratings

Related issues

luhui picture luhui  ยท  3Comments

Mingmingmew picture Mingmingmew  ยท  3Comments

dawnnnnn picture dawnnnnn  ยท  3Comments

evermeer picture evermeer  ยท  3Comments

k06a picture k06a  ยท  3Comments