The AppBuilder publish functionality accepts only App Store distribution provisioning profiles. Apps that are signed with such profiles can be installed only via the Apple App Store, so you have submit this package to the App Store. If you sign your app with an Ad-Hoc provisioning profile, you will be able to install it on your device without using the Apple App Store, but the app won't be admitted in the App Store. So basically:
- Use publish if you want to upload your app to the App Store.
- Use build with an ad-hoc provisioning profile if you want to test or distribute your app outside of the App Store.
I hope this information answers your question. Let me know if you have any other questions.