For some reason automatic code signing never works for my apps. Apple has made the process for sticker packs even more complicated than standard apps. Because every time I go to do this I forget what works, I have documented the process below. This works for iOS 11 – I will update it if the situation changes.
- Show the Project Navigator and click on the top level which will be your app/sticker pack name.
- In the 2nd column of Xcode under PROJECT, click on your app name and then Build Settings (3rd column) and under Code Signing Identity make sure that they are all iOS Developer.
- In the 2nd column of Xcode under TARGETS, click on your app name and then under General (3rd column):
- Signing: uncheck Automatically manage signing.
- Signing (Debug): Select the distribution profile that you set up via your developer account. This will have a bundle identifier like com.domain.AppName.
- Signing (Release): Same as for Debug.
- Now click on Build Settings in the 3rd column and scroll down to Code Signing Identity. For Debug and Release select iOS Developer, for Any iOS SDK select iOS Distribution. Make sure you also select your Development Team here. I also stuck in the Provisioning Profile that I used in step 3.
- This is the trick! Create a separate app id and provisioning profile for the sticker extension. For the app id, use the wildcard version (e.g. com.domain.appName.*). Then use this app id for the new distribution profile. The certificate used must be the same for both profiles.
- Use manual signing and assign the wildcard distribution profile to the sticker pack extension. This should allow you to successfully archive the app. When you upload it to Apple you will need to manually assign the distribution profiles again!
I think the issue is due to the “app” and the StickerPackExtension having different Bundle Identifiers, this means they need different provisioning profiles.