2019-01-19

<center>2018年工具使用總結(jié)

charles使用提升

  1. 復習之前http協(xié)議的抓包步驟;
    1. 將預抓包移動設備和電腦連接同一網(wǎng)絡;
    2. 在charls或者電腦設置界面,獲取到wifi所在的ip地址;
    3. 移動設備設置網(wǎng)絡代理,代理的地址用上面獲取到的ip地址,端口可以在Proxy setting 中進行設置,這里默認應該是8888;
    4. 打開移動設備中的應用,在charles中會彈出是否同意彈窗,點擊allow即可;
  2. 學會抓https協(xié)議的抓包步驟;
    1. 同http協(xié)議抓包步驟;
    2. 在Charles的help->ssl proxy->install remote brow or device,獲得這書下載地址;
    3. 獲得這書地址,在移動設備的瀏覽器中進行下載并安裝,這里安卓和ios的安裝可能不同;
      • 安卓需要在高級設置里面安裝下載下來的證書
      • ios需要在設置中信任下載的證書
    4. 移動端配置完成后,在Charles中添加待抓取的域名,添加步驟SSL Proxy Setting中添加;

抓包前在charles協(xié)議中,都得打開MacOS proxy
如果設備配置代理后,Charles不彈窗提示,則有可能是沒有安裝證書,可以在help中點擊SSL Proxy中選擇install證書

崩潰日志字符化

  1. 分析前,需要獲取三個文件,分別是崩潰日志,崩潰日志對應的app、崩潰日志對應的dsym文件;
    1. 崩潰日志的導出,可以使用iTools工具導出,得到.ips文件,此文件在之后用到時需要轉(zhuǎn)成.crash文件;
    2. 崩潰日志對應的app,需要開發(fā)提供,根據(jù)不同打包導出路徑去獲取,如果是使用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一致后,才能正確符號化,將三個文件放到同一個文件夾下,進到文件夾下,執(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)上很多介紹;

  1. 進入項目目錄,執(zhí)行fastlane init,之后會有配置方式選項,我這選擇第四項Manual setup手動配置,之后安裝會稍微耗時一會,成功后會在當前文件夾下生產(chǎn)fastlane文件夾、Gemfile文件以及Gemfile.lock文件。

    1. fastlane文件夾中有兩個文件,分別是Appfile和fastfile,Appfile文件是編輯項目的信息,如證書名稱,開發(fā)賬號等信息,如果在項目中有正確配置,這里可以不用再改動;
    2. fastfile中編輯所有的action,即所有的lane,可以使用fastlane +laneName來執(zhí)行,也可以直接fastlane然后再選擇對應lane下標;
  2. 項目編譯前,先使用cocoapods下第三方庫,可以在before_all 中執(zhí)行cocopods,同時在Gemfile文件中添加gem "cocoapods";

  3. 增加編譯語句,支持哪些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

  1. 添加插件,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上直接修復;
使用場景:

  1. 不同的開發(fā)分支都是基于preview,打測試包前,需要從preview拉取代碼,因為preview上有已經(jīng)修復的線上bug;
  2. 如果業(yè)務需要將多個dev上的需求合并發(fā)布,需要基于其中一個dev拉取一個新分支,然后在新分支基礎上去合并其他分支,這樣的目的是保證舊的dev的獨立性,即使中途要拆分也不用做額外工作。提測后發(fā)現(xiàn)了版本bug(即這次需求中產(chǎn)生的bug,非線上bug),直接在提測版本分支上修改。
  3. 審核通過后,將最終提測的版本合并到master,然后從master合并到preview上;
  4. 測試中或者審核階段,如果有新的需求過來,不要直接基于測試通過版本或者審核版本開發(fā),依然基于preview版本開發(fā),因為這個過程可能中仍有可能發(fā)現(xiàn)bug并且該bug不是線上bug,這樣會污染新分支,等審核通過上線后,下次提測的時候從preview上拉取最新代碼就能保證線上代碼合并過來了。
  5. 合并方式可以選擇merge或者rebase,如果你的項目是根據(jù)git號來管理的話,建議不要使用rebase,因為rebase會破壞代碼commit號,當然如果只是本地commit,是可以用rebase。

目前只想到這些工具,之后想到再補充

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容