关于SwiftPackageManager(以下称为SwiftPM),它可以用于从Xcode11进行iOS应用程序开发,并且在前一天发布的Xcode12中非常容易使用,包括将其介绍到项目中的方法以及创建项目的方法。自制的SwiftPM库本文是如何创建自己的库。
↓单击此处获取安装方法
*让我们使用Swift包管理器(SwiftPM)?简介?
库创建方法
安装环境
- Xcode12
启动Swift PM
[开始Xcode]→[文件]→[新建]→[快速包]
[项目名称]→[创建]
创建的屏幕
这次取决于我自己的图书馆的注册,所以
- Package.swift
- MyLibrary.swift
我只触摸
。 (如果为true,则还应该编写一个测试。)
在
Package.swift中,描述您要加载的目标文件或外部库的URL。
这次,使用外部库加载Nuke,扩展UIImage,然后在UIImage端加载Nuke。
Package.swift
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // swift-tools-version:5.3 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "MyLibrary", platforms:[.iOS(.v11)], // 使用するプラットフォーム(今回はiOS11以上) products: [ .library( name: "MyLibrary", targets: ["MyLibrary"]), ], dependencies: [ .package(url: "https://github.com/kean/Nuke.git", from: "9.1.2") // 読み込みたい外部ライブラリ ], targets: [ depends on. .target( name: "MyLibrary", dependencies: [ .product(name: "Nuke", package: "Nuke") // 読み込んだライブラリを使用する ]), .testTarget( name: "MyLibraryTests", dependencies: ["MyLibrary"]), ] ) |
这样就完成了库。
MyLibrary.swift
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import UIKit import Nuke public enum ProcessorsOption { case resize case resizeRound(radius: CGFloat) case resizeCircle } public typealias AspectMode = ImageProcessors.Resize.ContentMode public extension UIImageView { func loadUrl(imageUrl: String?, processorOption: ProcessorsOption = ProcessorsOption.resize, aspectMode: AspectMode = .aspectFill, crop: Bool = false, placeHolder: UIImage? = nil, failureImage: UIImage? = nil, contentMode: UIView.ContentMode? = nil) { guard let url: String = imageUrl, let loadUrl: URL = URL(string: url) else { self.image = failureImage return } let resizeProcessor = ImageProcessors.Resize(size: self.bounds.size, contentMode: aspectMode, crop: crop) let processors: [ImageProcessing] switch processorOption { case .resize: processors = [resizeProcessor] case .resizeRound(let radius): processors = [resizeProcessor, ImageProcessors.RoundedCorners(radius: radius)] case .resizeCircle: processors = [resizeProcessor, ImageProcessors.Circle()] } let request = ImageRequest( url: loadUrl, processors: processors ) var contentModes: ImageLoadingOptions.ContentModes? if let mode = contentMode { contentModes = ImageLoadingOptions.ContentModes.init(success: mode, failure: mode, placeholder: mode) } let loadingOptions = ImageLoadingOptions(placeholder: placeHolder, failureImage: failureImage, contentModes: contentModes) Nuke.loadImage(with: request, options: loadingOptions, into: self) } } |
我将省略库中的内容。
(我尝试使用扩展程序作为加载和调整Nuke图像大小的扩展程序。)
照原样,没有显示此类模块'UIKit',因此无法构建。
[测试]→[MyLibraryTests]→更改[MyLibraryTests.swift]的内容
将构建从"我的Mac"更改为"任何iOS设备"
如果构建成功,则完成。
使用Git命令或源代码树来提交最后一个创建的代码,添加一个Tag,然后将其推送到github,就可以了。
↑关于此,
- https://tyoshikawa1106.hatenablog.com/entry/2016/05/16/230237
- https://backlog.com/ja/git-tutorial/stepup/17/
参见
。
*如果标记未设置为[1.0.0],将发生错误。
如果您可以考虑整个发行版,建议您对其进行许可。
如何在github
上许可
- https://qiita.com/shibukk/items/67ad0a5eda5a94e5c032
请参考
。
顺便说一下,这次创建的那个发布在github上。
如果愿意,请与Star一起使用。
github
https://github.com/isamiodagiri/ExtendedImageViewWithNuke
↓单击此处获取安装方法。
- 让我们使用Swift Package Manager(SwiftPM)?简介?
参考
- https://qiita.com/am10/items/72dbc511efc512fc065a
合作
如何在SwiftPM中注册自己的库,我不明白如何仅通过引用来安装外部库,我要求" App Dojo Salon"的人们进行合作。
非常感谢你。