1、在 Build Settings ~> Build Library for Distribution 设为YES 。否则在生成 xcframework时 会报错“ No 'swiftinterface' files found within xx.swiftmodule ”
2、在Build Settings 搜索 Skip Install 并设置为NO。否则在归档的文件目录Products下会没有输出文件。
3、对项目进行归档,生成framework。可以直接在工程中选择对应的 scheme ,然后在 Product 中选择 Archive。或者用命令行处理。xcodebuild archive –help 查看更多使用
eg: 针对 Alamofire 归档,生成framework
首先进入到Alamofire 项目目录下
模拟器:xcodebuild archive -workspace Alamofire.xcworkspace -scheme "Alamofire iOS" -sdk iphonesimulator -archivePath build/simulator
真机:xcodebuild archive -workspace Alamofire.xcworkspace -scheme "Alamofire iOS" –sdk iphoneos -archivePath build/iOS
MacCatalyst:xcodebuild archive -workspace Alamofire.xcworkspace -scheme "Alamofire iOS" -destination 'platform=macOS,arch=x86_64,variant=Mac Catalyst' -archivePath build/mac
Tips:
在归档MacCatalyst,生成framework文件时,-scheme 不应该选择“Alamofire macOS”,因为在生成xcframework导入到需要使用的工程中时,会报一下错误 “While building for Mac Catalyst, no library for this platform was found in 'Alamofire.xcframework'.” 没有支持Mac Catalyst的 库。
4、通过命令行生成xcframework文件。
xcodebuild -create-xcframework –output (xcframework名字) –framework (framework路径) –framework (framework路径)。
eg:针对Alamofire 生成 xcframework
xcodebuild –create-xcframework -output Alamofire.xcframework –framework Alamofire项目目录/Alamofire/build/iOS.xcarchive/Products/Library/Frameworks/Alamofire.framework –framework Alamofire项目目录/Alamofire/build/mac.xcarchive/Products/Library/Frameworks/Alamofire.framework
-framework Alamofire项目目录/Alamofire/build/simulator.xcarchive/Products/Library/Frameworks/Alamofire.framework
然后就可以在 Alamofire项目目录下看到Alamofire.xcframework 文件了
网友评论