A GPS antenna array can be used to obtain the spatial information about the incoming signals, which can then be exploited for beamforming, nullsteering, and attitude determination. These capabilities play an increasingly important role for assured position, navigation, and timing (APNT) applications against jamming and spoofing attacks. However, a GPS antenna array and its associated electronics are subject to inherent errors that can significantly degrade the performance if left uncompensated for. Calibration in an anechoic chamber, though being best for accuracy, is either unaffordable or impractical for most applications. An in-situ approach using ambient signals is therefore preferable. In this paper, an iterative calibration procedure based on the self-cohering (auto-focusing) principle is presented to work with either post-correlation GPS signals or pre-correlation jamming signals. It consists of a step of channel mismatch estimation for gain and phase errors and a step of mutual coupling estimation for mutual coupling coefficients. The estimation can be formulated as signal power maximization, noise subspace minimization, or signal subspace matching. The individual steps, though well-defined, become quite nonlinear when intertwined with the signal angular estimation. As such, the issues of local minima (uniqueness) and rate of convergence are of concern as in all nonlinear optimization problems, which depends on the initial conditions and signal to noise ratio (SNR) levels. In the context of angular estimation, the paper initially validates the in-situ calibration approach with simulated data. Experimental results are then presented to further illustrate the functionality and performance characteristics in representative environments including obstructed GPS scenarios.