При сборке того же приложения (на Ma c VS2019) из того же подготовленного zip-архива с удаленными папками bin и obj и очищенным решением непосредственно перед сборкой я получаю разные IPA-архивы.
В одном из jenkins отсутствуют файлы Assets.car и приложения, поэтому приложение не отображает значок главного экрана и spla sh во время загрузки. Во время цели _CopyResourcesToBundle, которая должна скопировать все необходимые ресурсы, она дает:
Building target "_CopyResourcesToBundle" partially, because some output files are out of date with respect to their input files.
Поскольку она работает в частичном состоянии, она, вероятно, не копирует все необходимые файлы.
При сборке на локальной машине с тем же VS2019 (8.4.2) для Ma c и тем же Xcode (11.0) независимо от того, используется ли IDE или терминал, он выдает правильный файл IPA.
Building target "_CopyResourcesToBundle" completely.
...
Output file "bin/iPhone/Release/RssReader.app/AppIcon60x60@2x.png" does not exist.
Output file "bin/iPhone/Release/RssReader.app/AppIcon76x76@2x~ipad.png" does not exist.
Output file "bin/iPhone/Release/RssReader.app/Assets.car" does not exist.
...
bin/iPhone/Release/RssReader.app/AppIcon60x60@2x.png
LogicalName=AppIcon60x60@2x.png
Optimize=false
OriginalItemSpec=obj/iPhone/Release/actool/bundle/AppIcon60x60@2x.png
OutputPath=bin/iPhone/Release/RssReader.app/AppIcon60x60@2x.png
bin/iPhone/Release/RssReader.app/AppIcon76x76@2x~ipad.png
LogicalName=AppIcon76x76@2x~ipad.png
Optimize=false
OriginalItemSpec=obj/iPhone/Release/actool/bundle/AppIcon76x76@2x~ipad.png
OutputPath=bin/iPhone/Release/RssReader.app/AppIcon76x76@2x~ipad.png
bin/iPhone/Release/RssReader.app/Assets.car
LogicalName=Assets.car
Optimize=false
OriginalItemSpec=obj/iPhone/Release/actool/bundle/Assets.car
OutputPath=bin/iPhone/Release/RssReader.app/Assets.car
Приведенная выше часть, очевидно, отсутствует при сборке на jenkins.
Это похоже на несколько других потоков, когда другие боролись с отсутствующими активами и очищали некоторые туманные папки кэша Xamarin, добавляя и удаляя ресурсы в проекте с помощью Перестройка, очистка и удаление папок bin / obj.
Это не тот случай, когда приложение всегда создается на очищенной рабочей области в расположении tmp с удаленными папками bin и obj и очищается перед сборкой. Добавление / удаление и перемещение местоположения ресурса также не помогает.