dynamic frameworks tips

Post on 18-Jan-2017

861 Views

Category:

Engineering

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Dynamic(frameworks(0ps@ikesyo

関西モバイルアプリ研究会!#9,!2015)12)22!Tue

#関モバ

@ikesyo

!ikesyo_nnid

いけしょー/池田翔京都でフリーランスのiOSエンジニア(時々Android)しています

フリュー㈱のモバイル開発のチームにジョイン中。

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❗"

top related