#工程创立 1、首要创立一个文件夹,例如TestDemo
2、运用xcode创立workspace并放入TestDemo文件夹内,如图 挑选File → new→Workspace →编辑 → 点击save
3、在TestDemo文件夹中分别创立TestDemo App和 ShowText Framework, 如图
4、打开workspace,分别增加app和framework,可以拖动.xcodeproj,也可以点击加号或许右键Add Files to “TestDemo“,增加后如图
5、新建Podfile文件,变编写
platform :ios, '13.0'
workspace 'TestDemo.xcworkspace' #指定workspace
inhibit_all_warnings! #疏忽正告
use_frameworks!
def commpod #宏定义几个target都要用的的pod
pod 'SVProgressHUD'
end
target 'TestDemo' do
project 'TestDemo'
commpod
pod 'Alamofire'
end
target 'ShowText' do
project 'ShowText/ShowText.xcodeproj'
commpod
pod 'Alamofire'
end
6、pod install,完成后和第四步的图相同
7、将framework增加到主工程
#framework设置
1、设置Build Active Architecture Only 值 为NO
2、查找Mach,设置为Dynamic Library
3、查找Dead Code Stripping 设置为NO
4、去除模拟器中arm64 查找Excluded Architectures 下Any ios Simulator SDK 值为 arm64。模拟器生成的.framework 不需求arm64
5、Build Libraries for Distribution 设置为Yes (如果是swift言语的时分需求)
至此应该就完成了大部分内容了
#遇到的问题
1、pod 失利报错,我用的是xcode 14.2,报错
force_encoding': can't modify frozen String (FrozenError)
解决如图
2、新建的动态库中运用asset办理图片,读取的方法有所改变
public class ImageProvider {
// convenient for specific image
public static func picture() -> UIImage {
return UIImage(named: "test", in: Bundle(for: self), with: **nil**) ?? UIImage()
}
// for any image located in bundle where this class has built
public static func image(named: String) -> UIImage? {
return UIImage(named: named, in: Bundle(for: self), with: nil)
}
}
3、国际化,和普通差不多,只是在framework需求留意应该运用有bundle参数,和图片读取相同 留意主app也需求做国际化才会有作用哦
public class LocalizedProvider {
public static func localizedString(key: String) -> String {
return NSLocalizedString(key,
bundle: Bundle(for: self), comment: "")
}
}
打包好的framework直接增加到主工程运用就行,如果有pod依靠库,只需求在主工程pod相应的库就可以了
#参考文章
iOS开发 运用Pods办理调试个人Framework
iOS运用workspace开发framework以及集成cocoapod方法