Отсутствие ресурсов в IPA при создании приложения Xamarin iOS с использованием msbuild на jenkins - PullRequest
1 голос
/ 25 января 2020

При сборке того же приложения (на 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 и очищается перед сборкой. Добавление / удаление и перемещение местоположения ресурса также не помогает.

enter image description here

...