How to handle bitcode @ikesyo 関西モバイルアプリ研究会 #7, 2015)10)28 Wed #関モバ
How$to$handle$bitcode@ikesyo
関西モバイルアプリ研究会!#7,!2015)10)28!Wed
#関モバ
@ikesyo
!ikesyo_nnid
いけしょー/池田翔京都でフリーランスのiOSエンジニア(時々Android)しています
フリュー㈱のモバイル開発のチームにジョイン中。
✨!Contribu*ons!✨
• Himotoki
• Reac,veCocoa
• Carthage
• APIKit
• Result
• AMScrollingNavbar
Xcode&7
App#Thinning
App#Thinning• App$Thinning$(iOS,$tvOS,$watchOS)
• Slicing$(iOS,$tvOS)
• Bitcode
• On5Demand$Resources$(iOS,$tvOS)
Bitcode
Bitcode• LLVM%IR%embedded%in%binaries
• iOS9%4%LLVM%bitcode基礎知識%4%Qiita
• iOS9%4%Xcode7でのembed4bitcodeオプション%4%Qiita
• Carthage%と%Bitcode%対応についてのまとめ%4%意識低い開発者のBlog
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
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
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
!!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)$...
*.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.
*.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..."
Carthage(0.9.4is#released#yesterday!!with%the%bitcode+support%features!!
!!Happy%bitcoding!!!!
Thank&you❗"