Комментарии ()

    +
    T
    >

    PhoneGap | Cordova apache > Пуш уведомления IOS

    /* Превью

    Добро пожаловать в ад

    */

    Пуш уведомления на йос

    Дока от гугла

    На этом этапе приложение уже должно работать збс и быть в эпсторе.

    Сборка приложения осуществляется на винде, потом через мак заливается в аппстор

    Настройки серверов и сервисов

    1. Маска, резиновые перчатки, идём в кабинет разработчика эпл
      Раздел "Certificates, Identifiers & Profiles" - "Keys" - Создаём ключ для пушей, качаем его, файл ****.p8
    2. Создаём новый проект в FireBase там добавляем платформу IOS
      Вводим id приложения, и id приложения в app store.
      Качаем GoogleService-Info.plist и запихиваем в корень, в проект он автоматом загониться
    3. Идём снова в firebase, открываем проект под йос, листаем в самый низ и добавляем "Team ID", из панели разработчика эпл
      Жамкаем там же ниже "Generate key pair"
      Потом на вкладку Cloud Messaging и подгружаем "APNs Authentication Key" из загружаем скаченный файл ****.p8,
    4. Так же в FireBase в проекте нужно включить Firebase In-App Messaging API, пройдя по ссылке https://console.developers.google.com/apis/api/firebaseinappmessaging.googleapis.com/overview?project=##### введя вметсо ##### id проекта в FireBase
    5. В меню firebase найти Crashlytics во вкладке Release & Monitor и включить
    6. В меню firebase найти Analytics и включить если не включили при старте, так как в конфигах он всё равно будет и будет выдавать ошибки

    Настройки приложения на Windows

    1. Добалвяем необходимые плагины в приложение, для работы уведомлений
      
              cordova plugin add cordova-plugin-firebasex
              cordova plugin add cordova-plugin-androidx
              cordova plugin add cordova-plugin-androidx-adapter
            
      cordova-plugin-firebase-lib это старый форк cordova-plugin-firebasex, его лучше не использовать
      в веб версии cordova-plugin-firebasex не работает, а значит надо кроме кода из документации пакета добавлять проверку на существования window.FirebasePlugin и тд.
      для йос версии при создании проекта через винду, потребуется дополнение cocoapods, а для его работы надо руби, гит и курл, в общем под йос как обычн) хорошая дока есть тут. К сожалению в последнем пункте при запуске pod install возникает ошибка Could not open library 'libcurl.dll' которая исправляется следующим образом
      Хороший гайд по настройке cordova-plugin-firebasex
      Если ты %USER_NAME% собираешь проект на винде под йос, то вот ещё лови ошибку, verify_xcode_license_approved!: invalid byte sequence in UTF-8 для исправления нужно перевести кодировку текущего терминала в UTF-8 для этого ввести chcp 65001
      И снова про йос и винду, если видишь could not find included file, pods.debug.xcconfig, 4 подобные строчки, в корне проекта удали содержание файлов pods-debug.xcconfig и pods-release.xcconfig но сами файлы должны остаться. Ну или удалить лишний адрес, оставить только папку с проектом.
      Для йос ещё нужно запускать проект через файл .xcworkspace, иначе кокоподсы просто не подключатся(
      1. Пересобираем проект под йос
      2. phonegap platform rm ios
      3. Если собираем на винде, меняем кодировку консоли
        chcp 65001
        а то кокоподсы взбесятся
      4. phonegap platform add ios
      5. Удаляем путь к приложению оставив только название в файлах platforms/ios/Pdofile, platforms/ios/pods-debug.xcconfig, platforms/ios/pods-release.xcconfig, если в последних двух ссылок нет, значит что то не работает, удалить и добавить проект заново должно попочь

    После чего проект копируем на мак для заливки в эпстор и тестирования

    Настройка приложения в Mac

    1. Самый ад, на маке нужно в приложение добавить cocoapods, устанавливаем его, в папке проекта запускаем Дока
      pod install --verbose
    2. На маке запускаем ".app.xcworkspace" чтобы подтянулись кокоподсы, и в левом меню кроме настроек сертификатов для самого приложения нужно настраивать и кокопод
    3. Теперь ад, вторая очередь.. запускаем приложение в xCode через эмулятор айфона, и смотрим консоль, там будет херова гора ошибок, а самая жестьв том что они там идут сплошным текстом который тяжело выделить и с которым тяжело работать.
      FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:\ https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging\ to ensure proper integration.\
      Synchronous remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo=\{NSDebugDescription=The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.\}\

      Для решения нужно добавить Info.plist GADIsAdManagerApp с параметром true

      GADIsAdManagerApp
              
      Включить тег менеджер идём по адресу https://tagmanager.google.com Создаём новый проект В рабочей области ещем в верхнем меню публикацию, Публикуем, нас перебрасывает в версии, качаем файл, В корне проекта на маке создаём папку Container и запихиваем туда скаченный файл Дока от гугла для этой магии
      Failed to download settings Error Domain=FIRCLSNetworkError Code=-5 "(null)" UserInfo=\{status_code=404, type=2, request_id=, content_type=text/html; charset=utf-8\}\
      1. В меню firebase найти Crashlytics во вкладке Release & Monitor и включить
      2. В меню firebase найти Analytics и включить если не включили при старте, так как в конфигах он всё равно будет и будет выдавать ошибки
      3. Смотреть чтобы эти конфиги были в Podfile
        pod 'Firebase/Crashlytics'
        pod 'Firebase/Analytics'

        и в pods.json

        "Firebase/Analytics": {
            "name": "Firebase/Analytics",
            "count": 1
        },
        Tag Manager API
    4. Теперь загоняем приложение в appstore