Это довольно просто, они используют шейдеры и загружаются из Интернета.
- Загрузка iExplorer для Mac, подключите ваш iPhone с установленным Viddy.
- Отметьте
Library/effects
папку в Viddy.app
.Там вы найдете файлы afx_1_0.xml
и vfx_1_0.xml
. - Загрузите их на свой Mac, откройте их, и там вы найдете определения фильтров и URL-адрес для их загрузки.
- AnНапример, SOHO фильтр . Загрузите этот файл , откройте его, и вы увидите там три файла:
shader.fx3
, где определен шейдер, thumb.png
для миниатюры и vignette.png
файл, который также используется для этого шейдера.
Мы использовали тот же подход в неназванном приложении, но мы зашифровали всю эту информацию вместе с самими шейдерами, чтобы избежать такого анализа:)
Шифрование,Пример расшифровки запроса в комментарии
- Допустим, у вас есть файл
.fx
с вашим шейдером (или любым другим файлом). Откройте Xcode и перейдите в BuildПравила, в которых вы можете определить правило сборки для *.fx
файлов.Установите его для запуска Custom script:
, который может выглядеть следующим образом:
ENC_KEY = "ваш-ключ шифрования"
$ {PROJECT_DIR} /../ Tools / bin / crypt -e -k $ ENC_KEY -i $ {INPUT_FILE_PATH} \ -o "$ {BUILT_PRODUCTS_DIR} / $ {UNLOCALIZED_RESOURCES_FOLDER_PATH} / $ {INPUT_FILE_BASE} .cfx"
- * 1047файл, который имеет то же содержимое, что и файл
.fx
, но зашифрован. crypt
двоичный файл поступил из этого проекта: загрузить проект crypt Xcode . - Загрузка демонстрации зашифрованного ресурса .
- Копирование файлов
EncryptedFileURLProtocol.*
и NSURL+EncryptedFileURLProtocol.*
в ваш проект. - В приложении делегат вызовите это, чтобы зарегистрировать ваш протокол
[NSURLProtocol registerClass:[EncryptedFileURLProtocol class]];
- И теперь, когда вы действительно хотите открыть зашифрованный ресурс, вы должны использовать протокол
encrypted-file
вместо file://
.Эта задача обрабатывает категорию NSURL
из демонстрационного проекта, и вы можете просто использовать [NSURL encryptedFileURLWithPath:@"/path/to/my/encrypted/file"]
.
Это довольно просто, и вы найдете большую часть необходимой информации в примере приложения (ссылка выше).Кроме того, вы можете манипулировать своим ключом шифрования / дешифрования в приложении, так что люди должны думать, и ключ не легко читается.Теперь, когда вы получаете доступ к зашифрованному файлу через этот NSURL
, он автоматически расшифровывается для вас в приложении.Ключ дешифрования устанавливается в sharedKey
в EncryptedFileURLProtocol.m
файле.