🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# iOS开发规范 ***** 1. 我们会提前将位置、摄像头、相册、麦克风、多媒体等权限加入到项目中,如需其他权限,请提前告知天马工场。 2. 组件中的类文件和类名需要添加前缀,避免跟其他组件冲突。 3. 组件中的controller控制器都需要继承TMViewController。 4. 在组件开发时:如遇到需要网络请求,或者主题色等功能时,都需要从框架获取,获取方式可以参考 《iOS SDK API 》章节,在做组件开始时,因为我们的主题色是从后台下发,所以需要你们提前在AppDelegate 做下模拟操作: ``` [TMEngineConfig instance].themeColor = [UIColor redColor]; ``` 5. 各组件中需要与其余组件对接或提供给其余组件调用的,需要通过属性“paramStr”传递参数,默认通过init初始化,不添加其他初始化方法,不添加其他属性,不添加接口方法,其余初始化请重写init方法。(一般情况下只会通过init初始化,并只会传递paramStr参数),在需要获取这些参数时,可以通过以下方法获取: ``` /** * 用于对Controller的参数传递,标准json格式等字符串 */ @property (nonatomic, copy) NSString *paramStr; /** * 根据ParamStr自动转换成字典(若paramStr为标准json格式) */ - (NSDictionary *)paramDict; ``` 6. 组件以Pod形式交付。 7. 为了更好的集成,所以在开发过程中请注意耦合性。不要有太多依赖。 8. 因为组件依赖JPush,而JPush不支持i386,所以在制作Pod的时候需要处理一下i386问题。例如在测试阶段可以在podspec中添加如下代码来避免: ``` s.xcconfig = { 'VALID_ARCHS' => 'arm64 x86_64', } ``` 在本地测试通过无误后,去除上述代码,通过修改validator.rb文件,绕过pod验证并push到 pod trunk。具体方法可自行百度、谷歌。 9. 在制作Pod时,如果有依赖其他第三方库,为了避免组件之间版本冲突,原则上要求必须支持最新的版本,如这样写:s.dependency 'MBProgressHUD',而不去限制版本,如:s.dependency 'MBProgressHUD', '~> 1.1.0'. 10. 在商城提交pod是,请按照下面方式提交,需要指定特定版本: ``` pod 'TMSDK', '0.0.3' ```