As I understand, promo-codes expire 4 weeks after generated. You are also given 50 codes per version uploaded.
But, what would happen if you generate a promo
After my app crashing mysteriously on the release side, I've been testing my own promo code on a spare iPhone.
It seems that promo codes gives a download of the version the promo code was based on. My app was crashing on its version 2.0, and promo codes of version 2.0 will crash. However, when I erased the app and used a promo code generated from version 2.1, it ran just fine.
edit: confirmed again with yet another two codes. They really do download the version they're generated from.