Сергей Сергеев

Пользователи
  • Публикации

    48
  • Зарегистрирован

  • Посещение

О Сергей Сергеев

  • Звание
    Продвинутый пользователь
  1. Поставил Токио для проверки, такого я не ожидал, скажу честно. Проект, который достаточно безболезненно двигался с Сиетла в Берлин, и количество глюков уменьшалось, просто "умер" в Токио. в Андроид 4.4.2 просто не стартует после splash экрана, до точки останова на первой же команде не доходит, segmentation fault. В Андр 5.1 , 6.0 хоть запускается. Опять пропадают картинки с кнопок ( допилили). Форма с анимацией, пока идёт соединение в потоке, не анимирует. Шрифт на этой форме искажен, с зелёной обводкой. Форма не закрывается после установки соединения. Сказать что я разочарован, не сказать ничего.
  2. Проблема решена - приложение в Апп сторе. Опишу как решил. Конфигурация - Berlin 10.1 - update 2, Xcode 8. Datasnap сервер, использую tcpIp. Компоненты на клиенте TSqlConnection - для Datasnap, TIdTcpClient - использую для проверки соединения перед открытием ДатаСнар соединения, т.к. в нем не работает ТаймОут и есть вероятность "залипнуть" Сервер так и остался в ИП4 ( вначале хотел перевести его в ип6, но провайдер МТС ответил, что такие адреса не дает, сделал туннель с tunnelbroker.net на тестовый сервер, но так и не пригодилось ( кстати бесплатно, но без гарантии пропускной способности) . Никаких квадратных скобок , если у вас имена хостов а не ИП адреса не нужны. Смысл простой - у обоих компонентов нужно выставить свойства протоколов в зависимости от сети нахождения клиента. Вначале ставлю у обоих ИПв4, если коннект ексептиться - то ставлю ипв6 и еще раз пробую коннектится. и только второй ексепт скажет, что сети действительно нет. function TClientModule1.gethost(aHost : string):string; var dbxProps: TDBXDatasnapProperties; begin try TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; // ставим все в ип4 IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv4; IdTCPClient1.Host:=TabbedForm.Host4; IdTCPClient1.Port:=StrToInt(TabbedForm.port); //порт сервера DataSnap idTCPClient1.ConnectTimeout := 12000; //заданный тайм-аут Assert(SQLConnection1.DriverName = 'DataSnap', 'Driver must be DataSnap'); dbxProps := SQLConnection1.ConnectionData.Properties as TDBXDatasnapProperties; dbxProps.CommunicationProtocol := 'tcp/ip'; dbxProps.CommunicationIPVersion := 'IP_IPv4'; IdTCPClient1.Connect; if IdTCPClient1.Connected then begin //подключились result:=TabbedForm.Host4; TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; IdTCPClient1.Disconnect; end; except on E: Exception do begin //toast ('IPv4 except '+E.Message); try IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv6; IdTCPClient1.Host:= TabbedForm.Host6P; IdTCPClient1.Port:=StrToInt(TabbedForm.port); //порт сервера DataSnap idTCPClient1.ConnectTimeout := 12000; //заданный тайм-аут IdTCPClient1.Connect; if IdTCPClient1.Connected then begin //подключились result:=TabbedForm.Host6DS; TabbedForm.HostDS := TabbedForm.Host6DS; TabbedForm.HostP := TabbedForm.Host6P; IdTCPClient1.Disconnect; dbxProps.CommunicationIPVersion := 'IP_IPv6'; end; except on E: Exception do begin //не подключились result:='Не подключились'; dbxProps.CommunicationIPVersion := 'IP_IPv4'; IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv4; TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; end; end; end; end; Тут немного есть излишества кода - думал что для Ип4 и Ип6 будут разные имена хостов, но сейчас это одно и тоже имя Сервера который находится в Ип4 и не имеет ни выхода ни адреса в ип6. вызвав эту фунцию я заполняю глобальные переменные ( ds- датаснап сервер. P- для пробного открытия ("пинг" )) на самом деле они тоже одинаковые. клиента проверял, как описано http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/ т.е. макбук подключен через 3ж модем в сеть и через WiFi раздает ИпВ6 сеть и Айфон к ней присоединен. Если приложение работает в этой внутренней ипв6 сети, то все - проблема решена - Аппле именно так и проверяет.
  3. ipv6

    что то я так и не понял - обязательно или нет серверу иметь адрес ipv6? сделал, как описано выше, с помощью макбук подключенному в 3ж сеть (ipv4) , расшаренную вай-фай подсеть dns64/nat64, в нее смог приконнектится только Iphone ( два китайских смарта повисли при подключении на словах - получение ИП адреса, один подключается, получает ип6 адрес, но без инета) внизу, если раскрыть 2 адреса в разделе ipv6 есть два длинных ipv6 адреса не очень понимаю - в какой сети iphon - 6 или 4? мой сайт имеющий ipv4 адрес ( по имени хоста) TWebbrowser открывает, в то же время попытка открыть connection ( TIdTcpClient) ipv4 по имени или ип адресу не работает.. exception поставил программу пинг - google.com - показывает его ipv6 адрес. как приконнектится к хосту с ИП4 только?
  4. спасибо за подсказку.. в пнд буду разбираться и со скобками, вокруг хоста, и с адресом сервера..
  5. Режектят из App store, с сообщением Не коннекта в сети Ipv6. Приложение datasnap клиент, коннектится на сервер стандартно через sqlconnection , протокол tcp/ip. Кто-нибудь сталкивался с такой проблемой, как решали? Спасибо.. Пс. Читал в инете сообщения о том что в квадратные скобки надо имя Хоста помещать внутри except, при исключении при коннекте, и якобы должно помочь в сети ipv6.
  6. привет, у меня картинки не пропадали целиком, а "рассыпались" - кое какие точки оставались.. этакий муар, было только в TGlyph а в TImage - все ок, и на одном телефоне поймал только.. переход на Берлин апд - 2 - решило проблему
  7. сделал так : Copy iOSapi.CoreTelephony.pas from C:\Program Files (x86)\Embarcadero\Studio\18.0\source\rtl\ios to your project folder отсюда содержимое файла заменил исходным текстом выше от Zuby. Пример PhoneDialer заработал на Iphone.
  8. Именно так - проверил Delphi Berlin Update 2 , нечто подобное было в Сиетле у меня - свернул приложение - развернул ) - все картинки "полетели" Моя проблема переход на Берлин - решил проблему.. а тут похоже некуда пока переходить..
  9. не открывает и так тоже..
  10. эту кнопку в приложении можно нажать? чтобы пользователь выбирал дальше чем хочет открыть?
  11. Второй день не могу подключить Iphone к Os X на VMWare. Как устройство видит его, но не фото не показывает с него ( на Iphone выскакивает - разрешаете подключонному компу ? подтверждаю и ничего) ни музыку, ну и главное в Xcode его нет.. Кто нибудь так вообще работает? или в виртуалке только симулятор можно запустить.. в чем проблема может быть?
  12. Где это уже неоднакратно описано? подскажите плиз.. не верю, что никто не знает..
  13. DataSnap - на сервере - TFDConnection к MS SQL Серверу, TFDStoredProc + TDataSetProvider - на клиенте - TSQLConection к Datasnap Server , TDSProviderConnection, TClientDataSet и на нем уже через LiveBindings сидят TListView преобразований по пути никаких, в Android, Win и OSX проблем нет - информация из базы - по русски, в ИОС симуляторе - кракозябры ..
  14. спасибо за совет, но чет не нашел, где это поставить..
  15. У меня вставка вызова этой функции в OnCreate (впрочем не важно - до вызова не доходит) на симуляторе IOS (10.0) Xcode 8, вызывает крах приложения еще на этапе Application.Initialize; ( win, android, OSX - работает) под отладчиком так выглядит : Thread Exit: Thread ID: 16131. Process dyld_sim (590) First chance exception at $00018FE4. Exception class EObjectiveC with message 'ObjectiveC class CTCallCenter could not be found'. Process dyld_sim (590) в инете есть ссылки.. решения , я так понял нет пока.. интересно и на device будет вылетать? пока не могу проверить.. но это совсем тогда грустно.. в IOS позвонить нельзя что ли?