iOS_组件打包规范


上传到平台的组件包有着严格的目录结构.如果您上传的组件包目录结构不符合规范,会导致您的组件编译失败.

请您按照以下要求来定制您的组件包.

目录规范:


组件包应该且只包含以下目录或文件:

image

  • depend文件 : denpend文件内容为组件工程中所添加的系统framework,dylib.

      frameworks = CoreLocation.framework, CoreTelephony.framework, LocalAuthentication.framework[option]
      libraries = libz.1.1.3.dylib, libstdc++.dylib, libsqlite3.dylib
    
    • frameworks : 需要添加的系统的framework,库与库之间需要用英文半角逗号分隔开,第三方库文件只需要添加到res目录下即可,不需要在depend文件中说明.
    • libraries : 需要添加的系统的dylib文件,用英文半角逗号分隔开.
    • [option] : 由于引擎所支持版本为7.0及以上,所以会有一些需要在8.0或者9.0以上版本才可以支持的库,这些8.0及以上系统才支持的库需要在添加库引用方式为option,所以需要在库后面添加[option]来标记说明,否则会引擎程序崩溃.

  • plugin.xml文件 : 内容为xml格式,定义了模块的类名称、JS对象名称以及方法和属性等.

      <plugin domain="Easemob" classname="RDEasemob" version="1.0" scope="app" isUI="false" startup = "true" lifeCycleCallback="true">
      <method name="initEasemob"></method>
      <method name="getUnreadMsgCount" return="true"></method>
      <property name="SINGL"  value="0"></property>
      </plugin>
    
    • domain : 定义该模块所对应的JS对象名,类似于标准JS中的window,document,Math等对象.
    • className : 定义该扩展模块对应被JS映射的Native端的OC类名.
    • version : 组件版本号.
    • scope : 生命周期,不同的作用域,生命周期也就不同.有app,window,local,createNew四种,详情参考下列生命周期.
      • app : 作用域是全局,组件生命周期跟app生命周期相同,调用对象方式rd.JS对象名(例如rd.demo).
      • window : 作用域是窗口,组件生命周期跟window生命周期相同.调用对象方式rd.JS对象名(例如rd.demo).
      • local : 作用域是webview,组件生命周期跟webview生命周期相同.调用对象方式rd.JS对象名(例如rd.demo).
      • createNew : 作用域是webview,每次使用都会创建一个新实例.调用对象方式rd.require('JS对象名')(例如rd.require('demo')).
    • method : 对应模块的方法,分为有返回值和无返回值,当return= "true"表示方法有返回值(不添加字段默认为"false").
    • property : 对应模块的属性,name表示属性名称,value表示属性的值.因为property会按字符串拼接,如果返回是JS的字符串,加单引号,如果是JS的JSON,Number对象,不用加引号.
    • startup : 当startup 为true的时候,app启动后否执行静态startup方法(不添加字段默认为"false").
    • isUI : 是否是UI组件,如果为"true",需要实现Join_UI方法,返回视图(UIView),UI组件自动实现了如下5个方法(不添加字段默认为"false").

      • setFrame : 设置视图frame
      • show : 显示视图
      • hide : 隐藏视图
      • remove : 移除视图
      • isShowing : 判断视图是否显示
    • lifeCycleCallback : 是否注册ApplicationDelegate回调,需要组件实现协议UIApplicationDelegate(不添加字段默认为"false").


  • res目录 : 存放编译生成的静态库文件、第三方framework和.a库、bundle等(第三方的静态库最好放在res文件夹中,编译期会去重,避免添加在工程中与其他组件造成冲突).res目录下允许存放文件夹,但是文件夹下的文件也要是资源文件.

iOS打包规范,请点击查看详情