开始前提:请根据github上的说明,创建好工程。
工程配置要点:
1、bundle.json
在SMBundle类中,方法
- (instancetype)initWithDictionary:(NSDictionary *)dictionary
根据bundle.json配置文件信息查找framework、bundle文件,从而加载到应用中进行使用。
NSString *bundlePath = nil;
NSString *bundleSuffix = @"bundle";
SMBundleType bundleType = SMBundleTypeAssets;
if ([pkg rangeOfString:@".app."].location != NSNotFound
|| [pkg rangeOfString:@".lib."].location != NSNotFound) {
bundleSuffix = @"framework";
bundleType = SMBundleTypeApplication;
}
以上代码表明,要加载framework文件,pkg名称必须包含“.app.”(模块库)/“.lib.”(工具库),否则全部默认加载bundle包。因此bundle.json文件可以是这样的:
"version": "1.0.0",
"bundles": [
{
"uri": "lib.utils",
"pkg": "com.example.small.lib.utils"
},
{
"uri": "main",
"pkg": "com.example.small.app.main"
},
{
"uri": "home",
"pkg": "com.example.small.app.home"
},
{
"uri": "about",
"pkg": "com.example.small.web.about"
}
]
2、workspace/project设置
2.1、framework模块工程
2.1.1、工程名可根据自己需要进行命名,eg:Small.Main;
2.1.2、framework编译成功后,名称跟Product Name一样,命名规则一般是这样的
xx_xx_lib_xx【com_example_small_lib_utils】
xx_xx_app_xx
xx_xx_xx_xx
2.1.3、Principal class设置,指定模块入口
2.2、主工程设置
2.2.1、framework添加到主工程,不以Linked方式进行添加,使用Build Phases中的Copy Bundle Resources 选项,将framework拖动添加其中即可,这样可以完成对framework编译完后的拷贝
完成添加,进入测试。使用过程中,有可以模块更新代码后,主工程调用发现功能未更新,这时候需要清理工程,重新编译;或者修改编译包配置,从而时时更新。