Amanda Seyfried, Jennifer Lawrence, Deborah Ann Woll i Emma Stone były brane pod uwagę do roli Elizabeth.
Jeremy Renner był obsadzony w roli Freddiego na wczesnym etapie produkcji. W kręgu zainteresowań twórców był jeszcze James Franco, ostatecznie jednak zaangażowano Joaquina Phoenixa.
Reese Witherspoon była początkowo kandydatką do obsadzenia w roli Mary Sue.
Zdjęcia do filmu kręcono w Los Angeles, Crockett, San Francisco, Berkeley, Vallejo (Kalifornia, USA), na wyspie O'ahu (Hawaje, USA) oraz na statku USS Potomac.
Zdjęcia do filmu kręcono od 2 czerwca do 2 lipca 2011 roku.