В моем случае я исправил это следующим образом:
strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
strURL содержит строку с URL.
Да, вы можете сделать свой собственный. Лучшим способом было бы использовать хеш-функцию, такую как MD5 или SHA1, для ее создания, после чего вы можете обрезать ее до желаемой длины. Я бы хешировал имя файла / группы вместе с меткой времени, добавленной таким образом, чтобы получить более уникальный результат.