CocoaPod规格以0.36赢得了lint

时间:2015-03-18 20:57:25

标签: ios cocoapods

我最近更新了cocoapods 0.36并对内部规范进行了一些更改,现在podspec不再验证。我用0.35验证了此规范lint的先前版本(0.3.8)并且使用0.36失败了。很明显,cocoapods 0.36要求的东西已经改变了。我知道Swift支持与动态框架一起添加,但我无法确定它失败的原因。

这是podspec

Pod::Spec.new do |s|
  s.name         = "Infusionsoft-Internal"
  s.version      = "0.3.8"
  s.summary      = "Pods to be used internal to Infusionsoft across projects."
  s.author       = { "Chris Wagner" => "chris.wagner@infusionsoft.com" }
  s.homepage     = "https://github.com/infusionsoft/Internal-iOS-Pods.git"
  s.license      = {
                      :type => 'N/A Copyright by Infusionsoft',
                      :text => <<-LICENSE
                               N/A Copyright by Infusionsoft
                      LICENSE

                   }
  s.source       = { :git => "https://github.com/infusionsoft/Internal-iOS-Pods.git", :tag => "0.3.8" }
  s.platform     = :ios, '7.0'

  s.xcconfig     = { 'HEADER_SEARCH_PATHS' => '"/usr/include/libxml2"'}
  s.libraries    = 'xml2'

  s.subspec 'Categories' do |cat|
    cat.source_files = 'Categories/Classes/*.{h,m}'
  end

  s.subspec 'UIComponents' do |ui|
    ui.source_files = 'UIComponents/Classes/**/*.{h,m}'
    ui.resources    = 'UIComponents/Resources/Images/*.png', 'UIComponents/Resources/Fonts/*.otf'
    ui.framework    = 'QuartzCore'
  end

  s.subspec 'Login' do |login|
    login.source_files  = 'Login/Classes/**/*.{h,m}'
    login.resources     = 'Login/Resources/Images/*', 'Login/Resources/Login.storyboard'
    login.dependency 'Infusionsoft-Internal/UIComponents', '~> 0.2'
    login.dependency 'Infusionsoft-Internal/Categories', '~> 0.2'
    login.dependency 'InfusionsoftSDK',  '~> 0.9'
    login.dependency 'Localytics-iOS-Client', '~> 2.23.0'
    login.dependency 'MBProgressHUD', '~> 0.7'
  end

  s.subspec 'Services' do |services|
    services.source_files   = 'Services/Classes/**/*.{h,m}'
    services.resources      = 'Services/Classes/**/TagSearch_iPhone.storyboard'
    services.dependency 'Infusionsoft-Internal/UIComponents', '~> 0.2'
    services.dependency 'Infusionsoft-Internal/Categories', '~> 0.2'
    services.dependency 'Localytics-iOS-Client', '~> 2.23.0'
    services.dependency 'InfusionsoftSDK', '~> 0.9'
    services.dependency 'MBProgressHUD',  '~> 0.7'
  end

  s.subspec 'Forms' do |forms|
    forms.source_files = 'Forms/Classes/**/*.{h,m}'
    forms.resources = 'Forms/Resources/*.*'
    forms.dependency 'Infusionsoft-Internal/UIComponents', '~> 0.1'
  end

  s.requires_arc = true
end

