CocoaPods на MacBook M1. Проблемма с установкой


#1

Беда с установкой CocoaPods.
Терминал запущен из Rosseta.
$ gem install cocoapods
ERROR: While executing gem … (Gem::FilePermissionError)
You don’t have write permissions for the /Library/Ruby/Gems/2.6.0 directory.


#2

ответ

последний кокоа версии 1.10.0 не работае на М1
нужно устанавливать версию 1.8.4

$ sudo gem install -n /usr/local/bin cocoapods -v 1.8.4

Ещё пишут, что можно кокоа через Брю поставить

  1. установить homebrew
  2. $ brew install cocoapods

ещё решения со стека


Миграция на Xcode 13 и чип Apple M. Проблемы с Firebase (Could not build Objective-C module 'Firebase', 'FirebaseCore/FirebaseCore.h' file not found) [РЕШЕНО]
#3

Я на М1 ставил кокоа без конкретной версии, но не помню какая поставилась, надо мини запускать смотреть.
Помню только что терминал через розетту и устанавливал еще одно расширение, после чего все работало как часы. Все решения находил в интернете.


#4

Вообще есть хоть какие-то проблемы при разработке на М1? А то мой про13 плохо тянет мои проекты - хотел на М1 перейти :slight_smile:


#5

Тоже интересуюсь хочу перейти, пока только положительные отзывы.


#6

MacBook Air m1 8gb + Внешник 2к монитор работает норм, но не забываем что батарейка будет таять на глазах
В разработке:
Были проблемы с Xcode, но с обновой стало легче :grinning:
Проверка шла боевом проекте ( более 20 экранов + работа с Metal )
Инструменты часто вылетали ( висли ), но и на Mac mini 2020 ( Intel ) тоже висли
Для более комфортной работы нужно брать 16gb

Если что-то нужно проверить именно на m1 - пишите ( можно в личку )


#7

В марте Apple должна нам показать новые девайсы
Не торопись!
Плюс первая партия более сырая


#8

В целом вопрос относительно разработки и около всяких штук, как в вопросе у ТС: ну то есть проблемы с кокоа или прочим? Как там докер, завёлся? Пока вроде видно, что почти всегда решение есть. Единственное ясно, что винда не заводится, если она вдруг кому-то нужна.

Я то как раз хотел свой pro13 2019 i5-8257U/8gb на Air M1/16gb поменять :slight_smile:
Самое главное, что у моей прошки оператива лпддр3 ещё - ну кпц же


#9

ну там очевидно, что цена за улетит за 200к (ну так кажется - всё-таки сильно лучше ожидается M1X) - дорого )))


#10

Из того что я ставил на М1: Android Studio, Visual Studio, Xcode, Cocoapods.
У меня Мак мини 16 GB DDR4, SSD 500 GB.
С Xcode проблем не заметил, билд проекта большого (30 экранов + около 15 библиотек) на холодную занимает около 2 минут.
Как уже выше говорилось, Cocoapods надо было подшаманить.
Android Studio и Visual Studio поставились, но для компиляции чего-то не хватало, нужно опять искать решения. Пока не заморачивался.
Все что от самих Apple работает четко. Весь остальной софт, кто не успел обновить архитектуру под М1, приходится делать танцы с бубном.
В остальном все работает шустро. Но я пока мало работал на нем.


#11

На каком нибудь интеле сколько билд этого проекта занимает?


#12

До М1 у меня был PC с i7, SSD и 16 GB DDR4, там Мак был на виртуалке. Этот же проект билдился минут 5.
На старом мак мини 2010 года, этот же проект билдился минут 20, иногда 30.


#13

Mac mini 2020 6 core + 32Gb
Build = 4:49
MacBook Air M1 8Gb
Build = 2:44


#14

Что означают эти строки?
$ gem update --system

Traceback (most recent call last):

32: from /usr/bin/gem:21:in `<main>’

31: from /Library/Ruby/Site/2.6.0/rubygems/gem_runner.rb:53:in `run’

30: from /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:147:in `run’

29: from /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:178:in `process_args’

28: from /Library/Ruby/Site/2.6.0/rubygems/command.rb:323:in `invoke_with_build_args’

27: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:93:in `execute’

26: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:278:in `update_rubygems’

25: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:227:in `rubygems_target_version’

24: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:307:in `which_to_update’

23: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:307:in `each’

22: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:311:in `block in which_to_update’

21: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:158:in `highest_remote_name_tuple’

20: from /Library/Ruby/Site/2.6.0/rubygems/commands/update_command.rb:133:in `fetch_remote_gems’

19: from /Library/Ruby/Site/2.6.0/rubygems/spec_fetcher.rb:90:in `search_for_dependency’

18: from /Library/Ruby/Site/2.6.0/rubygems/spec_fetcher.rb:216:in `available_specs’

17: from /Library/Ruby/Site/2.6.0/rubygems/source_list.rb:98:in `each_source’

