Hi, welcome to Just Answer.
There are various common failures on this model which can cause the engine to crank but not fire. To begin you need to be sure the battery is fully charged at all times to give the best results during any testing and a engine which is not spinning fast enough to fire can flood. Once the battery is known good and the engine does not fire, remove the intake duct at the throttle body, or remove a large vacuum hose on the intake (brake booster hose) and spray some carb cleaner in the intake. Replace the duct or reinstall the hose and crank the engine. Does it fire momentarily on the cleaner? If so we have verified the engine compression is good and the ignition spark is sufficient. This means the problem lies in the fuel delivery or the fuel injection. Fuel delivery problems will include: the fuel pump (common), fuel pump relay (common), fuel pressure regulator (uncommon) and the engine computer or wiring (rare but have replaced some for no fuel injection pulse to the injectors).
If the engine does not fire on the cleaner, we need to check for good ignition spark next. Do this by removing a spark plug lead and install a spare spark plug. Hold the plug to good engine metal and have someone crank the engine...monitor for good spark at the electrode end of the spark plug. If no spark is present you may have: faulty distributor cap or rotor (common), faulty coil (uncommon), faulty CKP - crankshaft position sensor (very common), faulty computer not triggering the coil (uncommon), or faulty power supply to the coil (common).
If you have good spark, we need to test the engine compression next. If the compression is low on all the cylinders or 3 or more, we may have a jumped timing chain concern.
Lead Technician
BMW Factory Training, ASE Master Techinician, Advanced engine performance.