以下是pod spec lint详细日志的尾部(请原谅警告)。

 -> Infusionsoft-Internal (0.3.8)
    - WARN  | The URL (https://github.com/infusionsoft/Internal-iOS-Pods.git) is not reachable.
    - ERROR | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services] Returned an unsuccessful exit code.
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  InfusionsoftSDK/InfusionsoftSDK/WebServices/InvoiceService/ISLInvoiceServiceValidateCreditCard.m:62:30: warning: incompatible integer to pointer conversion assigning to 'BOOL *' (aka 'signed char *') from 'BOOL' (aka 'signed char') [-Wint-conversion]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Headers/Private/InfusionsoftSDK/ISLDataServiceAddCustomField.h:43:18: warning: unused function 'ISLCustomFieldObjectCandidateString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Headers/Private/InfusionsoftSDK/ISLDataServiceAddCustomField.h:101:18: warning: unused function 'ISLCustomFieldDataTypeString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Headers/Private/InfusionsoftSDK/ISLContactServiceAddWithDupCheck.h:39:18: warning: unused function 'ISLDupCheckTypeString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Headers/Private/InfusionsoftSDK/ISLInvoiceServiceAddManualPayment.h:39:18: warning: unused function 'ISLInvoiceServiceManualPaymentTypeString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Headers/Private/InfusionsoftSDK/ISLCreditCardTypeEnum.h:43:18: warning: unused function 'ISLCreditCardTypeNameString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  InfusionsoftSDK/InfusionsoftSDK/WebServices/DataService/ISLDataServiceAdd.m:71:50: warning: implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int' [-Wshorten-64-to-32]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  InfusionsoftSDK/InfusionsoftSDK/WebServices/InvoiceService/ISLInvoiceServiceValidateCreditCard.m:62:30: warning: incompatible integer to pointer conversion assigning to 'BOOL *' (aka 'bool *') from 'BOOL' (aka 'bool') [-Wint-conversion]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  InfusionsoftSDK/InfusionsoftSDK/WebServices/InvoiceService/ISLInvoiceServiceValidateCreditCard.m:85:32: warning: initialization of pointer of type 'BOOL *' (aka 'bool *') to null from a constant boolean expression [-Wbool-conversion]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Localytics-iOS-Client/Localytics-iOS-Client-2.23.0.source/LocalyticsDatapointHelper.m:135:18: warning: code will never be executed [-Wunreachable-code]
    - WARN  | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Localytics-iOS-Client/Localytics-iOS-Client-2.23.0.source/LocalyticsDatapointHelper.m:207:11: warning: incompatible pointer to integer conversion assigning to 'BOOL' (aka 'signed char') from 'id' [-Wint-conversion]
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/Cells/INFAddNewFormFieldCell.h:13:47: warning: auto property synthesis will not synthesize property 'textLabel' because it is 'readwrite' but it will be synthesized 'readonly' via another property [-Wobjc-property-synthesis]
    - NOTE  | [Infusionsoft-Internal/Forms]  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableViewCell.h:67:54: note: property declared here
    - ERROR | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services]  Localytics-iOS-Client/Localytics-iOS-Client-2.23.0.source/LocalyticsDatabase.h:12:9: error: include of non-modular header inside framework module 'Localytics_iOS_Client.LocalyticsDatabase' [-Werror,-Wnon-modular-include-in-framework-module]
    - NOTE  | [Infusionsoft-Internal/Login]  Infusionsoft-Internal/Login/Classes/INFAppSelectionViewController.m:26:9: fatal error: could not build module 'Localytics_iOS_Client'
    - WARN  | [Infusionsoft-Internal/UIComponents, Infusionsoft-Internal/Login, Infusionsoft-Internal/Services, and more...]  Infusionsoft-Internal/UIComponents/Classes/INFAppearance.m:29:36: warning: 'UITextAttributeFont' is deprecated: first deprecated in iOS 7.0 - Use NSFontAttributeName [-Wdeprecated-declarations]
    - NOTE  | [Infusionsoft-Internal/UIComponents, Infusionsoft-Internal/Login, Infusionsoft-Internal/Services, and more...]  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStringDrawing.h:21:30: note: 'UITextAttributeFont' has been explicitly marked deprecated here
    - WARN  | [Infusionsoft-Internal/UIComponents, Infusionsoft-Internal/Login, Infusionsoft-Internal/Services, and more...]  Infusionsoft-Internal/UIComponents/Classes/INFAppearance.m:30:36: warning: 'UITextAttributeTextColor' is deprecated: first deprecated in iOS 7.0 - Use NSForegroundColorAttributeName [-Wdeprecated-declarations]
    - NOTE  | [Infusionsoft-Internal/UIComponents, Infusionsoft-Internal/Login, Infusionsoft-Internal/Services, and more...]  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStringDrawing.h:23:30: note: 'UITextAttributeTextColor' has been explicitly marked deprecated here
    - WARN  | [Infusionsoft-Internal/UIComponents, Infusionsoft-Internal/Login, Infusionsoft-Internal/Services, and more...]  Infusionsoft-Internal/UIComponents/Classes/INFAppearance.m:31:36: warning: 'UITextAttributeTextShadowOffset' is deprecated: first deprecated in iOS 7.0 - Use NSShadowAttributeName with an NSShadow instance as the value [-Wdeprecated-declarations]
    - NOTE  | [Infusionsoft-Internal/UIComponents, Infusionsoft-Internal/Login, Infusionsoft-Internal/Services, and more...]  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStringDrawing.h:27:30: note: 'UITextAttributeTextShadowOffset' has been explicitly marked deprecated here
    - WARN  | [iOS] [Infusionsoft-Internal/Categories]  Infusionsoft-Internal/Categories/Classes/NSError+INFErrorPresenter.m:32:66: warning: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Wformat]
    - WARN  | [iOS] [Infusionsoft-Internal/Categories]  Infusionsoft-Internal/Categories/Classes/NSError+INFErrorPresenter.m:40:53: warning: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Wformat]
    - WARN  | [iOS] [Infusionsoft-Internal/Categories]  Infusionsoft-Internal/Categories/Classes/NSString+INFMD5.m:18:18: warning: implicit conversion loses integer precision: 'unsigned long' to 'CC_LONG' (aka 'unsigned int') [-Wshorten-64-to-32]
    - WARN  | [iOS] [Infusionsoft-Internal/Categories]  Infusionsoft-Internal/Categories/Classes/NSString+INFURLEncoded.m:16:21: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
    - NOTE  | [iOS] [Infusionsoft-Internal/Services]  Infusionsoft-Internal/Services/Classes/Tags/INFTagSearchViewController.m:27:9: fatal error: could not build module 'Localytics_iOS_Client'
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/INFFormField.h:53:18: warning: unused function 'INFFormFieldTypeString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/INFFormField.h:85:25: warning: unused function 'INFFormFieldTypeFromString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/INFFormField.h:106:14: warning: unused function 'INFFormFieldCellClassForType' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/INFFormField.h:138:23: warning: unused function 'INFUIKeyboardTypeFromString' [-Wunused-function]
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/Cells/INFFormFieldCell.m:65:76: warning: incompatible pointer to integer conversion sending 'void *' to parameter of type 'NSLayoutFormatOptions' (aka 'enum NSLayoutFormatOptions') [-Wint-conversion]
    - NOTE  | [Infusionsoft-Internal/Forms]  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h:97:92: note: passing argument to parameter 'opts' here
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/Cells/INFFormFieldCell.m:68:130: warning: incompatible pointer to integer conversion sending 'void *' to parameter of type 'NSLayoutFormatOptions' (aka 'enum NSLayoutFormatOptions') [-Wint-conversion]
    - WARN  | [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/Cells/INFFormFieldCell.m:42:12: warning: unused variable 'lineRect' [-Wunused-variable]
    - WARN  | [iOS] [Infusionsoft-Internal/Forms]  Infusionsoft-Internal/Forms/Classes/Helpers/INFFormFieldHelper.m:65:69: warning: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Wformat]

Analyzed 1 podspec.

[!] The spec did not pass validation.

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.36.0/lib/cocoapods/command/spec/lint.rb:67:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.8.1/lib/claide/command.rb:312:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.36.0/lib/cocoapods/command.rb:46:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.36.0/bin/pod:44:in `<top (required)>'
/usr/bin/pod:23:in `load'
/usr/bin/pod:23:in `<main>'

我认为- ERROR | [Infusionsoft-Internal/Login,Infusionsoft-Internal/Services] Returned an unsuccessful exit code.是关注点,但我无法弄清楚如何获得更多相关信息。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

这不是一个答案,因为它没有解释发生了什么或为什么会发生。如果其他人在阅读此问题时知道,请回答:)

我遇到与您相同的问题,即此警告

  

...在框架模块中包含非模块化头文件......

我通过要求pod lint不要使用框架来“修复”它。

pod lib lint --use-libraries

此选项在按下

时也有效
pod repo push <repo> <podspec> --use-libraries