Мне позвонил представитель 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 нет никаких указаний ни на то, ни на другое, но я не уверен, что это имеет значение.
Я пытался отправить новый двоичный файл с помощью Application Uploader, и у меня не было проблем, но я обеспокоен тем, что получу отказ в процессе проверки, и хочу сделать все возможное, прежде чем дойти до этого момента, или, по крайней мере, иметь возможность защитить я против отказа.
РЕДАКТИРОВАТЬ: С тех пор я отправил свое приложение с расширением для часов, скомпилировал его с помощью тех же инструментов, упомянутых выше, и получил одобрение магазина приложений, несмотря на телефонный звонок Apple с предупреждением. Я обновил свой набор инструментов до Xamarin.iOS 12 и XCode 10 и заказал Apple Watch 4. Я оставлю этот вопрос открытым, чтобы посмотреть, станет ли проблема более ощутимой (и предупреждение Apple более законным) с новым набором инструментов.