模块审核规范-iOS

1)、最外层目录审核

模块包的最外层目录必须为该模块的模块名,如moduleDemo,然后使用zip压缩工具将该目录压缩成zip格式文件。如下图:

图片说明

【**】如果模块包不符合该规范,将导致该模块不被编译。

2)、子目录或文件审核

iOS模块包内部最多只能包含以下几项,其中target和module.json为必需的,res、framework、localization目录可选,大致如图:

图片说明

2.1、target 目录审核:

该目录为必需目录。

1)、该目录存放模块库(也可以是如.swift这种源文件)及模块用到的其它第三方.a静态库、静态framework库,以及资源文件等。若.bundle文件中包含Info.plist文件,需检查Info.plist中是否有CFBundleExecutable字段,若有则需要删掉该字段,否则可能导致应用上传不了AppStore。

2)、该目录允许包含子目录,但不能包含widget、uz、UZEngine、UZModules等目录,也不能包含en.lproj、zh-Hans.lproj等多语言包目录。多语言包可以放置在localization目录下。

3)、该目录下不能包含引擎库libUZEngine.aInfo.plist文件。

2.2、res_模块名 目录审核:

该目录为可选目录,该目录命名规范必须为“res_”开头,后面跟模块名。例如“res_moduleDemo”。

2.3、framework 目录审核:

该目录为可选目录,该目录下存放动态类型的framework库,注意动态类型的framework库里面的Info.plist文件不能删掉,并且framework库不能包含模拟器架构

2.4、.a静态库和framework库审核:

所有的.a静态库和framework库必须包含arm64架构,否则将导致编译失败或无法正常使用。对于比较大的库,不能包含模拟器i386、x86_64架构,否则库文件过大,会影响编译效率。

可以在mac终端里面使用lipo -info test.a的方式查看库包含哪些架构。

3)、module.json文件审核:

该文件配置模块信息,可配置一个或多个模块的信息。

一个模块时的module.json配置:

{
    "name":"moduleDemo",
    "class":"UZModuleDemo"
}

多个模块时的module.json配置:

[{
    "name":"moduleDemo1",
    "class":"UZModuleDemo1"
},
{
    "name":"moduleDemo2",
    "class":"UZModuleDemo2"
}]

同时需要检查一下module.json配置中,所有的字符是否均是半角的字符。

凡是不符合以上格式的,均须开发者做更改。