18
How to handle bitcode @ikesyo 関西モバイルアプリ研究会 #7, 2015)10)28 Wed #関モバ

How to handle bitcode

Embed Size (px)

Citation preview

Page 1: How to handle bitcode

How$to$handle$bitcode@ikesyo

関西モバイルアプリ研究会!#7,!2015)10)28!Wed

#関モバ

Page 2: How to handle bitcode

@ikesyo

!ikesyo_nnid

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

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

Page 4: How to handle bitcode

Xcode&7

Page 5: How to handle bitcode

App#Thinning

Page 6: How to handle bitcode

App#Thinning• App$Thinning$(iOS,$tvOS,$watchOS)

• Slicing$(iOS,$tvOS)

• Bitcode

• On5Demand$Resources$(iOS,$tvOS)

Page 7: How to handle bitcode

Bitcode

Page 9: How to handle bitcode

ENABLE_BITCODE• The%project%se-ng%for%enabling%bitcode

• ENABLE_BITCODE=NO%=>%No%bitcode

• ENABLE_BITCODE=YES%=>

• bitcode(marker%is%embedded%for%build%ac:on

• full(bitcode%is%embeded%for%archive%ac:on

Page 10: How to handle bitcode

BITCODE_GENERATION_MODE• ENABLE_BITCODE=YES"with"build"ac)on"=>

• BITCODE_GENERATION_MODE=marker

• ENABLE_BITCODE=YES"with"archive"ac)on"=>

• BITCODE_GENERATION_MODE=bitcode

• =marker:"/fembed/bitcode/marker"is"passed"to"the"compiler

• =bitcode:"/fembed/bitcode"is"passed"to"the"compiler

Page 11: How to handle bitcode

BITCODE_GENERATION_MODE• Se$ng'BITCODE_GENERATION_MODE=bitcode'explicitly'enables'embedding'full'bitcode'for'build'ac8on.

• BITCODE'support'A'Issue'#535'A'Carthage/Carthage

• Support'embedding'bitcode'when'ENABLE_BITCODE=YES'by'ikesyo'A'Pull'Request'#839'A'Carthage/Carthage

Page 12: How to handle bitcode

!!Without'full'bitcode!!ld:$warning:$full$bitcode$bundle$could$not$be$generated$because$

'XXX/XXX'$was$built$only$with$bitcode$marker.$The$library$must$be$generated$from$Xcode$archive$build$with$bitcode$enabled$(Xcode$

se>ng$ENABLE_BITCODE)

Invalid$Bundle$J$Failed$to$verify$bitcode$in$XXX.framework/XXX:$error:$Bundle$only$contains$bitcodeJmarker$App.app/Frameworks/

XXX.framework/XXX$(armv7)$...

Page 13: How to handle bitcode

*.bcsymbolmap,files!❗❓• Required)for)mapping)bitcode)with)dSYM)files.

• Must)be)included)in)the)archive)if)you)check)on)both)"Include)app)symbols)for...")and)"Include)bitcode")when)you)validate)or)upload)to)iTC.

The$archive$did$not$contain$<DVTFilePath:0x7f88ca959ef0:'/Users/username/Library/Developer/Xcode/Archives/2015J08J17/

Project$2015J08J17$14.46.29.xcarchive/BCSymbolMaps/DCF72CBFJ7889J372DJB549J2CFA181C32CA.bcsymbolmap'>$as$

expected.

Page 14: How to handle bitcode
Page 15: How to handle bitcode

*.bcsymbolmap,and,Carthage• Copy&bcsymbolmap&files&when&building&by&kballard&8&Pull&Request&

#853&8&Carthage/Carthage

• Workaround&at&the&moment&(Carthage&0.9.3)

• When&using&bitcodeHenabled&frameworks&built&by&Carthage,&

you&should&check&off&"Include&app&symbols&for&your&

applicaNon..."

Page 16: How to handle bitcode

Carthage(0.9.4is#released#yesterday!!with%the%bitcode+support%features!!

Page 17: How to handle bitcode

!!Happy%bitcoding!!!!

Page 18: How to handle bitcode

Thank&you❗"