Q:

How to balance audio levels to be loud enough yet safe

There are a few sound effects in my game that sound a bit piercing over earbuds but OK when played through the iPhone speaker. Also sound levels seem lower on older hardware. Is there some objective way to be sure my sounds are loud enough yet safe?
Notes: I made my music with GarageBand for iPad. The output was very hot but not clipped. To preview the sounds on my computer I played them in the iPad simulator and matched the volume coming out of my iPhone. To resolve my volume issues, I reduced the high end in Amadeus Pro using the EQ tool. A couple passes for each of the worst sound clips let me reduce the shrillness without muting the volume too badly. Thanks everyone for your help.

A:

I'm not an expert on this field, but this is what my intuition tells me, both from a technical and from a more subjective point of view.
Technical
From a technical point of view, in order to preserve quality, you should start by authoring your audio files as loud as possible but making sure not to exceed a certain volume threshold which would induce clipping on the sound's waveform. Most audio software lets you monitor the levels of your file and detect if there's any clipping taking place.
For instance, in Audacity, you can keep an eye on the Meter Toolbar to make sure your file's within an acceptable volume range. Here's what the toolbar looks like, and read the link above for more information. Basically, the meter should never exceed the scale throughout the duration of the file.

You can use effects like Normalize or Amplify in Audacity to make all of your audio files have the same peak volume without clipping them (in fact by default it normalizes the maximum amplitude to -3dB instead of 0dB, which is probably a good idea too).
Subjective
Then there's a more subjective point of view which is, some sound effects are by nature more aggressive to the ears and should probably be toned down a bit. This depends mostly in the very nature of the sound, so I'm not aware of any existing procedure to automate this correction.
Therefore my suggestion would be to use your ears. In particular, author your audio files using headphones, and preferably on your iPhone and try to adjust the volume levels on your audio files manually so that they are as loud as possible without getting to the point that they "pierce" your ears. 
Possibly ask a few other people around you for opinion too, as different people might have different sensibilities.

A:

This grew to be too big for a comment on David's answer, which I endorse.
A good rule of thumb for correcting for different response is that you want to tone down high-pitched sounds. The general reason is that the frequency response of the ear is stronger at higher frequencies (which isn't surprising, given that the ear is quite small). Obviously it falls away at really high frequencies, but in the range where all you're hearing is third or fourth order harmonics.
But specifically talking about headphones, there are two extra reasons: firstly, they have a higher frequency response at higher frequencies (again, because they're small); so you want to compensate for that. Secondly, because higher frequencies are attenuated more with distance. This means that moving the speakers closer to your ears will tend to over-emphasise the treble.
I don't know the iPhone API. Can you test whether headphones are in use and adjust the level of your sound effects accordingly (or even run them through a different EQ)?

A:

One possible objective method to determine if sounds are loud enough yet "safe" is to measure  playback frequency response curves at a range of loudness levels for each target.
For each device and listening output combination you wish to audit, record a series of 5 second sine wave sweeps from 10Hz to 22kHz at a range of playback volumes from quiet to loud, stepping in 3dB increments from -48 dB to -9dB and 1dB increments from -9dB to 0dB. Analyze the recordings of these sweeps to build a map of the level-specific frequency response for each target combination.  Use an audio spectral view to visually reveal where frequency response drops off and over-modulates (distorts).
The resultant data set will inform you of the point at which distortion can occur, defining the upper-limit of your safe zone for loudness. Subtract 3dB for each instance of sound layering that might occur to allow a reasonable headroom which will technically not distort the sound.
This does not guarantee subjective assurance to not ever be "too piercing". Because the rate at which a sound replays has a big effect on its annoyance factor, you could reduce volume further based on the count of playback instances per second of a sound in your game.
The above method would be suitable for informing the production of many sounds.  If you are only concerned with one sound, then you may substitute that sound for the sine sweeps.  Alternatively the sine sweep recordings may be used with audio convolution dsp process to predict the frequency response of any particular sound on any particular target playback combination.

