Получих обаждане от представител на Apple, който ми каза, че приложението ми, което има разширение за WatchOS, не е компилирано с поддръжка на Bitcode и че ако се опитам да изпратя допълнителни актуализации, те ще бъдат отхвърлени.
Това е приложение за Xamarin.iOS. Използвам Visual Studio 2017 15.8.2, Xamarin.iOS 11.14.0.14 и XCode 9.4.1.
Доколкото знам, Bitcode е активиран в моите проекти за WatchOS от известно време и бях с впечатлението, че вече щях да имам откази досега, ако случаят не беше такъв (последната актуализация е преди по-малко от 4 седмици ).
И в двата проекта за WatchOS и WatchOS Extension имам следните опции за проекта за компилациите ми в AppStore:
<MtouchUseLlvm>True</MtouchUseLlvm>
<MtouchEnableBitcode>True</MtouchEnableBitcode>
Не знам как да докажа, че Bitcode действително е активиран в получените двоични файлове. Опитах да използвам otool:
$ otool -l MyApp.ipa/Payload/MyApp.app/Watch/MyAppWatch.app/MyAppWatch | grep bitcode
(no output)
$ otool -l MyApp.ipa/Payload/MyApp.app/Watch/MyAppWatch.app/MyAppWatch | grep __LLVM
(no output)
$ otool -l MyApp.ipa/Payload/MyApp.app/Watch/MyAppWatch.app/MyAppWatch/PlugIns/MyAppWatchExtension.appex/MyAppWatchExtension | grep bitcode
(no output)
$ otool -l MyApp.ipa/Payload/MyApp.app/Watch/MyAppWatch.app/MyAppWatch/PlugIns/MyAppWatchExtension.appex/MyAppWatchExtension | grep __LLVM
segname __LLVM
segname __LLVM
Така че изглежда, че проектът Watch Extension има активиран LLVM, но нищо не показва, че Bitcode е активиран. Самият проект Watch няма индикация за нито едно от двете, но не съм сигурен дали това има значение.
Опитах да изпратя нов двоичен файл с помощта на програмата за качване на приложения и нямах проблеми, но се притеснявам, че ще получа отказ по време на процеса на преглед и искам да направя каквото мога, преди да стигна до този момент или поне да мога да защитя себе си срещу отказ.
РЕДАКТИРАНЕ: Оттогава изпратих приложението си с разширение за гледане, компилирано със същите инструменти, споменати по-горе, и получих одобрение от магазина за приложения, въпреки предупредителното телефонно обаждане на Apple. Актуализирах своя набор от инструменти до Xamarin.iOS 12 и XCode 10 и поръчах Apple Watch 4. Ще оставя този въпрос отворен, за да видя дали проблемът става по-осезаем (и предупреждението на Apple по-легитимно) с новия набор от инструменти.