我之前偶尔会遇到启动( launch )时间过久,点了 App ,出现 launch image ,然后就卡住,因为 iOS9 出来了,应用启动时间不能超过 20 秒,所以会导致自动退出。
我开始以为是第一屏的内容太多,在加载导致的,但当我建了一个空 project ,再试的时候,我完全觉得这确实是一个问题。
情况跟 stackoverflow 上这个问题一模一样, http://stackoverflow.com/questions/31080284/ ,但我的载入时间比他还久。
io 在模拟器和 debug 模式下,完全没有问题,但 release 的版本后在真机测试,开启时间非常的久, Console 里只有这一句一直重复:
Sep 22 09:58:05 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:07 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:09 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:11 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:12 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:14 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:16 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:19 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:21 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:23 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:25 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:27 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:29 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:31 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:33 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:35 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:36 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:38 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:40 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Sep 22 09:58:42 yellows-iPhone installd[4677] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
我在用这个方法 http://stackoverflow.com/a/31573908/1297795 再调试,发觉 93%的时间花在了 load images 上,但我是个空项目,完全没有内容,那么 images 只能在 pods 里了,我找了一圈,就算是 pods 里所有的图片加起来,也就几十张, iOS 不可能载入几张图片就花了 20 秒,并且只是 release ,真机有问题。
我重新做了 CertificateSigningRequest.certSigningRequest 和描述文件,因为我搜到有些问题说重新做一个证书就可以,但我试过还是不行,我又尝试新建一个 app id ,再走一遍,也是不行。
我重新整理了一下流程,用 cocoapods 的人不少,我觉得这确实是一个问题,不少人会遇到。
环境 Xcode 7 + iOS9 ,用 cocoapods ,并且 pod 里有 swift 的项目,并且用 use_frameworks!
podfile
文件,存在项目目录podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'AFNetworking', '~> 1.3.4'
pod 'YTKKeyValueStore'
pod 'JGProgressHUD'
pod 'ODRefreshControl'
pod 'WCAlertView'
pod 'Reachability'
pod 'InfinitePagingView'
pod 'NJKWebViewProgress'
pod 'M13BadgeView'
pod 'Masonry'
pod 'MJRefresh' , '~> 2.4.7'
pod 'Colours' , '~> 5.6.2'
pod 'ViewUtils'
pod "SDVersion"
pod 'NSDate+TimeAgo'
pod 'TPKeyboardAvoiding'
pod 'AutoSlideScrollView'
pod 'ZipArchive'
pod 'imglyKit' , '~> 2.4'
你会发现,启动时间超过了十秒才进去,如果开启 iOS9 的省电模式,会超过 20 秒,我试过将 podfile 删掉一些,虽然启动时间有变短一点点,但还是要非常久。
当 app 在你手机上了,你尝试将他完全退出,双击 home ,关掉,然后运行一些其他 app ,再回到手机开启 app ,时间跟开始一样。
stackoverflow 那位题主有份代码可直接供你测试, https://github.com/hlung/TrySlowAppSwift ,一定要在真机,模拟器没有问题。
相关问题: http://stackoverflow.com/questions/31080284/
相关代码: https://github.com/hlung/TrySlowAppSwift
错误 log :SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
关键字: cocoapods, use_frameworks!, swift, launch, SecTrustEvaluate
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.