Перейти к содержанию
Fire Monkey от А до Я
  • 0

Пуши в IOS


Anatoliy

Вопрос

Здравствуйте.

Делаю все согласно блога ZuBy:

http://blog.rzaripov.kz/2017/02/firebase-android-ios.html

http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html

для попытки получать пуши на IOS. С Андроид все ОК.

Код отрабатывает нормально переменная FPushService инициализируется. Все выглядит нормально. Однако пуши не приходят. Пробовал отправить с консоли - результата нет, тишина. Посмотрел таблицу PushTokens новая запись не появилась. Похоже что-то упущено, однако ошибок никаких нет, поэтому непонятно куда копать...

Может подскажите, на что обратить внимание?

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Модераторы

на форуме уже были обсуждения по этому поводу, также комменты в блоге

вроде тут это обсуждалось

Ссылка на комментарий
  • 0

Прочитал, но видимо туплю не вижу ответа...

Цитата

Из БЛОГА цитата:
Проблема с отправкой была не только при использовании php-скрипта, но и при попытках отправки через консоль Firebase. Даже при посыле на все iOS-устройства (без указания каких-либо конкретных токенов). Проблема в конце-концов решилась заведением под iOS отдельного проекта в Firebase, получении своего Server key.

Я сделал отдельный проект в Firebase для IOS. Правда не понимаю, а зачем нам новый Server key если согласно статьи он в проекте для IOS не используется, а используется для Андроид. В IOS используем строку $config['app']['name'] = "имя пакета";

Короче уткнулся я в комментарий из блога:

Цитата

Lunar Tecnologi2
The DeviceToken variable is empty, when the operating system is IOS. Android works perfectly. Would you help me?

И присоединяюсь к автору Lunar Tecnologi2 с тем же вопросом: Would you help me? :)

 

 

Ссылка на комментарий
  • 0
  • Модераторы
8 минут назад, Anatoliy сказал:

Я сделал отдельный проект в Firebase для IOS. Правда не понимаю, а зачем нам новый Server key если согласно статьи он в проекте для IOS не используется, а используется для Андроид. В IOS используем строку $config['app']['name'] = "имя пакета";

кто вам это сказал? Эта строчка Вам о чем нить говорит?

 $headers = array('Authorization: key=' . $server_key, 'Content-Type: application/json');

 

10 минут назад, Anatoliy сказал:

И присоединяюсь к автору Lunar Tecnologi2 с тем же вопросом: Would you help me? :)

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

Ссылка на комментарий
  • 0

Тут, как я понял, похожая проблема, но на java:

https://stackoverflow.com/questions/42869452/ios-device-token-sent-empty-to-database

Вроде для IOS 10 надо что-то сделать дополнительно, но не понятно как.... у меня IOS 10.2.1...

Цитата

I am not sure in which ios version you are testing or developing but for iOS 10 you need to do additional setup for retrieve/get device token.

 

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0
Цитата

кто вам это сказал? Эта строчка Вам о чем нить говорит?

Я не совсем понимаю, согласно статье мы в ручную заполняем это:

$config['db']['host'] = "ххх"; // localhost "расположение БД"
$config['db']['name'] = "ххх"; // "название БД";
$config['db']['user'] = "ххх"; // "пользователь";
$config['db']['pass'] = "ххх"; // "пароль к БД";

$config['push']['server_key'] = "Ключ из Андроид проекта firebase";
$config['app']['name'] = "имя пакета"; //для проекта IOS

А где мы вставляем ключ server_key если проект IOS?

 

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0
  • Модераторы
34 минуты назад, Anatoliy сказал:

$config['push']['server_key'] = "Ключ из Андроид проекта firebase";
$config['app']['name'] = "имя пакета"; //для проекта IOS

А где мы вставляем ключ server_key если проект IOS?

у меня в статье один проект для двух платформ, поэтому server_key один

если вы делаете разные проекты в консоле, то модернизируйте серверную часть или сделайте разные папки для ios/android

Ссылка на комментарий
  • 0
Цитата

у меня в статье один проект для двух платфом, поэтому server_key один и тот.

если вы делаете разные проекты в консоле, то модернизируйте серверную чать или сделайте разные папки для ios/android

Ясно. Спасибо. Разнесу по разным папкам т.к. серверную часть из-за не знания PHP модернизировать не смогу.

 

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0

Не получается с IOS никак...

Скопировал сервер в новую папку. Изменил ссылку запроса и ключ в api.php. Делаю пуш и получаю ERROR Пуши не отправлены... :(

Уперлись мы с Lunar Tecnologi2 в "любимый" IOS. :)

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0

1. server_key в новой папке установлен в ios ключ проекта в api.php

2. С учетом новой папки изменен метод RegisterDevice.

3. Изменена ссылка запроса пуша с учетом новой папки.

4. CFBundleIdentifier установлен как и и $config['app']['name']

 

Ссылка на комментарий
  • 0
  • Модераторы

с сертификатом проблем нет? на устройстве разрешен прием пуш для приложения?

тест же на реальном устройстве?

Ссылка на комментарий
  • 0

Собран реальный стенд с IOS10. Для приложения включен режим прием пушей.

Сертификаты в консоли встали нормально....

