Cocoapods 0.26.2 brakes some previously valid Pods #1486

Closed
rivera-ernesto opened this Issue Oct 17, 2013 · 8 comments

Comments

Projects
None yet
3 participants
Contributor

rivera-ernesto commented Oct 17, 2013

For instance Cordova 2.9.0 Pod works fine with 0.25.0:

pod spec lint https://raw.github.com/bradfol/Specs/12759f1395a9e6df5d2e4b2241bf6047fd0aef60/Cordova/2.9.0/Cordova.podspec

-> Cordova (2.9.0)
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:58:5: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]
    - NOTE  | [xcodebuild]  /Applications/Xcode5-DP.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h:33:12: note: 'UIAccelerometer' declared here
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:58:48: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:76:5: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:76:58: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]

Analyzed 1 podspec.

Cordova.podspec passed validation.

But fails with 0.26.2:

pod spec lint https://raw.github.com/bradfol/Specs/12759f1395a9e6df5d2e4b2241bf6047fd0aef60/Cordova/2.9.0/Cordova.podspec

 -> Cordova (2.9.0)
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:58:5: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]
    - NOTE  | [xcodebuild]  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h:33:12: note: 'UIAccelerometer' declared here
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:58:48: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:76:5: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVAccelerometer.m:76:58: warning: 'UIAccelerometer' is deprecated: first deprecated in iOS 5.0 - UIAccelerometer has been replaced by the CoreMotion framework [-Wdeprecated-declarations]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVCamera.m:153:54: warning: undeclared selector 'presentViewController:::' [-Wundeclared-selector]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVCapture.m:91:54: warning: undeclared selector 'presentViewController:::' [-Wundeclared-selector]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVCapture.m:142:54: warning: undeclared selector 'presentViewController:::' [-Wundeclared-selector]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVCapture.m:258:54: warning: undeclared selector 'presentViewController:::' [-Wundeclared-selector]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVCapture.m:496:19: warning: incompatible pointer types initializing 'NSString *__strong' with an expression of type 'CGPathRef' (aka 'const struct CGPath *') [-Wincompatible-pointer-types]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVCapture.m:618:39: warning: implicit conversion from enumeration type 'enum UITextAlignment' to different enumeration type 'NSTextAlignment' (aka 'enum NSTextAlignment') [-Wenum-conversion]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVContacts.m:94:58: warning: undeclared selector 'presentViewController:::' [-Wundeclared-selector]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVContacts.m:154:58: warning: undeclared selector 'presentViewController:::' [-Wundeclared-selector]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVContacts.m:196:50: warning: undeclared selector 'presentViewController:::' [-Wundeclared-selector]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFile.m:804:54: warning: implicit conversion loses integer precision: 'long long' to 'unsigned long' [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFile.m:805:108: warning: implicit conversion loses integer precision: 'long long' to 'NSUInteger' (aka 'unsigned int') [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFile.m:1075:54: warning: implicit conversion loses integer precision: 'long long' to 'unsigned long' [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFile.m:1076:108: warning: implicit conversion loses integer precision: 'long long' to 'NSUInteger' (aka 'unsigned int') [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFile.m:1282:98: warning: implicit conversion loses integer precision: 'unsigned long long' to 'int' [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFileTransfer.m:281:46: warning: implicit conversion loses integer precision: 'long long' to 'unsigned long' [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFileTransfer.m:282:100: warning: implicit conversion loses integer precision: 'long long' to 'NSUInteger' (aka 'unsigned int') [-Wshorten-64-to-32]
    - ERROR | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFileTransfer.m:302:54: error: incompatible operand types ('id' and 'CGPathRef' (aka 'const struct CGPath *'))
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVFileTransfer.m:501:44: warning: implicit conversion loses integer precision: 'long long' to 'NSInteger' (aka 'int') [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVURLProtocol.m:167:46: warning: implicit conversion loses integer precision: 'long long' to 'unsigned long' [-Wshorten-64-to-32]
    - NOTE  | [xcodebuild]  Cordova/CordovaLib/Classes/CDVURLProtocol.m:168:100: warning: implicit conversion loses integer precision: 'long long' to 'NSUInteger' (aka 'unsigned int') [-Wshorten-64-to-32]

Pods project available at `/tmp/CocoaPods/Lint/Pods/Pods.xcodeproj` for inspection.

Analyzed 1 podspec.

[!] The spec did not pass validation.
Owner

alloy commented Oct 17, 2013

This is probably because in CP 0.26 we’ve started to update Xcode project settings to the defaults of Xcode 5. Please investigate the root cause of the build error and if it’s not actually a valid error and then report back to us.

Owner

fabiopelosin commented Oct 17, 2013

At least one cause is related to the modules, we enabled them as per Xcode default but this creates issues in some Pods. One glaring example is Kiwi (at least on OS X).

Contributor

rivera-ernesto commented Oct 18, 2013

I think that more than modules it must some extra warnings set on by default, and some warnings treated as errors now (error: incompatible operand types).
Warnings are always good but maybe there should be a "compatibility mode/flag" where old pods can continue building.

Anyway I'm gonna check where this one brakes.

Contributor

rivera-ernesto commented Oct 18, 2013

And you were right @alloy, it was the use modules' setting.

If that is going to break many pods maybe the podspecs should specify whether or not they work with modules, with false by default/if not present. Just like spec.requires_arc.

Also related to the first problem in #1450 (comment).

Owner

fabiopelosin commented Oct 18, 2013

Can somebody provide a definitive explanation of which conditions might cause a build failure of a target using modules. The only one that I have currently, and not properly investigated, is the inclusion of frameworks in the prefix header.

Owner

alloy commented Oct 18, 2013

@irrationalfab Since modules aren’t officially supported yet for 3rd party libraries, should we maybe just disable this for the time being? Or does that mean that libraries that @import Apple frameworks also won’t work anymore?

Owner

fabiopelosin commented Oct 19, 2013

I'm tempted to just disable the, I was looking for more info though. I think that disabling the breaks import so another alternative might be to disable the in the xcconfig of the specs.


Sent from Mailbox for iPad

On Fri, Oct 18, 2013 at 12:58 PM, Eloy Durán notifications@github.com
wrote:

@irrationalfab Since modules aren’t officially supported yet for 3rd party libraries, should we maybe just disable this for the time being? Or does that mean that libraries that @import Apple frameworks also won’t work anymore?

Reply to this email directly or view it on GitHub:
#1486 (comment)

Owner

fabiopelosin commented Nov 11, 2013

Moving to #1575

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment