1. A device that analyzes program packages of applications, the device comprising: at least one processor, and a memory storing instructions that, when executed by the at least one processor, provide a static program analysis system comprising: a program acquirer that stores a program package comprising: a set of program resources; and a manifest that describes deployment of the respective program resources for the application; a static program analysis engine that performs a static program analysis of the application comprising: a first pass over the program package that: using the manifest, identifies dependencies of the respective program resources upon respective dependency targets involving other program resources of the program package, and generates a program resource dependency model that describes the dependencies among the respective program resources of the program package; and a second pass, following the first pass, that uses the program resource dependency model to discover runtime dependency issues arising at runtime among the program resources of the program package, wherein the runtime dependency issues are irrespective of resources not provided by the program package that may or may not exist on a target device upon which the program package is installed; and a results presenter that presents, to a user, the results of the static program analysis, including diagnostic messages that describe the runtime dependency issues discovered during the second pass of the static program analysis.