Упущена какая-то деталь для IOS10, наверное...

P.S.

Для IOS проекта важны отличия от андроид только тут:

$config['push']['server_key'] = "";
$config['app']['name'] = "";

Идентификатор отправителя FAndroidServerKey используем в андроид проекте.

Все верно?

 

 

 

push.jpg

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0
  • Модераторы

да вроде все верно, когда на устройстве запускаете есть запрос на разрешение принимать пуши?

Ссылка на комментарий
  • 0

В IOS10 не получается получить пуши (XCode 8). Изыскания привели к блогу Марко Кенту: http://blog.marcocantu.com/blog/delphi-blog-week-47.html

Цитата

Delphi Blogs of the Week/Month 47 


Is there a delphi berlin fix for this issue?
http://stackoverflow.com/questions/39504334/push-notification-not-receiving-in-ios-10 

Sorry to dump the issue here,. but it's a weird issue
so far.

Дискуссия по ссылке stackoverflow вокруг java кода, не понял есть ли решение для студии Берлин и пушей в IOS10... :(

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0

Те у кого успешно работают пуши в иос не могли бы выложить скришот, чтобы сравнить списки фреймворков.

P.S.

В этой статье сказано что для пушей надо еще кучу добавить:

http://delphiworlds.com/2017/05/adding-firebase-cloud-messaging-mobile-apps-part-2/

AdSupport
AudioToolbox
AVKit
CoreAudio
CoreMIDI
MediaToolbox
Metal
SystemConfiguration
UserNotifications

Но автор идет сложным путем, а у ZuBy в статье все просто и понятно. И он не пишет в блоге, что надо что либо добавлять...

P.P.S.

Похоже для иос 10 надо таки добавить этот фреймоврк судя по описанию:

https://code.tutsplus.com/tutorials/an-introduction-to-the-usernotifications-framework--cms-27250

но хотелось бы мнение гуру узнать, а не гадать на кофейной гуще... Спасибо.

 

sdk.jpg

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0
  • Модераторы

специально для тех, у кого не получается пуши в iOS (10+)

следуя статье выполнить настройку проекта в консоли firebase

Рабочая связка Delphi Berlin Up2 + Xcode 8.1 (на момент написания была такая конфигурация и остается до сих пор такой)

Сегодня я собрал проект под iOS и выложил в АппСтор (проходит модерацию)

Вот скриншот с реального девайса, установленного через TestFlight

 

photo_2017-08-05_20-12-43.jpg

 

тыц

Ссылка на комментарий
  • 0

Спасибо за исследование!

Теперь понятно, что мы и  автор этой статьи: ссылка

где-то делаем ошибку, ибо автор утверждает, что для иос только его метод работает.

Вопросы:

1. Как XCode c версии 8.0 обновить до 8.1? Опыта в этом вопросе нет.

2. Вы когда делаете из статьи: 27) Далее находим их в Связке ключей и делаем экпорт (можно установить пароль) то вы просто экспортируете корень узла или раскрываете его выделяете сам узел и приватный ключ и делаете экспорт?

3. Есть ли отличия фреймворков из картинки выше с вашими настройками?

Спасибо.

Ссылка на комментарий
  • 0
  • Модераторы
28 минут назад, Anatoliy сказал:

1. Как XCode c версии 8.0 обновить до 8.1? Опыта в этом вопросе нет.

29 минут назад, Anatoliy сказал:

2. Вы когда делаете из статьи: 27) Далее находим их в Связке ключей и делаем экпорт (можно установить пароль) то вы просто экспортируете корень узла или раскрываете его выделяете сам узел и приватный ключ и делаете экспорт?

с приватным ключом

30 минут назад, Anatoliy сказал:

3. Есть ли отличия фреймворков из картинки выше с вашими настройками?

если вы ничего сами не добавляли, то разницы не будет.

выполните все что выше написано в постах, должно заработать

Ссылка на комментарий
  • 0

Если экспортировать узел в развернутом виде, с заданием пароля, то затем не удается загрузить его в FCM. Причина не понятна. :(

 

 

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0
  • Модераторы

хотя сейчас посмотрел в статье, экспорт делаю только одного элемента

главное что у вас к сертификату приватный ключ привязан

Ссылка на комментарий
  • 0

На хостинге PHP7.1

В лог пишет предупреждение:

[Thu Aug 31 10:15:53 2017] [warn] [client 92.112.55.71] mod_fcgid: stderr: PHP Parse error:  syntax error, unexpected '[' in /pushTest/push.php on line 36

Как правильно в коде убрать это замечание?

Eще добавил в файл push.php строку print_r($result); перед строкой if ($result === false) return false; в функции pushSend. Ответ тогда такой:

{"multicast_id":6484835755858346767,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}{"status":"ERROR","text":"Пуши не отправлены"}

 

Изменено пользователем Anatoliy
Ссылка на комментарий
  • 0

Впервые получил пуш на IOS...

Ответ в фаерфоксе:

JSON: SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 144 of the JSON data

Необработанные данные: {"multicast_id":4877008421064121783,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1504184482619837%652001c8652001c8"}]}{"status":"OK"}

и пуш приходит...

Изменения в файле ZuBy push.php: 'sandbox' => true,

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...