[proofplan]
The projective resolution is built by repeatedly covering the current kernel by a projective object. At each stage the next differential is the composite from the new projective object onto the kernel and then into the previous projective object. Exactness follows because epimorphic images of the kernel-covering maps coincide with the kernels just constructed. The injective resolution is the dual construction, repeatedly embedding the current cokernel into an injective object and splicing the resulting cokernel maps.
[/proofplan]
[step:Construct the projective objects by resolving successive kernels]
Assume that $\mathcal A$ has enough projectives, and fix an object $A \in \mathcal A$. Define $K_0 := A$. Since $\mathcal A$ has enough projectives, choose a projective object $P_0$ and an epimorphism
\begin{align*}
p_0: P_0 \longrightarrow K_0 = A.
\end{align*}
Let
\begin{align*}
i_1: K_1 \longrightarrow P_0
\end{align*}
be a kernel of $p_0$.
Inductively, suppose that for some $n \geq 1$ the object $K_n$ has been constructed. Since $\mathcal A$ has enough projectives, choose a projective object $P_n$ and an epimorphism
\begin{align*}
p_n: P_n \longrightarrow K_n.
\end{align*}
Let
\begin{align*}
i_{n+1}: K_{n+1} \longrightarrow P_n
\end{align*}
be a kernel of $p_n$. This constructs objects $P_n$ for all $n \geq 0$, each projective by construction.
[/step]
[step:Splice the projective covers into an augmented chain complex]
Define the augmentation
\begin{align*}
\varepsilon := p_0: P_0 \longrightarrow A.
\end{align*}
For each $n \geq 1$, define the differential
\begin{align*}
d_n: P_n \longrightarrow P_{n-1}
\end{align*}
by
\begin{align*}
d_n := i_n \circ p_n.
\end{align*}
We verify that these maps form a chain complex. For $n \geq 2$,
\begin{align*}
d_{n-1} \circ d_n
&= (i_{n-1} \circ p_{n-1}) \circ (i_n \circ p_n) \\
&= i_{n-1} \circ (p_{n-1} \circ i_n) \circ p_n.
\end{align*}
Since $i_n:K_n \to P_{n-1}$ is a kernel of $p_{n-1}$, we have $p_{n-1} \circ i_n = 0$, hence $d_{n-1} \circ d_n = 0$. Also
\begin{align*}
\varepsilon \circ d_1
&= p_0 \circ i_1 \circ p_1
= 0,
\end{align*}
because $i_1$ is a kernel of $p_0$. Thus
\begin{align*}
\cdots \longrightarrow P_2 \xrightarrow{d_2} P_1 \xrightarrow{d_1} P_0 \xrightarrow{\varepsilon} A \longrightarrow 0
\end{align*}
is an augmented chain complex.
[/step]
[step:Verify exactness of the projective resolution]
First, exactness at $A$ means that $\varepsilon:P_0 \to A$ is an epimorphism, which holds because $\varepsilon=p_0$ was chosen to be an epimorphism.
Next, exactness at $P_0$ says that the image of $d_1$ equals the kernel of $\varepsilon$. We use the standard image-composition property in an [abelian category](/page/Abelian%20Category): if $e:X\to Y$ is an epimorphism and $m:Y\to Z$ is a monomorphism, then the image of $m\circ e$ is the subobject represented by $m$. Since $d_1=i_1 \circ p_1$, since $p_1:P_1 \to K_1$ is an epimorphism, and since $i_1:K_1 \to P_0$ is the kernel of $p_0=\varepsilon$, the image of $d_1$ is precisely the subobject represented by $i_1$, which is $\ker \varepsilon$.
Now fix $n \geq 1$. We prove exactness at $P_n$. The next differential is
\begin{align*}
d_{n+1}=i_{n+1}\circ p_{n+1}:P_{n+1}\longrightarrow P_n,
\end{align*}
where $p_{n+1}:P_{n+1}\to K_{n+1}$ is an epimorphism and $i_{n+1}:K_{n+1}\to P_n$ is a kernel of $p_n:P_n\to K_n$. Since
\begin{align*}
d_n=i_n\circ p_n
\end{align*}
and every kernel is a monomorphism, $i_n$ is a monomorphism. By the standard kernel-cancellation property in an [abelian category](/page/Abelian%20Category), composition with a monomorphism does not change the kernel subobject, so the kernel of $d_n=i_n\circ p_n$ is the same subobject of $P_n$ as the kernel of $p_n$. That kernel is represented by $i_{n+1}:K_{n+1}\to P_n$. By the image-composition property for an epimorphism followed by a monomorphism, and because $p_{n+1}$ is an epimorphism, the image of $d_{n+1}=i_{n+1}\circ p_{n+1}$ is exactly the subobject represented by $i_{n+1}$. Hence
\begin{align*}
\operatorname{im} d_{n+1}=\ker d_n.
\end{align*}
Therefore the augmented complex is exact, and it is a projective resolution of $A$.
[/step]
[step:Construct the injective objects by resolving successive cokernels]
Assume that $\mathcal A$ has enough injectives, and fix an object $A \in \mathcal A$. Define $C_0 := A$. Since $\mathcal A$ has enough injectives, choose an injective object $I_0$ and a monomorphism
\begin{align*}
q_0: C_0=A \longrightarrow I_0.
\end{align*}
Let
\begin{align*}
r_0: I_0 \longrightarrow C_1
\end{align*}
be a cokernel of $q_0$.
Inductively, suppose that for some $n \geq 1$ the object $C_n$ has been constructed. Since $\mathcal A$ has enough injectives, choose an injective object $I_n$ and a monomorphism
\begin{align*}
q_n: C_n \longrightarrow I_n.
\end{align*}
Let
\begin{align*}
r_n: I_n \longrightarrow C_{n+1}
\end{align*}
be a cokernel of $q_n$. This constructs objects $I_n$ for all $n \geq 0$, each injective by construction.
[/step]
[step:Splice the injective embeddings into an augmented cochain complex]
Define the initial map
\begin{align*}
\eta := q_0: A \longrightarrow I_0.
\end{align*}
For each $n \geq 0$, define
\begin{align*}
\delta_n: I_n \longrightarrow I_{n+1}
\end{align*}
by
\begin{align*}
\delta_n := q_{n+1} \circ r_n.
\end{align*}
We verify that these maps form a cochain complex. For $n \geq 0$,
\begin{align*}
\delta_{n+1}\circ \delta_n
&= (q_{n+2}\circ r_{n+1})\circ(q_{n+1}\circ r_n) \\
&= q_{n+2}\circ(r_{n+1}\circ q_{n+1})\circ r_n.
\end{align*}
Since $r_{n+1}:I_{n+1}\to C_{n+2}$ is a cokernel of $q_{n+1}:C_{n+1}\to I_{n+1}$, we have $r_{n+1}\circ q_{n+1}=0$. Hence $\delta_{n+1}\circ\delta_n=0$. Also
\begin{align*}
\delta_0\circ \eta
&= q_1\circ r_0\circ q_0
=0,
\end{align*}
because $r_0$ is a cokernel of $q_0$. Thus
\begin{align*}
0 \longrightarrow A \xrightarrow{\eta} I_0 \xrightarrow{\delta_0} I_1 \xrightarrow{\delta_1} I_2 \longrightarrow \cdots
\end{align*}
is an augmented cochain complex.
[/step]
[step:Verify exactness of the injective resolution]
First, exactness at $A$ means that $\eta:A\to I_0$ is a monomorphism, which holds because $\eta=q_0$ was chosen to be a monomorphism.
Next, exactness at $I_0$ says that the kernel of $\delta_0$ equals the image of $\eta$. Since $\delta_0=q_1\circ r_0$, since $q_1:C_1\to I_1$ is a monomorphism, and since $r_0:I_0\to C_1$ is the cokernel of $q_0=\eta$, the standard kernel-cancellation property in an [abelian category](/page/Abelian%20Category) implies that the kernel of $\delta_0$ is precisely the kernel of $r_0$. By the standard image factorisation property in an abelian category, the kernel of a cokernel of a morphism represents the image of that morphism; hence $\ker r_0=\operatorname{im}\eta$.
Now fix $n \geq 1$. We prove exactness at $I_n$. The previous differential is
\begin{align*}
\delta_{n-1}=q_n\circ r_{n-1}:I_{n-1}\longrightarrow I_n,
\end{align*}
where $q_n:C_n\to I_n$ is a monomorphism and $r_{n-1}:I_{n-1}\to C_n$ is a cokernel of $q_{n-1}:C_{n-1}\to I_{n-1}$. Every cokernel is an epimorphism, so $r_{n-1}$ is an epimorphism. By the standard image-composition property in an [abelian category](/page/Abelian%20Category), an epimorphism followed by a monomorphism has image represented by that monomorphism. Therefore the image of $\delta_{n-1}=q_n\circ r_{n-1}$ is exactly the subobject represented by $q_n:C_n\to I_n$.
On the other hand,
\begin{align*}
\delta_n=q_{n+1}\circ r_n,
\end{align*}
and $q_{n+1}$ is a monomorphism. By the standard kernel-cancellation property in an [abelian category](/page/Abelian%20Category), composition with a monomorphism does not change the kernel subobject, so the kernel of $\delta_n=q_{n+1}\circ r_n$ is the same subobject of $I_n$ as the kernel of $r_n$. Since $r_n$ is a cokernel of $q_n$, the standard image factorisation property in an abelian category gives that $\ker r_n$ is the image of $q_n$. Hence
\begin{align*}
\ker \delta_n=\operatorname{im}\delta_{n-1}.
\end{align*}
Therefore the augmented cochain complex is exact, and it is an injective resolution of $A$.
[/step]
[step:Conclude both existence statements]
Under the hypothesis of enough projectives, the first construction gives every object $A\in\mathcal A$ an exact augmented chain complex by projective objects, hence a projective resolution. Under the hypothesis of enough injectives, the second construction gives every object $A\in\mathcal A$ an exact augmented cochain complex by injective objects, hence an injective resolution. This proves both assertions.
[/step]