2019-01-19

2018年工具使用总结

charles使用提升

  1. 复习之前http协议的抓包步骤;
    1. 将预抓包移动设备和电脑连接同一网络;
    2. 在charls或者电脑设置界面,获取到wifi所在的ip地址;
    3. 移动设备设置网络代理,代理的地址用上面获取到的ip地址,端口可以在Proxy setting 中进行设置,这里默认应该是8888;
    4. 打开移动设备中的应用,在charles中会弹出是否同意弹窗,点击allow即可;
  2. 学会抓https协议的抓包步骤;
    1. 同http协议抓包步骤;
    2. 在Charles的help->ssl proxy->install remote brow or device,获得这书下载地址;
    3. 获得这书地址,在移动设备的浏览器中进行下载并安装,这里安卓和ios的安装可能不同;
      • 安卓需要在高级设置里面安装下载下来的证书
      • ios需要在设置中信任下载的证书
    4. 移动端配置完成后,在Charles中添加待抓取的域名,添加步骤SSL Proxy Setting中添加;

抓包前在charles协议中,都得打开MacOS proxy
如果设备配置代理后,Charles不弹窗提示,则有可能是没有安装证书,可以在help中点击SSL Proxy中选择install证书

崩溃日志字符化

  1. 分析前,需要获取三个文件,分别是崩溃日志,崩溃日志对应的app、崩溃日志对应的dsym文件;
    1. 崩溃日志的导出,可以使用iTools工具导出,得到.ips文件,此文件在之后用到时需要转成.crash文件;
    2. 崩溃日志对应的app,需要开发提供,根据不同打包导出路径去获取,如果是使用xcode手动打包的,可以在Organzier中Archives中找到;
    3. 崩溃日志对应的dsym文件,同步骤2方法获取;
  2. 对比三个文件的uuid是否一致:
    1. 查询app文件的uuid,dwarfdump --uuid ihc.app/ihc
    2. 查询dsym文件的uuid,dwarfdump --uuid ihc.app.dSYM
    3. .crash的uuid直接在文件中可以看到;
  3. 三个文件的uuid一致后,才能正确符号化,将三个文件放到同一个文件夹下,进到文件夹下,执行./symbolicatecrash .crash ./.app.dSYM > new.crash;
    注意!symbolicatecrash执行文件的查找语句 find /Applications/Xcode.app -name symbolicatecrash,找到后赋值到上面的文件夹中
    设置路径export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer

fastlane使用小结

这里简单介绍一下fastlane,该工具主要是用于自动化打包、上传场景,另外还可以用于测试和截图等场景,但是目前在使用中还没涉及。下面是直接介绍在项目中的使用情况,不对安装步骤进行说明,网上很多介绍;

  1. 进入项目目录,执行fastlane init,之后会有配置方式选项,我这选择第四项Manual setup手动配置,之后安装会稍微耗时一会,成功后会在当前文件夹下生产fastlane文件夹、Gemfile文件以及Gemfile.lock文件。

    1. fastlane文件夹中有两个文件,分别是Appfile和fastfile,Appfile文件是编辑项目的信息,如证书名称,开发账号等信息,如果在项目中有正确配置,这里可以不用再改动;
    2. fastfile中编辑所有的action,即所有的lane,可以使用fastlane +laneName来执行,也可以直接fastlane然后再选择对应lane下标;
  2. 项目编译前,先使用cocoapods下第三方库,可以在before_all 中执行cocopods,同时在Gemfile文件中添加gem "cocoapods";

  3. 增加编译语句,支持哪些gym可以在网上查询,这里不全部列举;
    例子

build_app(export_method:"打包方式,可选项app-store ad-hoc packageenterprisedevelopment``developer-id",
scheme:"schemeName",
workspace:"workspaceName",
output_name:"xxx.ipa",
clean:true,
configuration:"Debug/Release",
output_directory:"./xxxName/time/"
)
```
注意!要想支持scheme,必须在manager scheme中勾选对应scheme的shared

  1. 添加插件,fastlane支持添加不同插件,这里以上传到蒲公英插件为例,fastlane add_plugin pgyer,执行成功后,会在fastlane文件下生成一个Pluginfile文件;不同插件的使用可以参考插件的说明;

git包管理

 之前项目也用过git,但是之前一直是独立开发,git只是用作远程仓库使用,其他功能涉及的不多,接下来讲下最近项目git的版本管理。
 分支情况,master->用于存放线上代码,preview->用于存放基于线上和已修复的线上bug,dev->用于开发的版本,在开发过程中可能会有很多处于开发的分支;fix->这个分支用于修复bug,个人修复的话,不用推到远程,修复bug时从preview上拉取,线上bug原则上是只能这样修复,不要再dev上直接修复;
使用场景:

  1. 不同的开发分支都是基于preview,打测试包前,需要从preview拉取代码,因为preview上有已经修复的线上bug;
  2. 如果业务需要将多个dev上的需求合并发布,需要基于其中一个dev拉取一个新分支,然后在新分支基础上去合并其他分支,这样的目的是保证旧的dev的独立性,即使中途要拆分也不用做额外工作。提测后发现了版本bug(即这次需求中产生的bug,非线上bug),直接在提测版本分支上修改。
  3. 审核通过后,将最终提测的版本合并到master,然后从master合并到preview上;
  4. 测试中或者审核阶段,如果有新的需求过来,不要直接基于测试通过版本或者审核版本开发,依然基于preview版本开发,因为这个过程可能中仍有可能发现bug并且该bug不是线上bug,这样会污染新分支,等审核通过上线后,下次提测的时候从preview上拉取最新代码就能保证线上代码合并过来了。
  5. 合并方式可以选择merge或者rebase,如果你的项目是根据git号来管理的话,建议不要使用rebase,因为rebase会破坏代码commit号,当然如果只是本地commit,是可以用rebase。

目前只想到这些工具,之后想到再补充

你可能感兴趣的:(2019-01-19)