volga-volga / react-native-yamap

React Native Yandex Maps | Яндекс Карты | Yandex.MapKit implementation for react native | YandexMaps
148 stars 81 forks source link

Не запускается ios приложение на m1 #139

Closed Melber17 closed 1 year ago

Melber17 commented 2 years ago

При установке react-native-yamap и cocoapods падает такая ошибка:

`ld: in ios/Pods/YandexMapsMobile/YandexMapsMobile.framework/YandexMapsMobile(YMKRouteView_Binding.mm.o), section __DATA/__bss has type zero-fill but non-zero file offset file 'os/Pods/YandexMapsMobile/YandexMapsMobile.framework/YandexMapsMobile' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

2022-07-04 09:21:05.475 xcodebuild[42405:123888] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
2022-07-04 09:21:05.476 xcodebuild[42405:123888] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
** BUILD FAILED **
`

Пробовал использовать как новую ^4.0.17, так и старую ^4.0.3 версию библиотеки. Использую Xcode 13.4.1 версии, мак на m1.

tegozen commented 2 years ago

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

require "json"

Pod::Spec.new do |s|
    package = JSON.parse(File.read(File.join(File.dirname(__FILE__), "package.json")))
    s.name         = "RNYamap"
    s.version      = package["version"]
    s.summary      = package["description"]
    s.homepage     = "vvdev.ru"
    s.license      = "MIT"
    s.author       = { package["author"]["name"] => package["author"]["email"] }
    s.platform     = :ios, "9.0"
    s.source       = { :git => "https://github.com/author/RNYamap.git", :tag => "master" }
    s.source_files = "ios/**/*.{h,m}"
    # s.requires_arc = true

    s.dependency "React"
    s.dependency "YandexMapsMobile", "4.1.0-full"
end
tegozen commented 2 years ago

Приложение собралось видимо ошибку сборки arm в этой версии YandexMapsMobile все же починили, но так как я не знаю obj-c все ошибки отсутствия методов я решил комментированием и приложение не стартует уже по фаталам кода. Ну хотя бы собирается. В общем нужно либо самим разбираться в совестимости этого порта к основной либе последней версии или ждать пока текущий разработчик апнет свою версию до последней версии YandexMapsMobile

tegozen commented 2 years ago

MapKit SDK 4.1.0 (May 18, 2022) List of changes Changes to the map

A new schema layer VMAP3 which supports several modes of displaying map. The following modes are currently available: Default, Transport and Navigation. Added correction of object size on the map based on latitude to compensate for the distortion created by the Mercator projection. You can now add text to point map objects. Of the two classes PolylineMapObject and ColoredPolylineMapObject, only PolylineMapObject is now used because it covers the functions of both classes. MapObject.getParent now returns BaseMapObjectCollection, which is a common parent for MapObjectCollection and ClusterizedPlacemarkCollection. Renamed ZoomFocusPointMode to GestureFocusPointMode. GestureFocusPoint now also affects rotation in AffectsAllGestures mode. Fixed jerks when scrolling the map. Optimized memory consumption. Added the map inspector API for writing UI tests: Map.visibleObjects. A new style format for GeoJSON layers. Made the map more customizable: you can now change icon color. Added the ability to set the 3D model dimensions in pixels. Other changes

Added the ability to build routes for cargo transport taking into account its parameters, including dimensions (length, width, and height), weight, maximum weight allowed, axle load, and load. If a route cannot be built without violating the vehicle parameter restrictions, a route with violations is built, and you can see where the violations occur. For Android only

The minimum supported version is now 5.0. For iOS only

Work in emulators with an M1 processor is supported. Build with Xcode 13.3 is supported. The SDK is now delivered as an xcframework. The minimum supported iOS version is now 12 (13 for an emulator with an M1 processor).

https://yandex.com/dev/maps/mapkit/doc/dg/concepts/versions.html

tegozen commented 2 years ago

После миллиарда пересборок и обновлений всего чего можно запустилось на эмуляторе https://prnt.sc/wlBElXF57MoW - все изменения. на девайс по прежнему не собирается

GilTRipper commented 2 years ago

+1 cобирается на симуляторе, но бьет ошибку при сборке на реально устройстве

tegozen commented 2 years ago

В общем. xcode 13.2.1 позволяет собрать приложение на устройство. https://developer.apple.com/download/all/?q=xcode%2013.2.1 Можно поставить его рядом с последним xcode - они работают отдельно. Единственное что нужно - переключить консольную версию xcode xcode-preferences-locations-command line tools (выбираете нужную вам)

tegozen commented 2 years ago

Однако все же я считаю это костылем( Но пока что думаю обновление этой библиотеки невозможно в связи с тем, что основная библиотека яндекс карт поменяла свое апи в новой версии

GilTRipper commented 2 years ago

@ownikss планируется на ближайшее будущее обновление до 4.1.0-full?

SokolovRU commented 2 years ago

Эмулятор вроде открывается (m1). ( для него сделал новый проект, т.к. старый проект тоже перестал запускаться )

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

Обратите внимание, что rosseta должна быть включена в Xcode и в терминале.

Я возможно поздно дал свой ответ) извините!)

Simulator Screen Shot - iPhone 13 - 2022-07-10 at 17 51 31

Melber17 commented 2 years ago

@SokolovRU не думаете ли вы что запуск с rosseta является костылем? По хорошему бы подождать тогда поддержку на m1 архитектуру

SokolovRU commented 2 years ago

@Melber17 - есть вариант другой - купить мак подешевле =) На самом деле это не костыль, я не думаю, что архитектуру на м1 подвезут в ближайшее время, допустим Гугл карты тоже страдают на м1, у них пользователей больше, но всё равно нормального решения ещё нет.

Melber17 commented 2 years ago

На эмуляторе запустилась карта с rosseta 🚀 @SokolovRU если же есть только сетка, а самой карты нету, то это дело в токене?

image
Melber17 commented 2 years ago

На реальном девайсе история такая же, выдает ошибку даже при помощи rosseta. А новый проект создать нету смысла. Потому что делаю не все с нуля 😥

Mobile/YandexMapsMobile.framework/YandexMapsMobile(YMKRouteView_Binding.mm.o), section __DATA/__bss has type zero-fill but non-zero file offset file /ios/Pods/YandexMapsMobile/YandexMapsMobile.framework/YandexMapsMobile' for architecture arm64
SokolovRU commented 2 years ago

@Melber17 - я не знаю почему у тебя голая сетка. может быть ошибка в ref или приложение просто не отрисовывает ( возможно плохой интернет ) свяжись со мной в тг - давай решать проблему вместе! @thebestpl

мне Яндекс карты тоже нужны, и если реальное устройство не работает, то это проблема общая

GilTRipper commented 2 years ago

@Melber17 голая карта появляется при невалидном API-Key. Нужен апи ключ именно для MapKit.

tegozen commented 2 years ago

@GilTRipper да даже с тестовым валидным нету карты. Через раз еще отображается розовый фон image

image

скажи мне на**? - зачем писать в тикет о том что не собирается приложение с этим пакетом - вообще не связанную с этим информацию? ты умеешь пользоваться issue? или ты думаешь тут сидит круглосуточная поддержка которая решит проблемы твоего кода?

ksielyov commented 6 months ago

+