#build #xamarin.ios #zip #app-store #ipa
#сборка #xamarin.ios #zip #app-store #ipa
Вопрос:
У меня есть приложение Xamarin для iOS в VisualStudio 2019 на ПК с Windows 10. Я создаю его на ПК, и когда это возможно, затем щелкаю правой кнопкой мыши проект и выбираю Показать IPA-файл на сервере сборки, затем на моем Mac я загружаю файл в App Store с помощью Transporter. Я сталкиваюсь с этими проблемами:
-
Всякий раз, когда я собираю, сборка сообщает о сбое с сообщением «Произошла ошибка при распаковке файла binAd-HocMyApp.app.dSYM.zip : Не удалось найти часть пути ‘C:MyDirectoryMyApp.iOSbinAd-HocMyAppiOS.app.dSYM ‘.» Исторически это не вызывало никаких проблем — мы по-прежнему могли загружать IPA в app Store и развертывать наше приложение, — но я включаю его на случай, если это имеет отношение к другим проблемам.
-
Иногда моя сборка завершается с ошибкой, сообщающей, что она «была отключена во время ожидания ответа на сообщение в разделе xvs / Build / … /execute-task /MyApp.iOS / …Codesign» или «Не удается подключиться к серверу Mac с адресом = ‘192.111.111.111’ и пользователем =’Мое имя пользователя’. Сборка не может быть продолжена без подключения «. Я предполагаю, что причиной этого должна быть проблема с Wi-Fi, хотя все компьютеры находятся рядом друг с другом и рядом с моим маршрутизатором, что кажется странным. Иногда, когда я пытаюсь выполнить сопряжение с Mac, я также получаю сообщение «Ошибка, не удалось подключиться к com. Попробуйте еще раз. Была предпринята попытка получить доступ к сокету способом, запрещенным его правами доступа.» В любом случае, это заставляет меня задуматься, есть ли у меня какой-либо способ 1) подключить Mac к ПК или 2) выполнить сборку непосредственно на Mac, а не через VS на ПК, даже если я пишу код на ПК?
-
Во время сборки я периодически получаю сообщение об ошибке «/Users/myUser/Library/Caches /Xamarin / mtbs /builds/MyApp.iOS//bin/Ad-Hoc/MyAppiOS.app: ошибка внутреннего компонента MyApp.iOS C:Program Files (x86) Microsoft Visual Studio 2019 Professional MSBuild Xamarin iOS Xamarin.iOS.Common.targets 2003». Если я заблокирую все цепочки ключей на Mac, это исчезнет при следующей сборке, но затем оно снова появится через несколько сборок.
-
Как только сборка завершится только с .dSym.zip ошибка, в большинстве случаев опция «Показать файл IPA на сервере сборки» по-прежнему не отображается (не выделена серым цветом — ее вообще нет в меню), когда я щелкаю правой кнопкой мыши по проекту iOS. Чтобы обойти это, я скопировал файл на Mac через S3. Мне интересно, почему опция не отображается, и есть ли способ просто найти встроенный файл на Mac, а не копировать его из Windows?
-
Затем я использую Transporter на Mac для загрузки файла IPA в Apple Store. Он всегда может прочитать информацию о версии и сообщает, что файл доставлен. Однако часто затем я получаю электронное письмо от Apple, в котором говорится, что сборка завершилась неудачно, потому что «ITMS-90688: этот IPA недопустим — при распаковке IPA мы получили сообщение об ошибке [ Подпись конца центрального каталога не найдена. Либо этот файл не является zip-файлом, либо он представляет собой один диск из архива, состоящего из нескольких частей. В последнем случае центральный каталог и комментарий к zipfile будут найдены на последних дисках этого архива. распаковать: не удается найти каталог zipfile в одном из MyAppiOS.ipa или MyAppiOS.ipa.zip и не удается найти MyAppiOS.ipa.ZIP, точка. ] Убедитесь, что IPA можно разархивировать перед повторной попыткой загрузки.».
-
В ответ на эту ошибку я попытался разархивировать файл IPA и обнаружил, что на ПК его всегда можно разархивировать, если я изменю расширение на .zip, а на моем Mac я всегда могу разархивировать его, чтобы увидеть каталог полезной нагрузки, и элемент MyAppiOS внутри него никогда не может быть открыт — я получаю всплывающее окно «Вы не можете открыть приложение «MyAppiOS», потому что оно не поддерживается на этом типе Mac». — в любом случае , файлы, которые нравятся Apple, и те, которые мне не кажутся одинаковыми, когда я пытаюсь разархивировать.
Мои единственные идеи — попытаться выяснить, как открыть и собрать приложение на моем Mac, позвонить в компанию, производящую мой маршрутизатор, и продолжать пытаться снова и снова, пока, наконец, одна из сборок не заработает… что иногда буквально занимает часы.
Большое спасибо за любую помощь, которую вы можете предложить!
Комментарии:
1. Сообщение об ошибке похоже на это askubuntu.com/a/54955 В этой кабине я пытаюсь исправить zip-файл, используя это osxdaily.com/2019/05/12/… При создании IPA создаются ли какие-либо другие файлы в этой папке? У вас низкая скорость Интернета? Когда вы архивируете проект iOS непосредственно на Mac (вместо использования Windows), вы все еще видите ту же проблему? Используете ли вы последние обновления на обоих устройствах?
2. Большое спасибо @Saamer за предложения! Я не уверен, как исправить zipfile, потому что я не знаю, что он сломан, пока я не отправлю его в Apple Store, после чего, насколько я понимаю, мне нужно собрать его заново с новым номером версии для повторной отправки? Я не знаю, как заархивировать проект iOS непосредственно на Mac, но согласен, что было бы неплохо попытаться выяснить, когда у меня будет немного времени. Когда я обновляю VS на ПК, а затем выполняю сопряжение с Mac, я разрешаю ему обновлять VS для Mac и обновляю XCode, если будет предложено. Скорость моего Интернета очень высока, хотя у меня иногда возникают проблемы с подключением.
3. Вот как вы архивируете на своем Mac с помощью VS для Mac youtube.com/watch?v=nTXa9Ubyh3A
4. У меня возникла та же проблема, которую вы описали в # 1. Я никогда не смог бы завершить сборку релиза без обходных действий. обходной путь заключается в просмотре папки «iOS bin iPhone» во время компиляции и быстром копировании этой папки MyAppName.iOS.app.dSYM в эту папку вручную, если она исчезнет. Если сборка не выполнялась в 100% случаев, я не знал, что вызвало это. Если вы когда-нибудь найдете решение для этого, пожалуйста, дайте мне знать. Спасибо!
5. Также обратите внимание, что в процессе компиляции. эта папка продолжает удаляться снова и снова. поэтому мне приходится снова и снова вставлять его обратно, чтобы сохранить процесс сборки.