-
Notifications
You must be signed in to change notification settings - Fork 436
iOS App Extension Support #3427
Description
App extensions are like separate apps embedded within the main app bundle on iOS. They have their own App ID and need their own provisioning profile and entitlements. I plan to add support for adding app extensions by using the the following process:
In maven build:
- When performing iOS build, it will look for directories of the form ios/app_extensions/*. These directories are app extension projects that have already been created in Xcode.
1.1. For each of these appextension projects, it zips them with the extension ".ios.appext", and includes them in the bundle that is sent to the build server. - Also, when performing iOS build, it will look for provisioning profiles in the common/iosCerts directory, and it will include these in the bundle that is sent to the build server.
On build server
- Any files with ios.appext it finds in the bundle, it will extract and add to the main project as an app extension.
- Any provisioning profiles it finds in the bundle, it will add to the project's keychain so that they can be referenced during build.
- It provides necessary wiring so that the project will build with the app extensions.
In Maven "Generate Xcode Project" build target
It will perform same steps as build server to inject the share extension into the project. It may not do anything with provisioning profiles, and rather let Xcode take care of this, like it does with the main project.
In Certificate wizard
If the user chooses to generate provisioning profile, then it will look in the ios/app_extensions/ directory to find any app extensions that need provisioning profiles, and it will generate profiles for them also, and save them in the common/iosCerts directory.