Приложение Swift, загруженное из системы управления версиями, не работает на моей машине, работает на коллегах

Мы с коллегой берем на себя приложение для iOS, размещенное на GitLab. Это приложение используетcocopods, а каталог Pods включен в репозиторий. Насколько я понимаю, мы должны иметь возможность вытащить репо и запустить его в Xcode без проблем.

Мой коллега может загрузить приложение из системы управления версиями и запустить его на своем компьютере. У меня возникают ошибки, такие как «Не удается найти тип« AnimationView »в области видимости». У него MacBook M1, у меня MacBook Air на базе Intel. Я открываю файл рабочей области, созданный CocoaPods, а не xcodepro.

Вот список вещей, которые я пробовал:

  • Регенерация модулей через командную строку, запустив pod reintegrate, затем pod update, открыв Xcode и очистив папку сборки, а затем снова запустив.
  • Изменение минимальной цели развертывания iOS в Xcode на максимальную цель развертывания модулей в моем подфайле.
  • Изменение архитектуры в настройках сборки приложения на i386 и x86_64, а не по умолчанию.
  • Нажатие «Обновить до рекомендуемых настроек», когда Pods выдает предупреждение.

Кажется, ни один из них не работает, я в растерянности на данный момент. Поскольку он работает на компьютере моего коллеги, я предполагаю, что должно быть что-то не так с тем, как мое приложение обнаруживает библиотеки или как оно компилируется.

Вот мой подфайл:

# Uncomment the next line to define a global platform for your project
platform :ios, '13.0'

target 'projectname' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for projectname
  pod 'Purchases'
  pod 'Firebase/Analytics'
  pod 'Firebase/Core'
  pod 'Firebase/Storage'
  pod 'Firebase/Database'
  pod 'Firebase/Firestore'
  pod 'Firebase/Auth'
  pod 'SwiftyJSON'
  pod 'CleanyModal'
  pod 'MagicTimer'
  pod 'lottie-ios'
  pod 'FBSDKCoreKit'

end
pod install --verbose не показывает ошибок?
Larme 14.02.2023 19:30

@Larme Нет ошибок при запуске pod install --verbose

Oscar A Garcia 14.02.2023 19:34
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц....
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем...
Оптимизация React Context шаг за шагом в 4 примерах
Оптимизация React Context шаг за шагом в 4 примерах
При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после...
0
2
73
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я подозреваю, что проблема не связана с стручками.

Причина этого в том, что если вы запускаете новый проект iOS Xcode с именем emptyproj, а затем закрываете проект iOS в Xcode, вы можете затем перейти в этот каталог проекта и поместить Podfile в этот каталог с указанным выше содержимым, но с именем projectname заменен на emptyproj, тогда вы можете сделать

pod install

А затем, как только он будет создан emptyproj.xcworksapce, откройте его в Xcode.

Вы заметите, что нет символа AnimationView. Есть только LottieAnimationView.

Таким образом, отсутствующий символ должен быть в реальном приложении на GitLab, а не в зависимостях модуля.

Что я предлагаю, так это посмотреть на все этапы сборки в сборке проекта, чтобы увидеть, запускаются ли какие-либо сценарии, зависящие от архитектуры.

Другая стратегия отладки заключается в том, чтобы ваш коллега подключился к вашей машине и самостоятельно выполнил настройку на вашей машине, что может привести к успеху (неупомянутый шаг) или неудаче (более убедительное доказательство того, что это вопрос, связанный с машиной или архитектурой).

Ага, именно это и произошло. Я изменил AnimationView на LottieAnimationView, и он скомпилировался. Мой коллега, должно быть, использовал более старую версию lottie-ios!

Oscar A Garcia 17.02.2023 19:35

Похоже, у вас другая версия lootie, попросите вашего коллегу проверить версию, которую он использует в данный момент.

Для этого вы можете использовать команду:

pod outdated

Когда вы запускаете устаревший модуль, CocoaPods будет перечислять все модули, которые имеют более новые версии, чем те, которые перечислены в Podfile.lock.

Затем

Используйте модуль с конкретной версией, например:

  pod 'lottie-ios', '3.5.0'

Вместо:

  pod 'lottie-ios'

Если вы не добавили версию при запуске «установки модуля», вы получите самую новую доступную версию.

А AnimationView является частью библиотеки лотереи. После добавления номера версии запустите «pod install».

В таком случае вы можете запросить Podfile.lock вашего коллеги и проверить уже установленную конкретную версию соответствующего модуля, и если есть какие-либо несоответствия с установленной версией с вашей, обновите файл вашего модуля, добавив это версию, а затем установить модуль. а также, если вам, ребята, не нужно работать с последней версией модулей, всегда лучше использовать модуль с версиями.

Другие вопросы по теме