This sample iOS app designed for developers to demonstrate the main flows and integration with the Temp-Number Backend. The app allows users to purchase virtual mobile numbers to receive SMS messages online, SMS activation, OTP verification, and SMS Activate workflows. The Temp-Number Backend is a ready-to-use open-source backend, providing all necessary functionality for seamless app integration and SMS management.
Sample App Screenshots:
-
Primary App Features
- User Authentication: Supports Firebase Authentication (Google Sign-In, Email, etc.).
- Service and Country Pricing: Displays pricing for selected services and countries.
- Temporary Number Ordering: Users can order numbers and manage active and expired numbers.
- SMS Handling: Receives and displays SMS messages.
- Report Issues: Users can submit and track issue reports.
- Payments: Supports Apple In-App Purchases and Stripe for account balance top-ups.
- Transaction History: Provides a record of financial transactions.
-
Backend
- The app interacts with the Temp-Number Backend via Backend API for SMS orders, management, and processing.
-
Payments (Apple In-App Purchases & Stripe)
- Apple In-App Purchases and Stripe are integrated for secure balance top-ups, with backend handling verification for purchases and refunds.
Follow these steps to set up and run the app on your local machine.
Clone this repository to your local machine.
- In Xcode, go to your target’s General tab, select your Team, and update the Bundle Identifier to match your App Store Connect settings.
- Create a new app in App Store Connect using the same bundle ID.
-
Configure the API endpoint:
- After the installer finishes, copy the Backend API URL.
- In the
Config.xcconfigfile, set theBACKEND_API_URLvalue (by default, append/apito the end of the domain).
-
Add Firebase to Your iOS Project:
- Follow the Firebase setup documentation.
- Download the
GoogleService-Info.plistfile and add it to your project.
-
Set Up Firebase Authentication (if you use FirebaseUI for authentication):
- Go to Authentication > Settings > User actions in the Firebase console.
- Disable email enumeration protection (enable it if you use your own authentication UI).
The app supports Apple In-App Purchases and Stripe payments. Configure at least one payment method:
- Add Products in App Store Connect:
- Create product IDs in App Store Connect.
- Example product IDs:
one_dollar_purchase_activate,five_dollar_purchase_activate, etc.
- Update
ProductInfo.swift:- Update
ProductInfo.swiftto include your product IDs.
- Update
- Configure Merchant ID (Optional):
- Optionally add a Merchant ID via the Apple Developer portal or directly in Xcode under Signing & Capabilities.
- Update Backend Parameters:
- Open the backend configuration file:
.../temp-number-deploy/config/env/backend.env. - Enable payments by setting
APPSTORE_ENABLED=true. - Set your app bundle identifier and app ID in
APPSTORE_BUNDLE_IDandAPPSTORE_APP_ID. - Set the same product identifiers in the backend configuration file parameter
APPSTORE_PRODUCTS.
- Open the backend configuration file:
- Set Up Stripe:
- Configure Stripe by following the Temp-Number Backend payment setup guide.
- URL Scheme:
- Add a URL Type in Xcode with a custom URL scheme under the target’s Info tab.
- Update the
URL_SCHEMEin the Config.xcconfig file with your URL scheme.
- Update Backend Parameters:
- Open the backend configuration file:
.../temp-number-deploy/config/env/backend.env. - Enable payments by setting
STRIPE_ENABLED=true. - Set the keys according to your Stripe configuration.
- Open the backend configuration file:
After updating payment settings, restart the backend configuration or deployment script to apply the new parameters.
Testing Payments:
- Use Stripe’s test card numbers. See the Stripe documentation for details.
- Open the project in Xcode.
- Wait for the dependencies to synchronize.
- Connect an iPhone or open a simulator.
- Click Run in Xcode.
This project is licensed under the MIT License with an API Restriction Clause. You may use it in personal and commercial projects with the Temp-Number Retail API. Refer to the LICENSE file for details.







