The best, most energy efficient solution would be a hub dynamo.
A basic model of hub dynamo would be something like the Shimano DH-3N31, available from about €30. There are more expensive models, which are lighter weight, and a bit less drag. But you probably won't notice much difference anyway, unless you are riding a fast, lightweight bicycle. Note the DH-3N31 is only suitable for rim brakes, there are similar models that work with disc brakes (eg Shimano DH-3D32).
You would need to get the hub dynamo built into a wheel. You could rebuild your existing wheel, to replace the hub, or maybe easier just to buy a complete dynamo wheel. Cost from about €75, depending on what sort of hub and spokes you want etc.
Then you need something to take the power output from the dynamo, and convert it to a USB output. A good option would be the Busch & Müller USB-Werk, for about €65. This has a built in cache battery, so it can supply constant power to your phone, even if you slow down or stop.
There are also dynamo powered lights, with USB output. This could be useful if riding after dark. Though they are more expensive. eg Busch & Müller Lumotec IQ2 Luxos U, for €120.