Set Up Your Environment
Now that you have taken care of all the preliminary issues, we can start building the app. Throughout this guide, you will continously modify this project to extend its functionality to cover a number of basic features.
- Developing on the new Arm-based Apple Silicon (M1) Macs requires building and running on a physical iOS device or using an iOS simulator running iOS 13.7, e.g. iPhone 11. This is a temporary limitation in Google Maps SDK for iOS, and as such also a limitation in MapsIndoors, due to the dependency to Google Maps.
- Due to a bug in CocoaPods it is necessary to include the
post_installhook in your Podfile described in the PodFile post_install wiki.
Create an Xcode Project
We recommend using Xcode for following along, for this guide we will be using Xcode 13.0. Note that an iOS mobile device is not required, as Xcode allows the use of a simulator. Furthermore, in accordance with the known issues with Google Maps and Arm-based Apple Silicon (M1) Macs, we will be using an iPhone 11 (iOS 13.7) simulator throughout.
We start off by creating an Xcode project using the App template,
For the project settings, you can call it anything you like, however ensure the following settings are set to follow along easier,
- Interface: Storyboard
- Language: Swift
You should now have a project folder with the following files,
For the sake of simplicity we will only be operating on these pre-generated files throughout the guide.
Installing the MapsIndoors SDK
MapsIndoors can either be installed using CocoaPods (Getting Started with CocoaPods) or through a manual installation.
Installing MapsIndoors Using CocoaPods
From MapsIndoors SDK version 3.32.0 and up, in order for CocoaPods to fetch the SDK properly it is neccessary to install
git-lfs (Install Guide).
Create an empty text file named
Podfilein your project directory (same folder as your .xcodeproj).
Add your dependecies to the Podfile as followed (replace
YOUR_APPLICATION_TARGET_NAME_HEREwith your project name),
platform :ios, '15.0' # Replace 15.0 with you iOS Minimum Deployment Target
target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
pod 'MapsIndoors', '~>3.50'
In the line containing
pod 'MapsIndoors', '~>3.50', where it currently says
3.50, be sure to replace this number with whatever the latest version of the iOS SDK is.
Save the Podfile and open a terminal in the directory of the project.
pod installin the terminal.
From this time onwards, use the .xcworkspace file to open the project from now on.
Install MapsIndoors Manually
In order for MapsIndoors to be operational, the Google Maps SDK must also be installed since MapsIndoors rely on it:
- Google Maps iOS SDK: manual install. You should use Google Maps iOS version 4.2.0 since MapsIndoors >= 3.30.0 is linked against this version.
When the Google Maps SDK dependency is installed, go through these steps to install MapsIndoors:
- Download and unzip the latest v3 MapsIndoors.xcframework.
- Drag and drop the XCFramework into your XCode project. In the dialog that pops up, choose “Copy items if needed” and make sure the XCFramework is added to the correct target.
- In Xcode, go to "Build Phases" for your target and remove the three Google Maps XCFrameworks from the "Link Binary With Libraries" section.
- This is to avoid double linking of the Google Maps SDK which will result in an app crash early after running your app.
This "Getting Started" guide is created using a specific version of the SDK. When moving beyond the "Getting Started" guide, please be sure to use the latest version of the SDK.
Adding API Credentials
Open back up the project and navigate to the file
Add the following import statements to the top of the file,
Insert the following into the
Finally, remember to replace
YOUR_GOOGLE_API_KEY with your Google API key and
YOUR_MAPSINDOORS_API_KEY with your MapsIndoors API demo key