tft每日頭條

 > 科技

 > ios安裝很慢

ios安裝很慢

科技 更新时间:2025-01-09 15:24:38

我們開發完一個項目将來肯定是要進行編譯,然後打包上傳到APPStore提供給用戶下載,那我們最終打包是什麼格式呢?其實是一個IPA包,那首先我們來看看安裝包的組成

安裝包(ipa)主要由可執行文件、資源組成

  • 資源(圖片、音頻、視頻等)
  • 采取無損壓縮:網上有很多,我常用的像 TinyPng、Squoosh、圖好快 等等
  • 去除沒用到的資源:大家可以試試GitHub上有個開源項目可以檢測項目裡沒用的資源文件 GitHub傳送門
  • 可執行文件瘦身
  • 編譯器優化 現在的新版XCode已經自動給優化了,如果你的項目比較舊的話,可以去XCode設置這些選項,不确定的話最好都去搜下然後設置下 Strip Linked Product、Make Strings Read-Only、Symbols Hidden by Default設置為YES
  • 去掉異常支持,Enable C Exceptions、Enable Objective-C Exceptions設置為NO, Other C Flags添加-fno-exceptions
  • 利用AppCode(這個軟件是收費的,可以試用30天,當然有錢的大家可以支持下正版,沒錢的話想辦法也可以搞到)檢測未使用的代碼:菜單欄 -> Code -> Inspect Code
  • 編寫LLVM插件檢測出重複代碼、未被調用的代碼(這個比較高級,也比較複雜,涉及到的知識有點多,後面會用專門一篇文章來記錄)
  • 還有個東西叫LinkMap(可以查看可執行文件的具體組成),我們可以用Xcode來生成LinkMap文件
  • LinkMap
  • 不過系統生成的這個txt文件可能看着比較難分析,那麼我們可以借助三方工具來分析LinkMap文件,GItHub上有開源Mac OS項目,大家下載完編譯完就可以用了
  • 解析LinkMap文件工具傳送門

解析前

# Sections:

# Address Size Segment Section

0x100000F30 0x00000553 __TEXT __text

0x100001484 0x0000003C __TEXT __stubs

0x1000014C0 0x00000074 __TEXT __stub_helper

0x100001534 0x00000D26 __TEXT __objc_methname

0x10000225A 0x00000070 __TEXT __objc_classname

0x1000022CA 0x00000ADA __TEXT __objc_methtype

0x100002DA4 0x00000090 __TEXT __cstring

0x100002E34 0x0000017E __TEXT __entitlements

0x100002FB4 0x00000048 __TEXT __unwind_info

0x100003000 0x00000018 __DATA_CONST __got

0x100003018 0x00000020 __DATA_CONST __cfstring

0x100003038 0x00000018 __DATA_CONST __objc_classlist

0x100003050 0x00000020 __DATA_CONST __objc_protolist

0x100003070 0x00000008 __DATA_CONST __objc_imageinfo

0x100004000 0x00000050 __DATA __la_symbol_ptr

0x100004050 0x00001308 __DATA __objc_const

0x100005358 0x00000018 __DATA __objc_selrefs

0x100005370 0x00000010 __DATA __objc_classrefs

0x100005380 0x00000008 __DATA __objc_superrefs

0x100005388 0x00000008 __DATA __objc_ivar

0x100005390 0x000000F0 __DATA __objc_data

0x100005480 0x00000188 __DATA __data

# Symbols:

# Address Size File Name

0x100000F30 0x00000039 [ 2] -[ViewController viewDidLoad]

0x100000F70 0x00000080 [ 3] -[AppDelegate application:didFinishLaunchingWithOptions:]

0x100000FF0 0x00000120 [ 3] -[AppDelegate application:configurationForConnectingSceneSession:options:]

0x100001110 0x0000006C [ 3] -[AppDelegate application:didDiscardSceneSessions:]

0x100001180 0x00000090 [ 4] _main

0x100001210 0x000000A0 [ 5] -[SceneDelegate scene:willConnectToSession:options:]

0x1000012B0 0x00000040 [ 5] -[SceneDelegate sceneDidDisconnect:]

0x1000012F0 0x00000040 [ 5] -[SceneDelegate sceneDidBecomeActive:]

0x100001330 0x00000040 [ 5] -[SceneDelegate sceneWillResignActive:]

0x100001370 0x00000040 [ 5] -[SceneDelegate sceneWillEnterForeground:]

0x1000013B0 0x00000040 [ 5] -[SceneDelegate sceneDidEnterBackground:]

0x1000013F0 0x00000020 [ 5] -[SceneDelegate window]

0x100001410 0x00000040 [ 5] -[SceneDelegate setWindow:]

0x100001450 0x00000033 [ 5] -[SceneDelegate .cxx_destruct]

0x100001484 0x00000006 [ 6] _NSStringFromClass

解析後:

ios安裝很慢(iOS性能優化09-安裝包瘦身)1


One More Thing

點擊查看 2020—課程列表 全網IT各種資源有需求的可以微我,或者你喜歡的課程都可以給我發鍊接剩下的我來搞定

ios安裝很慢(iOS性能優化09-安裝包瘦身)2

喜歡的朋友可以掃描關注我的公衆号(多多點贊,多多打賞,您的支持是我寫作的最大動力)關注有福利哦

ios安裝很慢(iOS性能優化09-安裝包瘦身)3

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved