<center>2018年工具使用總結(jié)
charles使用提升
- 復習之前http協(xié)議的抓包步驟;
- 將預抓包移動設備和電腦連接同一網(wǎng)絡;
- 在charls或者電腦設置界面,獲取到wifi所在的ip地址;
- 移動設備設置網(wǎng)絡代理,代理的地址用上面獲取到的ip地址,端口可以在Proxy setting 中進行設置,這里默認應該是8888;
- 打開移動設備中的應用,在charles中會彈出是否同意彈窗,點擊allow即可;
- 學會抓https協(xié)議的抓包步驟;
- 同http協(xié)議抓包步驟;
- 在Charles的help->ssl proxy->install remote brow or device,獲得這書下載地址;
- 獲得這書地址,在移動設備的瀏覽器中進行下載并安裝,這里安卓和ios的安裝可能不同;
- 安卓需要在高級設置里面安裝下載下來的證書
- ios需要在設置中信任下載的證書
- 移動端配置完成后,在Charles中添加待抓取的域名,添加步驟SSL Proxy Setting中添加;
抓包前在charles協(xié)議中,都得打開MacOS proxy
如果設備配置代理后,Charles不彈窗提示,則有可能是沒有安裝證書,可以在help中點擊SSL Proxy中選擇install證書
崩潰日志字符化
- 分析前,需要獲取三個文件,分別是崩潰日志,崩潰日志對應的app、崩潰日志對應的dsym文件;
- 崩潰日志的導出,可以使用iTools工具導出,得到.ips文件,此文件在之后用到時需要轉(zhuǎn)成.crash文件;
- 崩潰日志對應的app,需要開發(fā)提供,根據(jù)不同打包導出路徑去獲取,如果是使用xcode手動打包的,可以在Organzier中Archives中找到;
- 崩潰日志對應的dsym文件,同步驟2方法獲??;
- 對比三個文件的uuid是否一致:
- 查詢app文件的uuid,dwarfdump --uuid ihc.app/ihc
- 查詢dsym文件的uuid,dwarfdump --uuid ihc.app.dSYM
- .crash的uuid直接在文件中可以看到;
- 三個文件的uuid一致后,才能正確符號化,將三個文件放到同一個文件夾下,進到文件夾下,執(zhí)行./symbolicatecrash .crash ./.app.dSYM > new.crash;
注意!symbolicatecrash執(zhí)行文件的查找語句 find /Applications/Xcode.app -name symbolicatecrash,找到后賦值到上面的文件夾中
設置路徑export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
fastlane使用小結(jié)
這里簡單介紹一下fastlane,該工具主要是用于自動化打包、上傳場景,另外還可以用于測試和截圖等場景,但是目前在使用中還沒涉及。下面是直接介紹在項目中的使用情況,不對安裝步驟進行說明,網(wǎng)上很多介紹;
-
進入項目目錄,執(zhí)行fastlane init,之后會有配置方式選項,我這選擇第四項Manual setup手動配置,之后安裝會稍微耗時一會,成功后會在當前文件夾下生產(chǎn)fastlane文件夾、Gemfile文件以及Gemfile.lock文件。
- fastlane文件夾中有兩個文件,分別是Appfile和fastfile,Appfile文件是編輯項目的信息,如證書名稱,開發(fā)賬號等信息,如果在項目中有正確配置,這里可以不用再改動;
- fastfile中編輯所有的action,即所有的lane,可以使用fastlane +laneName來執(zhí)行,也可以直接fastlane然后再選擇對應lane下標;
項目編譯前,先使用cocoapods下第三方庫,可以在before_all 中執(zhí)行cocopods,同時在Gemfile文件中添加gem "cocoapods";
-
增加編譯語句,支持哪些gym可以在網(wǎng)上查詢,這里不全部列舉;
例子
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
- 添加插件,fastlane支持添加不同插件,這里以上傳到蒲公英插件為例,fastlane add_plugin pgyer,執(zhí)行成功后,會在fastlane文件下生成一個Pluginfile文件;不同插件的使用可以參考插件的說明;
git包管理
?之前項目也用過git,但是之前一直是獨立開發(fā),git只是用作遠程倉庫使用,其他功能涉及的不多,接下來講下最近項目git的版本管理。
?分支情況,master->用于存放線上代碼,preview->用于存放基于線上和已修復的線上bug,dev->用于開發(fā)的版本,在開發(fā)過程中可能會有很多處于開發(fā)的分支;fix->這個分支用于修復bug,個人修復的話,不用推到遠程,修復bug時從preview上拉取,線上bug原則上是只能這樣修復,不要再dev上直接修復;
使用場景:
- 不同的開發(fā)分支都是基于preview,打測試包前,需要從preview拉取代碼,因為preview上有已經(jīng)修復的線上bug;
- 如果業(yè)務需要將多個dev上的需求合并發(fā)布,需要基于其中一個dev拉取一個新分支,然后在新分支基礎上去合并其他分支,這樣的目的是保證舊的dev的獨立性,即使中途要拆分也不用做額外工作。提測后發(fā)現(xiàn)了版本bug(即這次需求中產(chǎn)生的bug,非線上bug),直接在提測版本分支上修改。
- 審核通過后,將最終提測的版本合并到master,然后從master合并到preview上;
- 測試中或者審核階段,如果有新的需求過來,不要直接基于測試通過版本或者審核版本開發(fā),依然基于preview版本開發(fā),因為這個過程可能中仍有可能發(fā)現(xiàn)bug并且該bug不是線上bug,這樣會污染新分支,等審核通過上線后,下次提測的時候從preview上拉取最新代碼就能保證線上代碼合并過來了。
- 合并方式可以選擇merge或者rebase,如果你的項目是根據(jù)git號來管理的話,建議不要使用rebase,因為rebase會破壞代碼commit號,當然如果只是本地commit,是可以用rebase。
目前只想到這些工具,之后想到再補充