Bullet behavior has a setting for distance traveled, I believe. So:
Bullet, compare distance traveled, if > (start.x, start.y, finish.x, finish.y) then destroy bullet
Of course those are just placeholder terms. If the player doesn't move you can use player.x & player.y, but if he does move either add instance variables for startX & startY, or just create a 'distance' variable and on created set distance to distance(player.x, player.y, touch.x, touch.y).
This is a better solution than creating invisible sprites as doesn't create unnecessary sprites, doesn't' have to check for the collision, and doesn't have the chance of (somehow) not hitting the invisible sprite—or hitting an invisible sprite meant for a different bullet.