通过swift package, Carthage 打包发布 iOS framework项目到git

本人之前在使用Carthage打包的时候,希望能将打包的framework随着项目一起发布到远端git上,结果发现每次生成的framework,并不是根据pull下来的Sources文件去临时build framework。 而是从本地push上去的framework,导致每次修改Sources文件,都必须在本地carthage update 后把framework发布到git上,这显然不是我想要的效果。

因此,接下来介绍一种使用swift package 来构建一个适用Carthage发包的一个项目。

首先:新建一个目录

$ mkdir PhotoPick

$ cd PhotoPick/

在该目录下执行

$ swift package init

初始化生成一个符合package标准的项目(可忽略删掉Tests文件夹)

$ swift package generate-xcodeproj

生成一个Xcode项目


通过swift package, Carthage 打包发布 iOS framework项目到git_第1张图片

打开这个工程之后,你会发现这个项目是一个MAC OS 项目,接下来我们需要把这个项目设置为iOS项目。


通过swift package, Carthage 打包发布 iOS framework项目到git_第2张图片

将Base SDK 的macOS 修改为 iOS , 将Supported PlatForms 修改为iOS

接着点击TARGETS 上的 PhotoPick,重复一遍上面操作,将SDK改成iOS类型

然后把想要编译的源文件放入Source目录下。

确定需要编译的文件


通过swift package, Carthage 打包发布 iOS framework项目到git_第3张图片

接着执行命令 carthage build --no-skip-current 

若执行失败出现

Build Failed

Task failed with exit code 65:

/usr/bin/xcrun xcodebuild -project /Users/Auto/Desktop/PhotoPick/PhotoPick.xcodeproj -scheme PhotoPick -configuration Release -sdk watchos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES clean build

是由于 Supported PlatForms选项未修改成iOS 平台SDK所造成的。可以尝试修改正确

若build成功,则可以看到,PhotoPick.framework成功生成

通过swift package, Carthage 打包发布 iOS framework项目到git_第4张图片

接着我们可以新建一个Demo来测试一下freamwork的功能。

File -> New -> Target -> Single View Application


通过swift package, Carthage 打包发布 iOS framework项目到git_第5张图片

在Embedded Binaries 上添加该framework

通过swift package, Carthage 打包发布 iOS framework项目到git_第6张图片

framework可以正常使用

终于大功告成了!

最后,可以将项目发布到github或git上面,注意给版本添加标签。

使用Carthage管理的项目,只需要在Carthage文件内添加该git路径以及标签号。

最后执行carthage update 拉下Souces下源码后,立刻自动build 相应的framework。

尽情享受Carthage 管理第三方依赖包所带来的便捷吧~

你可能感兴趣的:(通过swift package, Carthage 打包发布 iOS framework项目到git)