I'm sorry, I didn't realize that model year was running coil pack ignition (distributorless).
So there are four good reasons I can think of that will cause a no spark condition.
1. The sensors giving your computer enough input to calculate and time an ignition curve are not there or sporadic.
2. The actuator (coil packs) that makes the spark is malfunctioning.
3. The wires leading to the actuator are messed up.
4. The computer is broken, and unable to generate or process a signal.
There are a few sensors your jeep needs to get enough info to fire a spark plug.
1. Crank position sensor. This tells the computer how fast the engine is spinning.
2. Cam shaft position sensor. This tells the computer what cylinder is where so that it can time the spark/fuel.
3. MAP sensor. This tells the computer how much vacuum is in the manifold so it can calculate what load is on the engine, and ultimately how much fuel to give it.
Considering you have test the cam and crank position sensor, I wouldnÆt mess with them too much more. If you think the MAP sensor is bad, test and replace as necessary...
Have you checked the coil pack? If I remember right (not too likely) there is something like 0.8 ohms from the middle right/left to the other. It should be like middle is right/left is power to the coils, then the remaining 3 are grounds the computer pulses. On the coil pack you should measure all 3 coils and get less than 1 ohm resistance on each one....
If the coil pack checks out, IÆd start suspecting and internal fault in the coil pack that lets the spark jump out before it hits the plugwire/post...
Looks like a good way to test the relay, how much does a new relay cost?