使用 SSZipArchive 依赖项对 Swift cocoa pod 进行 lint
Lint a Swift cocoa pod with SSZipArchive dependency
有人成功地创建了一个依赖 SSZipArchive 的 pod 吗?我的 类 都在 Swift 中,但我也包括我的桥接文件 (#import "SSZipArchive")。当我尝试 lint 时,我收到 9 个错误,所有错误都与 SSZipArchive 相关。请让我们知道您的想法。非常感谢!
- 错误 | SSZipArchive/SSZipArchive/minizip/ioapi.h:45:10: 错误:在框架模块 'SSZipArchive.ioapi'
中包含 non-modular header
- 注意 |目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:5:9:注意:包含在目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:5:
中的文件中
- 错误 | SSZipArchive/SSZipArchive/minizip/mztools.h:15:10: 错误:在框架模块 'SSZipArchive.mztools'
中包含 non-modular header
- 注意 | SSZipArchive/SSZipArchive/minizip/mztools.h:18:10:注意:包含在 SSZipArchive/SSZipArchive/minizip/mztools.h:18:
中的文件中
- 错误 | SSZipArchive/SSZipArchive/minizip/unzip.h:51:10: 错误:在框架模块 'SSZipArchive.unzip'
中包含 non-modular header
- 注意 |目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:7:9:注意:包含在目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:7:
中的文件中
- 错误 | SSZipArchive/SSZipArchive/minizip/zip.h:50:10: 错误:在框架模块 'SSZipArchive.zip'
中包含 non-modular header
- 注意 |目标支持 Files/Pods-VideoPlayerLibrary/Pods-VideoPlayerLibrary-umbrella.h:3:9:注意:包含在目标支持 Files/Pods-VideoPlayerLibrary/Pods-VideoPlayerLibrary-umbrella.h:3:
中的文件中
- 错误 | VideoPlayerLibrary/Pod/Classes/VideoPlayerLibrary-Bridging-Header.h:12:9: 错误:无法构建模块 'SSZipArchive'
- 注意 | :0: 错误: 无法构建 Objective-C 模块 'VideoPlayerLibrary'
这是我的 pod 规范文件:
Pod::Spec.new do |s|
s.name = "VideoPlayerLibrary"
s.version = "1.0.27"
s.platform = :ios, "4.0"
s.ios.deployment_target = "8.3"
s.requires_arc = true
s.source_files = 'Pod/Classes/*'
s.resource_bundles = {
'VideoPlayerLibrary' => ['Pod/Assets/*']
}
s.library = 'zlib', 'z'
s.frameworks = 'Foundation', 'UIKit'
s.dependency 'Alamofire'
s.dependency 'SSZipArchive'
end
我等不及更好的解决方案了,我的临时解决方案是创建一个 zipArchive class,它与 objc 中的 SSZipArchive pod 通信。不漂亮也不理想,但现在可以使用。希望他们尽快更新。
注意:您将在桥接头文件中导入 zipArchive.h 而不是 SSZipArchive.h
#import "zipArchive.h"
#import <SSZipArchive/SSZipArchive.h>
@implementation zipArchive
+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination{
return [SSZipArchive unzipFileAtPath:path toDestination:destination];
}
@end
您还需要在项目设置中设置"Allow Non-modular includes"
我能够让 SSZipArchive 进行编译,但是在查看了他们的 swift 示例 https://github.com/ZipArchive/ZipArchive 并准确复制了他们为我编译和 运行 的实现之后,我并没有这样做。
这是我在 swift
中搜索过的各种现有建议都没有成功的结果
我最终不得不调整框架源代码、复制链接器文件、标志,以匹配并最终编译。这非常乏味,因为我当前的 pod 甚至我的项目都有很多变化。
有人成功地创建了一个依赖 SSZipArchive 的 pod 吗?我的 类 都在 Swift 中,但我也包括我的桥接文件 (#import "SSZipArchive")。当我尝试 lint 时,我收到 9 个错误,所有错误都与 SSZipArchive 相关。请让我们知道您的想法。非常感谢!
- 错误 | SSZipArchive/SSZipArchive/minizip/ioapi.h:45:10: 错误:在框架模块 'SSZipArchive.ioapi' 中包含 non-modular header
- 注意 |目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:5:9:注意:包含在目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:5: 中的文件中
- 错误 | SSZipArchive/SSZipArchive/minizip/mztools.h:15:10: 错误:在框架模块 'SSZipArchive.mztools' 中包含 non-modular header
- 注意 | SSZipArchive/SSZipArchive/minizip/mztools.h:18:10:注意:包含在 SSZipArchive/SSZipArchive/minizip/mztools.h:18: 中的文件中
- 错误 | SSZipArchive/SSZipArchive/minizip/unzip.h:51:10: 错误:在框架模块 'SSZipArchive.unzip' 中包含 non-modular header
- 注意 |目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:7:9:注意:包含在目标支持 Files/Pods-SSZipArchive/Pods-SSZipArchive-umbrella.h:7: 中的文件中
- 错误 | SSZipArchive/SSZipArchive/minizip/zip.h:50:10: 错误:在框架模块 'SSZipArchive.zip' 中包含 non-modular header
- 注意 |目标支持 Files/Pods-VideoPlayerLibrary/Pods-VideoPlayerLibrary-umbrella.h:3:9:注意:包含在目标支持 Files/Pods-VideoPlayerLibrary/Pods-VideoPlayerLibrary-umbrella.h:3: 中的文件中
- 错误 | VideoPlayerLibrary/Pod/Classes/VideoPlayerLibrary-Bridging-Header.h:12:9: 错误:无法构建模块 'SSZipArchive'
- 注意 | :0: 错误: 无法构建 Objective-C 模块 'VideoPlayerLibrary'
这是我的 pod 规范文件:
Pod::Spec.new do |s|
s.name = "VideoPlayerLibrary"
s.version = "1.0.27"
s.platform = :ios, "4.0"
s.ios.deployment_target = "8.3"
s.requires_arc = true
s.source_files = 'Pod/Classes/*'
s.resource_bundles = {
'VideoPlayerLibrary' => ['Pod/Assets/*']
}
s.library = 'zlib', 'z'
s.frameworks = 'Foundation', 'UIKit'
s.dependency 'Alamofire'
s.dependency 'SSZipArchive'
end
我等不及更好的解决方案了,我的临时解决方案是创建一个 zipArchive class,它与 objc 中的 SSZipArchive pod 通信。不漂亮也不理想,但现在可以使用。希望他们尽快更新。
注意:您将在桥接头文件中导入 zipArchive.h 而不是 SSZipArchive.h
#import "zipArchive.h"
#import <SSZipArchive/SSZipArchive.h>
@implementation zipArchive
+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination{
return [SSZipArchive unzipFileAtPath:path toDestination:destination];
}
@end
您还需要在项目设置中设置"Allow Non-modular includes"
我能够让 SSZipArchive 进行编译,但是在查看了他们的 swift 示例 https://github.com/ZipArchive/ZipArchive 并准确复制了他们为我编译和 运行 的实现之后,我并没有这样做。
这是我在 swift
中搜索过的各种现有建议都没有成功的结果我最终不得不调整框架源代码、复制链接器文件、标志,以匹配并最终编译。这非常乏味,因为我当前的 pod 甚至我的项目都有很多变化。