Using debug with services 3
Standard debugging functions like dpm() and dvm() use the drupal_set_message() function, which is tied to a user's session. When you try using the node form, you see the message because it is saved to your session. However, when you use the service via your iphone app, the messages get saved to a session that is probably not the one you're logged in under.

Fortunately, for situations like this, you can use the dd() function, which will print the debugging information out to a file in the /tmp directory, typically called drupal_debug.txt.

[edit] I notice you're using the debug() function, which triggers error handling, note that this also uses drupal_set_message(), so the above is still relevant. (The dpm() and dvm() functions are from the Devel module.)