Setting up TexturePacker for encryption
use TexturePacker running to create sprite sheets. So simply open an existing .tps file.
Download the latest TexturePacker - here you'll find a new option on the left: Content Protection. Press the "lock" icon and a new popup opens:
![](http://d26bu41yhsbbx.cloudfront.net/img/texturepacker/contentprotection.png)
You can enter your own key in the line edit - or simply create a new one by pressing Create new key.
To disable encryption use Clear / Disable.
Save as global key stores the key in TexturePacker as global - using it for decryption in the .pvr viewer and allowing you paste it into other sprite sheets by simply pressing Use global key
It is important that you change the file format to pvr.ccz - which is currently the only file format that supports encryption.
Press Publish and you are done in TexturePacker.
The corresponding command in commandline is --content-protection <key>
where the key must be a 32-digits hex value.
Preparing your cocos2d project for content protection
Download and copy the following 2 files inside your cocos2d folder: libs/cocos2d/Support
- replacing the 2 files that are already there:
Now set the key in your app. You can do this by placing 4 calls inside your startup sequence before the first sprite sheet is loaded. Try to distribute the calls among several files to make them harder to spot.
If your license key is aaaaaaaabbbbbbbbccccccccdddddddd
, you have to split it into 4 parts with 8 digits each:
aaaaaaaa
bbbbbbbb
cccccccc
dddddddd
caw_setkey_part(0, 0xaaaaaaaa);
caw_setkey_part(1, 0xbbbbbbbb);
caw_setkey_part(2, 0xcccccccc);
caw_setkey_part(3, 0xdddddddd);
Make sure to add the following line to each file in which you use
caw_setkey_part
:
#import "ZipUtils.h"
If you had to change the file format, make sure to now load the .pvr.ccz
file instead of whatever you used before. Also add the new files to your project.
That's it!
Conclusion
Protecting your game assets from content thieves is easy. Using the new ContentProtection feature can be set up in less than 5 minutes!
Apple's requirements on encryption and Content Protection
See the Bureau of Industry and Securitys Encryption FAQ - Question 15 (What is Note 4?):
...
Examples of items that are excluded from Category 5, Part 2 by Note 4 include, but are not limited to, the following:
Consumer applications. Some examples:...
- piracy and theft prevention for software or music;
- music, movies, tunes/music, digital photos – players, recorders and organizers
- games/gaming – devices, runtime software, HDMI and other component interfaces, development tools
![](http://d26bu41yhsbbx.cloudfront.net/img/texturepacker/apps_export_compliance.png)
Picture taken from iTunes Connect Developer Guide - Adding New Apps (scroll down to "Ready to Upload Your Binary" to find the paragraph about encryption)