Cocoapods: can't get podspec validation - ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code

Created on 17 Nov 2015  路  9Comments  路  Source: CocoaPods/CocoaPods

Details:
Xcode v7.1
cocoapods 0.39

Error:
[iOS] xcodebuild: Returned an unsuccessful exit code. You can use --verbose for more information.

podspec:
https://github.com/kaltura/player-sdk-native-ios/blob/master/KalturaPlayerSDK.podspec

Tried a lot of solutions, nothing works.

Thanks!

awaiting input

Most helpful comment

Hi @ElizaSapir , just in case you guys didn't find a solution yet...
We have a 2 pods that use Kaltura's libraries (one uses the KalturaClient, and one uses KalturaPlayerSDK). I had the same error (on both Kaltura's libraries) today while updating them.

Kaltura's libraries don't seem to compile well as frameworks, and that's what caused the error (at least for me). I've eventually managed to successfully push my podspecs using the --use-libraries flag, causing cocoapods to compile everything as static libraries instead. Here:

pod repo push <repo-name> <podspec-file-name>.podspec --allow-warnings --use-libraries

Hope this helps!

All 9 comments

What's the output of pod [spec | lib] lint --verbose?

Hey @segiddins , @neonichu

Here is the output:

The following build commands failed:
Ld          
/var/folders/57/pv4_gcjx5pn3_0vht648bqsm0000gn/T/CocoaPods/Lint/build/Pods.build/Release-       
iphonesimulator/KalturaPlayerSDK.build/Objects-normal/x86_64/KalturaPlayerSDK normal x86_64
 (1 failure)
 -> KalturaPlayerSDK (2.0.10)
  - ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.
  - WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/ChromecastDeviceController.m:218:34:    
  warning: sending 'id<KPGCMediaControlChannel>' to parameter of incompatible type   
'id<KPGCCastChannel>'
    - NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/ChromecastDeviceController.h:227:41: note: passing argument to parameter 'channel' here
