Download - Dynamic frameworks tips
Dynamic(frameworks(0ps@ikesyo
関西モバイルアプリ研究会!#9,!2015)12)22!Tue
#関モバ
@ikesyo
!ikesyo_nnid
いけしょー/池田翔京都でフリーランスのiOSエンジニア(時々Android)しています
フリュー㈱のモバイル開発のチームにジョイン中。
✨!Contribu*ons!✨
• Himotoki
• Carthage
• Reac0veCocoa
• APIKit
• Result
• AMScrollingNavbar
try!%Swi)2016.3.2~2016.3.4
東京・渋谷
Today's(Topics1. Nested(frameworks?
2. Dynamic(Frameworks(and(app(launch(<me
Nested&frameworks?
Nested&frameworks• Foo.framework/Frameworks/Bar.framework
• How0to0add0framework0with0inner0framework0in0an0app070Issue0#688070Carthage/Carthage
• Nested0Frameworks?070Issue0#844070Carthage/Carthage
Nested&frameworks&can&be&used?
Nested&frameworks&can&be&used?• OS$Xでは使えるが、iOSでは実質的に使えない。
• iTCのバリデーションで蹴られる。!
• Framework$inside$embedded$framework$6$Issue$#3440$6$CocoaPods/CocoaPods
• [TargetIntegrator]$Only$embed$applicaGon$and$unit$test$bundle$targets$by$mrackwitz$6$Pull$Request$#3489$6$CocoaPods/CocoaPods
フレームワークをフレームワークに埋め込まず、アプリレベルでリンク、埋め込みをしましょう。
Dynamic(frameworks(andapp#launch#)me
• Dynamic)frameworks(=Dynamic)libraries)のロードでアプリの起動に時間が掛かる。⌚
• App)launch)9me)increased);)Issue)#586);)artsy/eigen
• stepanhruda/dyldDimageDloadingDperformance
• johnno1962/Accelerator
Dynamic(frameworksのロード時間• アプリ起動時の環境変数に2つの値をセットする。
• DYLD_PRINT_APIS
• DYLD_PRINT_STATISTICS
Sta$cally(linked(Swi/(object(files!❗
Sta$cally(linked(Swi/(object(files!❗• stepanhruda/dyld/image/loading/performance
• johnno1962/Accelerator
• App<launch<=me<increased<><Issue<#586<><artsy/eigen
• SwiEのオブジェクト(.oファイル)は静的リンクできる<❗
• OTHER_LDFLAGSに-filelistでオブジェクトファイルのリストを指定する。
• .frameworkをリンクしなくなるので、バンドルのリソースは使えない(NSBundle.bundleForClassは使えない)
• 静的ライブラリー(.aファイル)が作れるわけではなさそう。
Sta$cally(linked(Swi/(object(files!❗The$workaround$I$talked$about$above$has$now$officially$passed$App$Store$review!
—"@stepanhruda
❗!To!be!careful!for!❗❗!micro!frameworks!❗
!!Happy%frameworking!!!!
Thank&you❗"