Можно ли запрограммировать приложение для телефона, чтоб запускалось только на одном устройстве?
Не знаю как в IOS, а на андроиде есть такое понятие как "подписка" (временная или постоянная). Соотверственно вы продаете в приложении подписку, а оноп ри запуске проверяет что она есть. Из минусов - подписка распространяет действие на аккаунт в маркете (т.е., вы ее купили и она у вас на всех устройствах, с которых вы вошли в этот аккаунт), а не на одно устройство.
если приложение через Google Play - то за такие вещи можно кучу минусов там именно из-за того что пользователь ожидает что если он купил приложение - значит может использовать (вы часто встречали иное?)
более правильный вариант - использовать штатные средства от Google для проверки того что приложение было куплено - https://developer.android.com/google/play/licensin...
да, это значит что все устройства на аккаунте смогут пользоваться но аккаунт же не шарят обычно
вот если приложение распространяется не через Google Play то можно уже про такие вещи думать
на iOS...у пользователя просто не получится скопировать приложение (исключение - джейлбрейк, он же (или хаки с enterprise-сертификатами) потребуется для установки)