- WARN  | [iOS] xcodebuild:  KalturaPlayerSDK/PlayerSDK/KCCPlayer.m:257:12: warning: incompatible pointer to integer conversion returning 'void *' from a function with result type 'BOOL' (aka 'signed char') [-Wint-conversion]
- WARN  | [iOS] xcodebuild:  KalturaPlayerSDK/PlayerSDK/KCCPlayer.m:182:1: warning: conflicting return type in implementation of 'setPlayerSource:': 'BOOL' (aka 'signed char') vs 'void' [-Wmismatched-return-types]
- NOTE  | xcodebuild:  Headers/Private/KalturaPlayerSDK/KPViewControllerProtocols.h:54:1: note: previous definition is here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KCCPlayer.m:24:17: warning: method 'isPlayableMIMEType:' in protocol 'KPlayer' not implemented [-Wprotocol]
- NOTE  | xcodebuild:  Headers/Private/KalturaPlayerSDK/KPViewControllerProtocols.h:60:1: note: method 'isPlayableMIMEType:' declared here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPChromecast.m:108:1: warning: control reaches end of non-void function [-Wreturn-type]
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPChromecast.m:170:11: warning: unused variable 'volume' [-Wunused-variable]
- WARN  | [iOS] xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPController.m:93:12: warning: incompatible pointer to integer conversion returning 'void *' from a function with result type 'BOOL' (aka 'signed char') [-Wint-conversion]
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPController.m:11:17: warning: method definition for 'addPeriodicTimeForInterval:usingBlock:' not found [-Wincomplete-implementation]
- NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPController.h:93:1: note: method 'addPeriodicTimeForInterval:usingBlock:' declared here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPController.m:11:17: warning: method 'beginSeekingForward' in protocol 'KPMediaPlayback' not implemented [-Wprotocol]
- NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPMediaPlayback.h:69:1: note: method 'beginSeekingForward' declared here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPController.m:11:17: warning: method 'beginSeekingBackward' in protocol 'KPMediaPlayback' not implemented [-Wprotocol]
- NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPMediaPlayback.h:75:1: note: method 'beginSeekingBackward' declared here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPController.m:11:17: warning: method 'endSeeking' in protocol 'KPMediaPlayback' not implemented [-Wprotocol]
- NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPMediaPlayback.h:81:1: note: method 'endSeeking' declared here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/PlayerSDK/KPControlsView.m:38:15: warning: unused variable 'className' [-Wunused-variable]
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KALTURAPlayerSDK/KPControlsView.m:38:15: warning: unused variable 'className' [-Wunused-variable]
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KALTURAPlayerSDK/KPControlsWKWebView.m:53:161: warning: conflicting parameter types in implementation of 'webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:': 'void (^ _Nonnull __strong)(void)' vs 'void (^__strong _Nonnull)()' [-Wmismatched-parameter-types]
- NOTE  | xcodebuild:  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.1.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKUIDelegate.h:81:165: note: previous definition is here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KALTURAPlayerSDK/KPControlsWKWebView.m:15:17: warning: method 'showChromecastComponent:' in protocol 'KPControlsView' not implemented [-Wprotocol]
- NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/KALTURAPlayerSDK/KPControlsView.h:63:1: note: method 'showChromecastComponent:' declared here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/PlayerSDK/KPControlsWKWebView.m:15:17: warning: auto property synthesis will not synthesize property 'shouldUpdateLayout' declared in protocol 'KPControlsView' [-Wobjc-protocol-property-synthesis]
- NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/PlayerSDK/KPControlsView.h:31:28: note: property declared here
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/PlayerSDK/KPControlsWKWebView.m:53:161: warning: conflicting parameter types in implementation of 'webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:': 'void (^ _Nonnull __strong)(void)' vs 'void (^__strong _Nonnull)()' [-Wmismatched-parameter-types]
- WARN  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/PlayerSDK/KPControlsWKWebView.m:15:17: warning: method 'showChromecastComponent:' in protocol 'KPControlsView' not implemented [-Wprotocol]
- NOTE  | xcodebuild:  KalturaPlayerSDK/PlayerSDK/PlayerSDK/KPControlsView.h:64:1: note: method 'showChromecastComponent:' declared here
- WARN  | [iOS] xcodebuild:  KalturaPlayerSDK/PlayerSDK/KPlayer.m:216:12: warning: incompatible pointer to integer conversion returning 'NSNumber *' from a function with result type 'BOOL' (aka 'signed char') [-Wint-conversion]
- WARN  | [iOS] xcodebuild:  KalturaPlayerSDK/PlayerSDK/KCCPlayer.m:182:1: warning: conflicting return type in implementation of 'setPlayerSource:': 'BOOL' (aka 'bool') vs 'void' [-Wmismatched-return-types]
- NOTE  | [iOS] xcodebuild:  ld: warning: ignoring file KalturaPlayerSDK/PlayerSDK/libWViPhoneAPI.a, missing required architecture i386 in file KalturaPlayerSDK/PlayerSDK/libWViPhoneAPI.a (3 slices)
- NOTE  | [iOS] xcodebuild:  ld: warning: ignoring file KalturaPlayerSDK/PlayerSDK/libWViPhoneAPI.a, missing required architecture x86_64 in file KalturaPlayerSDK/PlayerSDK/libWViPhoneAPI.a (3 slices)
- NOTE  | [iOS] xcodebuild:  clang: error: linker command failed with exit code 1 (use -v to see invocation)

Analyzed 1 podspec.

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

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0/lib/cocoapods/command/spec/lint.rb:77:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:312:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0/lib/cocoapods/command.rb:47:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0/bin/pod:44:in `<top (required)>'
/usr/local/bin/pod:23:in `load'

What can be the reason to the error? I tagged a version 2 weaks ago and everything was ok!

Thanks!

Since those are actual build failures, you're probably missing some files in the podspec that has been added to the project in the meantime. When you're doing a lint with --no-clean you can inspect the generated project and determine what is missing more easily.

Closing because of lack of activity.

Hi @ElizaSapir , just in case you guys didn't find a solution yet...
We have a 2 pods that use Kaltura's libraries (one uses the KalturaClient, and one uses KalturaPlayerSDK). I had the same error (on both Kaltura's libraries) today while updating them.

Kaltura's libraries don't seem to compile well as frameworks, and that's what caused the error (at least for me). I've eventually managed to successfully push my podspecs using the --use-libraries flag, causing cocoapods to compile everything as static libraries instead. Here:

pod repo push <repo-name> <podspec-file-name>.podspec --allow-warnings --use-libraries

Hope this helps!

same to me

This error may occur when u setting up incorrect path to ur sources. Check it one more time.
s.source_files = "EXPLogger/*.{h,m}"

the thing above solved my problem
s.source_files = "loxy4-apple-framework/Sources/*/.{h,m,swift}"

s.source_files = "Demo/Sources/*/.{h,m,swift}"
work for me

Was this page helpful?
0 / 5 - 0 ratings