iOS Appdelegate多个第三方依赖项初始化减慢了应用程序启动速度

时间:2018-03-27 11:48:25

标签: ios swift performance cocoapods custom-controls

我必须在我的项目中使用很多第三方依赖项(主要是分析),并且每一项都建议在其中初始化其sdk

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool

所以我有这样的事情:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {        
        //FB sdk
        FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
        // Firebase
        FirebaseApp.configure()

        // AppsFlyer
        AppsFlyerTracker.shared().appleAppID = AccessKeys.appleAppID

        Fabric.with([Crashlytics.self])
        GMSServices.provideAPIKey(AccessKeys.googleMapsApiKey)

        return true
    }

我认为它会降低应用程序的启动速度,而且在我的AppDelegate中看起来非常难看。我怎样才能改善这一点?在根(初始)视图控制器中初始化其中一些库是一个好主意吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

相信我,如果您对所有这些都有依赖关系,那么您无能为力。在查看您正在使用的库时,我只能提出一件事,即使用Firebase crash reporting而不是Fabric。这至少会删除一个依赖项,因为FirebaseApp.configure()也会初始化Firebase崩溃报告。