Apple - Remove seconds of silence at end of GarageBand exports
As far as I know, GarageBand doesn't add anything to the end of exported tracks, but it exports as much as there's sound in any track. Therefore, to avoid having extra "stuff" exported, you should always create a loop region and export with that. As you can see in the following picture, I'm at second 47 in the "timeline", however, I've created a region (the yellow bar on top) that starts at second 1 instead of 0, therefore creating a 46 second clip.
The exported version can be seen in quicktime with a length of 46 seconds, without any extra silence or sound.
In order to create such region, you have to activate the "repeat/loop" (next to the Play button in GarageBand). That will create an extra space below the Beat Bar (where you move the Play Head). When you hover your mouse over that small region, the cursor changes. You can click and "drag" to paint the yellow zone. That's the zone that will be repeated over and over.
Always export with a repeat/loop zone created and Garageband will only export that.
NOTE: Logic Pro/Express behaves the same way when creating bounces.
There's a draggable cursor at the end of the timeline on the upper right corner. If it is beyond the end of your sound on your longest track GB will include that much silence. Drag it back to the end of your longest track, or leave however many seconds of silence you want.
Update 2020 - What about iOS?
I don't use macOS anymore but if you want to do this on iOS or iPadOS, if I don't incorrectly recall, your only choice is to have a region that encompasses the part you want to export, tap it (to select it), then tap it again (to see a floating set of buttons), and pick "Loop". I don't know/think there's a way to do the same "playback region selector" on iOS. I may be wrong, but this question was about the OS X version of GarageBand so I don't know more :)