Kitty Опубликовано 2 октября, 2016 Опубликовано 2 октября, 2016 Пустое приложение. Код из документации. Попытка получить фото с камеры: void __fastcall TForm1::TakePhotoFromCameraAction1DidFinishTaking(TBitmap *Image) { Image1->Bitmap->Assign(Image); } При нажатии на кнопку приложение вылетает. Кому нибудь удавалось получить фото в С++ Builder Берлин в iOS? Спасибо. Цитата
0 Kitty Опубликовано 4 октября, 2016 Автор Опубликовано 4 октября, 2016 Здравствуйте. Попробовала Ваш пример. При нажатии на кнопку приложение упало. Стенд: Windows 7 RAD Berlin Up1 -> MacBook Pro OS XEI Capitan 10.11.6 -> iPhone 5 Вот, что я вижу в опциях SDK. Может тут что-то не так? Цитата
0 master webs Опубликовано 5 октября, 2016 Опубликовано 5 октября, 2016 13 часов назад, Kitty сказал: Здравствуйте. Попробовала Ваш пример. При нажатии на кнопку приложение упало. Стенд: Windows 7 RAD Berlin Up1 -> MacBook Pro OS XEI Capitan 10.11.6 -> iPhone 5 Вот, что я вижу в опциях SDK. Может тут что-то не так? попробуйте удалить sdk 8.4 и загрузить 10 Kitty и Равиль Зарипов (ZuBy) 2 Цитата
0 Kitty Опубликовано 5 октября, 2016 Автор Опубликовано 5 октября, 2016 Удалила, перегрузила. Теперь как на картинке. Не помогло. Цитата
0 Kitty Опубликовано 6 октября, 2016 Автор Опубликовано 6 октября, 2016 В целом удалось перевести проект с TBeacon из андроид в iOS. Однако камера, обращение к галереи не работают. Короче не работает все что связано с TActionList. Жуть... Цитата
0 Администраторы Brovin Yaroslav Опубликовано 6 октября, 2016 Администраторы Опубликовано 6 октября, 2016 Только что, Kitty сказал: В целом удалось перевести проект с TBeacon из андроид в iOS. Однако камера, обращение к галереи не работают. Короче не работает все что связано с TActionList. Жуть... Если вручную вызвать получение фотки с камеры работает? Цитата
0 Kitty Опубликовано 6 октября, 2016 Автор Опубликовано 6 октября, 2016 Цитата Если вручную вызвать получение фотки с камеры работает? Простите это как? Я чисто в рамках мануала. Цитата
0 Администраторы Brovin Yaroslav Опубликовано 6 октября, 2016 Администраторы Опубликовано 6 октября, 2016 Taking Pictures Using FireMonkey Interfaces Pax Beach, Равиль Зарипов (ZuBy), Rusland и 1 другой 4 Цитата
0 Kitty Опубликовано 6 октября, 2016 Автор Опубликовано 6 октября, 2016 Попробовал этот пример. Правда там ошибка: void __fastcall DoMessageListener(const TObject *Sender, TMessage const *M); А надо для компиляции: void __fastcall DoMessageListener(const TObject *Sender, TMessageBase const *M); Однако приложение при нажатии на кнопку снова выпало. Странно... Цитата
0 Администраторы Brovin Yaroslav Опубликовано 6 октября, 2016 Администраторы Опубликовано 6 октября, 2016 Так, ошибку воспроизвести удалось. Буду смотреть. Kitty 1 Цитата
0 Kitty Опубликовано 6 октября, 2016 Автор Опубликовано 6 октября, 2016 Большое спасибо! Проверти, пожалуйста, также открытие галереии с фотографиями и вызов окна поделиться sharesheet. Это стандартные примеры с одной строчкой кода. Спасибо. Цитата
0 Администраторы Brovin Yaroslav Опубликовано 7 октября, 2016 Администраторы Опубликовано 7 октября, 2016 Так, проблему изучил. Решение очень простое. Начиная с iOS10 приложение, если хочет использовать камеру, библиотеку и другие сторонние сервисы, должно добавлять в манифест специальные ключи. Для камеры и библиотеки эти ключи изображены ниже: Добавьте эти ключи и все будет ок. Подробнее про ключи можно прочитать тут: Cocoa Keys Kitty, Равиль Зарипов (ZuBy) и Pax Beach 3 Цитата
0 Kitty Опубликовано 7 октября, 2016 Автор Опубликовано 7 октября, 2016 Большое спасибо, счастье наступило! Цитата
0 Kitty Опубликовано 26 октября, 2016 Автор Опубликовано 26 октября, 2016 (изменено) Ранее обсуждалось тут: http://fire-monkey.ru/topic/3240-ios-ios10-приложение-падает-при-использовании-камеры-в-ios-10/?sortby=date&page=3 С чем может быть связано, что при обращении к камере и галереи, приложение на 64 bit падает. Флаги прописаны везде. Для 32 bit все работает. С++ Builder 10.1 Up.1 Телефон iPhone 5. Спасибо. Изменено 26 октября, 2016 пользователем ZuBy Объединил темы Цитата
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 26 октября, 2016 Модераторы Опубликовано 26 октября, 2016 16 минут назад, Kitty сказал: С++ Builder 10.1 Up.1 Телефон iPhone 5. 64 битный процессор с IPhone 5S Цитата
0 Kitty Опубликовано 26 октября, 2016 Автор Опубликовано 26 октября, 2016 Да на iPnone 5 - 32 бит. Но я поставила галочку для совместимости кода и ожидала адекватного поведения приложения.Приложение запускается, все работает, кроме камеры и галереи. Цитата
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 26 октября, 2016 Модераторы Опубликовано 26 октября, 2016 проверьте конечный info.plist там точно внесены эти ключи? Kitty 1 Цитата
0 Kitty Опубликовано 26 октября, 2016 Автор Опубликовано 26 октября, 2016 в папке проект\iOSDevice64\Release есть файл проект.info.plist и в нем есть строки из Version Info: <key>NSPhotoLibraryUsageDescription </key> <string>To choose photo</string> <key>NSCameraUsageDescription </key> <string>Get photo</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>iBeacon detection</string> Может этот файл необходимо принудительно добавить в проект через Project Manager ? Спасибо Цитата
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 26 октября, 2016 Модераторы Опубликовано 26 октября, 2016 2 минуты назад, Kitty сказал: в папке проект\iOSDevice64\Release есть файл проект.info.plist и в нем есть строки из Version Info: <key>NSPhotoLibraryUsageDescription </key> <string>To choose photo</string> <key>NSCameraUsageDescription </key> <string>Get photo</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>iBeacon detection</string> Может этот файл необходимо принудительно добавить в проект через Project Manager ? Спасибо нет, этот файл итак зашит в файле. ищите проблему в другом Kitty 1 Цитата
0 Kitty Опубликовано 26 октября, 2016 Автор Опубликовано 26 октября, 2016 На получение фотографии из галереи одна строчка кода: void __fastcall TFormCamera::TakePhotoFromLibraryAction1DidFinishTaking(TBitmap *Image) { Image1->Bitmap->Assign(Image); } На 32 bit работает, а на 64 bit приложение вываливается в тот момент, когда возникает окно разрешить доступ к галереи. На что все таки обратить внимание? Спасибо. Цитата
0 Kitty Опубликовано 27 октября, 2016 Автор Опубликовано 27 октября, 2016 (изменено) Правильно ли я поняла, что надо дать ключу другое имя, например для камеры будет Privacy - Camera usage description исходя из этой ссылки: http://stackoverflow.com/questions/39465687/nscamerausagedescription-in-ios-10-0-runtime-crash/39488067#39488067 Цитата I have the same issue, added the NSCameraUsageDescription in info.plist, but still crashes with the same message. Have you managed to solve it? You have to add this below key in info.plist. Privacy - Camera usage description или для RAD проектов это переименование не подходит? Изменено 27 октября, 2016 пользователем Kitty Цитата
0 Kitty Опубликовано 27 октября, 2016 Автор Опубликовано 27 октября, 2016 Переименование не к чему не приводит. В 64 bit приложении когда пытаюсь воспользоваться галереей или сделать фото, то приложение не всегда падает, иногда выдает: Error: Invalid class typecast Цитата
0 Kitty Опубликовано 27 октября, 2016 Автор Опубликовано 27 октября, 2016 (изменено) Замена TActionList кодом в 64 битном приложении тоже не помогла: http://docwiki.embarcadero.com/RADStudio/XE8/en/Taking_Pictures_Using_FireMonkey_Interfaces чего то проекту 64 bit не хватает... Изменено 27 октября, 2016 пользователем Kitty Цитата
0 Kitty Опубликовано 27 октября, 2016 Автор Опубликовано 27 октября, 2016 Последовательность действий (на стенде EL Capitan): 1. Деплоим на телефон 32 битную версию в релизе. 2. При обращении к галерее/фото видим окно с просьбой разрешить обращение к галереи. Соглашаемся. Все работает. 3. Деплоим поверх версию в 64 бита тоже в релизе. При обращении к галерее никаких запросов уже нет и все также четко работает. 4. Полностью удаляем приложение с устройства. 5. Деплоим начисто 64 битную версию. При обращении к галереи приложение сразу падает. Видимо откомпилированный 64 битный код не может вызвать окно запроса с разрешением использовать галерею/фото. Что еще можно попробовать т.к. для публикации в app store требуется именно 64 битная версия приложения? Цитата
0 Kitty Опубликовано 27 октября, 2016 Автор Опубликовано 27 октября, 2016 Забыла добавить что тестировалась на двух телефонах iPhone 5 и 5s. Цитата
0 Kitty Опубликовано 27 октября, 2016 Автор Опубликовано 27 октября, 2016 (изменено) Дополнительно выяснилось, что если деплоить в режиме дебаг 64 bit, то все работает. Если деплоить в режиме релиз, то приложение падает при обращении к фото/галереи. Ключи в обоих конфигурациях одинаковые... Изменено 27 октября, 2016 пользователем Kitty Цитата
Вопрос
Kitty
Пустое приложение. Код из документации. Попытка получить фото с камеры:
void __fastcall TForm1::TakePhotoFromCameraAction1DidFinishTaking(TBitmap *Image) { Image1->Bitmap->Assign(Image); }При нажатии на кнопку приложение вылетает. Кому нибудь удавалось получить фото в С++ Builder Берлин в iOS? Спасибо.
Лучшие авторы в вопросе
32
20
10
7
Популярные дни
3 окт
27
4 окт
20
6 окт
7
26 окт
7
Лучшие авторы в вопросе
Kitty 32 постов
Равиль Зарипов (ZuBy) 20 постов
Brovin Yaroslav 10 постов
Pax Beach 7 постов
Популярные дни
3 окт 2016
27 постов
4 окт 2016
20 постов
6 окт 2016
7 постов
26 окт 2016
7 постов
Популярные посты
Brovin Yaroslav
Taking Pictures Using FireMonkey Interfaces
Pax Beach
Это не из-за платформы. Обсуждали на форуме несколько раз уже эту проблему — проблема в том, что работа с UI и Action идет в разных потоках. Получение снимка через Action Menu я делаю так pro
Равиль Зарипов (ZuBy)
ну желательно обернуть, т.к. это нативная штука. что там творится в недрах не видно. хуже не будет, но и не факт что поможет.
Изображения в теме
78 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.