• Javascript
  • Python
  • Go

Programmatically Sending SMS on iPhone: A Step-by-Step Guide

Are you looking for a way to send text messages programmatically on your iPhone? Look no further, as we have prepared a step-by-step guide t...

Are you looking for a way to send text messages programmatically on your iPhone? Look no further, as we have prepared a step-by-step guide to help you achieve this task. With the rise of technology and the increasing use of smartphones, sending SMS has become an essential means of communication. And being able to send them programmatically can save you time and effort in certain situations. So, without further ado, let's dive into the process of sending SMS on an iPhone programmatically.

Step 1: Set up Your Environment

To begin with, you'll need to have a Mac computer with Xcode installed. If you don't have it, you can download it for free from the App Store. Xcode is an integrated development environment that allows you to create and run applications on your iPhone. Once you have Xcode set up, you'll need to create a new project, selecting "Single View App" as the template.

Step 2: Add the Message Framework

Once you have your project set up, you'll need to add the Message framework to it. To do so, click on your project in the project navigator, and then go to the "General" tab. Under the "Frameworks, Libraries, and Embedded Content" section, click on the "+" button to add a new framework. Search for "Message" and select it from the list. Make sure to set the "Status" to "Optional" and click "Add" to add the framework to your project.

Step 3: Import the Message Framework

Now that you have added the Message framework to your project, you'll need to import it into your code. To do so, go to the ViewController.swift file and add the following line at the top of the file: import MessageUI. This will give your code access to the Message framework's classes and methods.

Step 4: Request User Permission

Before you can send SMS messages programmatically, you'll need to request the user's permission to do so. This is a security measure implemented by Apple to ensure that users have control over the messages being sent from their device. To request permission, you'll need to add the following code to your ViewController.swift file:

let messageVC = MFMessageComposeViewController()

messageVC.body = "This is a test message"

messageVC.recipients = ["1234567890"]

messageVC.messageComposeDelegate = self

The first line creates an instance of the MFMessageComposeViewController class, which is responsible for displaying the message composer screen. The second line sets the body of the message, and the third line specifies the recipient's phone number. Finally, the last line sets the messageComposeDelegate to self, which means that the current view controller will handle the message composer's events.

Step 5: Implement the Message Composer Delegate

To handle the events of the message composer, you'll need to implement the messageComposeDelegate protocol in your ViewController class. Add the following code to your ViewController.swift file:

extension ViewController: MFMessageComposeViewControllerDelegate {

func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {

switch result {

case .cancelled:

print("Message cancelled")

case .failed:

print("Message failed to send")

case .sent:

print("Message sent successfully")

@unknown default:

print("Unknown error")


controller.dismiss(animated: true, completion: nil)



This code checks the result of the message composer's action and prints a message accordingly. It also dismisses the message composer once the action is completed.

Step 6: Test Your Code

Now that you have all the necessary code in place, you can test your app. Build and run the project on your iPhone, and you'll see a message composer screen with the body and recipient already filled in. You can make any necessary changes and then click on the "Send" button. You'll then see the result of your message in the Xcode console.

Congratulations, you have successfully sent an SMS message programmatically on your iPhone! With this knowledge, you can now incorporate SMS functionality into your apps and automate certain tasks that require sending messages.

In conclusion, sending SMS programmatically on an iPhone may seem like a daunting task, but with the right tools and knowledge, it can be achieved easily. By following this step-by-step guide, you can now confidently add SMS capabilities to your apps and make your life easier. Happy coding!

Related Articles

Optimizing UIImage Cropping

When it comes to displaying images on a website or mobile application, one of the common challenges is finding the right balance between ima...