16: from /Library/Ruby/Site/2.6.0/rubygems/source_list.rb:98:in `each’

15: from /Library/Ruby/Site/2.6.0/rubygems/spec_fetcher.rb:222:in `block in available_specs’

14: from /Library/Ruby/Site/2.6.0/rubygems/spec_fetcher.rb:256:in `tuples_for’

13: from /Library/Ruby/Site/2.6.0/rubygems/source.rb:192:in `load_specs’

12: from /Library/Ruby/Site/2.6.0/rubygems/remote_fetcher.rb:297:in `cache_update_path’

11: from /Library/Ruby/Site/2.6.0/rubygems/remote_fetcher.rb:254:in `fetch_path’

10: from /Library/Ruby/Site/2.6.0/rubygems/remote_fetcher.rb:215:in `fetch_http’

9: from /Library/Ruby/Site/2.6.0/rubygems/remote_fetcher.rb:321:in `request’

8: from /Library/Ruby/Site/2.6.0/rubygems/request.rb:146:in `fetch’

7: from /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require’

6: from /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require’

5: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/time.rb:3:in `<top (required)>’

4: from /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require’

3: from /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require’

2: from /Library/Ruby/Gems/2.6.0/gems/date-3.1.1/lib/date.rb:4:in `<top (required)>’

1: from /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require’

/Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require’: dlopen(/Library/Ruby/Gems/2.6.0/gems/date-3.1.1/lib/date_core.bundle, 0x0009): missing compatible arch in /Library/Ruby/Gems/2.6.0/gems/date-3.1.1/lib/date_core.bundle - /Library/Ruby/Gems/2.6.0/gems/date-3.1.1/lib/date_core.bundle ( LoadError )


#15

Отвечаю на все вопросы выше.

  1. Проблема cocoapods - решается очень легко нужно запустить терминал через rosetta - и в дальнейшем к сожалению использовать именно его (я сделал копию приложения и поставил флаг розетты и переименовл, чтобы было удобнее). И все будет отлично работать
  2. Скорости сборок проекта - текущий мой рабочий ноутбук macbook pro 2019 i9 (спойлер с декабря веду разработку на air m1 16gb - рабочий как системник в офисе)
    так вот скорости сборки проекта рабочего
    на i9: около 300с - чистая и около 140-160с горячая
    на m1: чистая 140-160 - горячая 70-90
    после произведения оптимизаций сборки проекта горячиии стали i9: 30-50, m1: 20-40
    Так же тесты проводил на макмини м1 8гб
    Эксперименты показали что самый дешевый эир м1 по скорости работы и сборки в икскоде будет шустрее значительнее (на удивление)
    так же на м1 использую VSCode для разработки флаттера - так же проблем никаких нет - все завелось сразу.
    А то что у эира с м1 нет куллера только радость - постоянно тролю коллег мол опять на пол офиса жужжишь).
    Но 1минус есть - он специфичен но тем не менее, запуск проект на симуляторе
    так как на м1 архитектура симулятора арм а не х86 - то внешние либы которые были скомпилированы во фрейморк или статиклибу (ранее, до появления м1 или старый икскод) - не смогут запуститься на симуляторе, т.о. проект не будет билдится на м1 симулятор (я решаю проблему ведя разработку на устройстве реальном)
    Но это так же можно обойти, запустив икскод через розетту (только скорость сборки будет такой как на интеле плюс минус - медленее, но зато будет работать)
    Так что можно ждать марта новые буки, но я не думаю что выпустят м1 дешевый весной, скорее всего будет что-то более производительное и более дорогое, а потому если бюджет ограничен спокойно самый дешевый м1 и радоваться жизни.

#16

Большое спасибо. Про флаттер как раз интересно было. Но думаю 8гб всё равно мало - надо 16 брать


#17

Короче всё равно заказал базовый на 8гб, потому что сегодня на Tmall хорошая скидка в -10к = 90к. Это даже дешевле, чем на сайте Эппл для образования, где базовый обходится 94к. Там ещё штук 50 есть, если что :wink:


#18

может я немного не понял о чём вы, но у меня старые проекты, созданные на интеле без проблем запустились на м1

В целом холодный старт быстрее в 2,5 раза базовой прошки 2019. И то что он не греется и не шумит вообще - счастье. Тот взлетал вообще )))


#19

Не знаю чего там мало, но у меня мини с 8 гб постоянно свободно памяти более 2 гб с запущенным икскодом, симом и прочими прогами.


#20

Да я всё равно взял с 8гб )))
Энергопотребление у Эира на высоте: работал сегодня через удалёнку ЭниДеск с 7 до 16 (9 часов) с перерывами. Система указывала на 3 процесса с высоким потребление - энидеск, сафари, икскод. К 16-00 осталось 75% :thinking::astonished: