> ## Documentation Index
> Fetch the complete documentation index at: https://moengage-add-partner-guide-reddit-ads-conversions.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Avoid Push Template Issues in iOS Push Notifications (SDK version 9.x.x) When Notification Content Extension is Not Implemented?

> Fix iOS push template issues (carousel, colors, fonts) on SDK 9.x.x by setting up a Notification Content Extension in your MoEngage iOS project.

## Problem

Push templates (carousel images, background color, font color, and so on) do not display correctly in Push notifications when the Notification Content Extension is not implemented.

## Instruction

Perform the following steps:

1. Create a Notification Content Extension Target.
   <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/YwS7KziIh3WXw8yb/images/moengage_d10ae6.png?fit=max&auto=format&n=YwS7KziIh3WXw8yb&q=85&s=a8821dfc67e7a8bd44aa5e5a374dbc1f" alt="NCE.png" width="1454" height="1040" data-path="images/moengage_d10ae6.png" />
   * *Name the Extension Target.* Choose a name for the extension target. **Swift** is recommended as the language as it works seamlessly with Objective-C projects too. <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/nkT_HxDV9WG1qiJY/images/moengage_911e54.png?fit=max&auto=format&n=nkT_HxDV9WG1qiJY&q=85&s=0953b02353ad24a7c63672e98d59e76f" alt="name swift.png" width="1412" height="1016" data-path="images/moengage_911e54.png" />
   * Add the **AppGroupId** to the Notification Content Extension’s **Signing & Capabilities** settings.
     <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/wGkunhyYEdvb8hOY/images/moengage_340deb.png?fit=max&auto=format&n=wGkunhyYEdvb8hOY&q=85&s=7a4a1d63338672840eeaaf24091e3641" alt="signing.png" width="2560" height="836" data-path="images/moengage_340deb.png" />
   * Set the minimum deployment iOS version of the Notification Content Extension to match the main app’s iOS version.
     <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/z0lAjPO1wWGcNKDO/images/moengage_cf2e7a.png?fit=max&auto=format&n=z0lAjPO1wWGcNKDO&q=85&s=0d467305af79582ede20dc1ab82ec6c8" alt="deployment.png" width="1920" height="455" data-path="images/moengage_cf2e7a.png" />
2. *Integrate the MORichNotification Framework into the Notification Content Extension Target.*
   * In your podfile, add the Notification Content Extension as a separate target and install the **MORichNotification** framework.
     ```swift Swift theme={null}
     target 'MoEngageDemo' do
     use\_frameworks!
     pod 'MoEngage-iOS-SDK'
     end
     target 'MoEngageNotificationService' do
     use\_frameworks! #use use\_frameworks only if included in main target as in above scenario
     pod 'MoEngageRichNotification'
     end
     target 'MoegageRichContent" do
     use\_frameworks! #use use\_frameworks only if included in main target as in above scenario
     pod 'MoEngageRichNotification'
     end
     ```
3. Code changes in **NotificationViewController.swift** file.
   ```swift Swift theme={null}
   import UIKit
   import UserNotifications
   import UserNotificationsUI
   import MoEngageRichNotification
   class NotificationViewController: UIViewController, UNNotificationContentExtension {
       @IBOutlet var label: UILabel?
       
       override func viewDidLoad() {
           super.viewDidLoad()
           MoEngageSDKRichNotification.setAppGroupID("group.com.XXXXXXXXXXXXXXXX")
       }
       
       func didReceive(_ notification: UNNotification) {
           if #available(iOSApplicationExtension 12.0, *) {
               MoEngageSDKRichNotification.addPushTemplate(toController: self, withNotification: notification) 
           } else {
               // Fallback on earlier versions
           }
       }
   }
   ```
4. Select **MainInterface.storyboard** in the Content extension, remove the default label, and set the background color of the View to clear.

<img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/kLACeWQ8XT1BfCV6/images/moengage_b62459.png?fit=max&auto=format&n=kLACeWQ8XT1BfCV6&q=85&s=f1fa2a0c1b1de9e25df4c63d8e9eda8a" alt="main.png" width="3360" height="1646" data-path="images/moengage_b62459.png" />

5. Info.plist changes:
   ```swift Swift theme={null}
   <key>NSExtensionAttributes</key> 
   <dict>
         <key>UNNotificationExtensionCategory</key>
         <string>MOE_PUSH_TEMPLATE</string>
         <key>UNNotificationExtensionDefaultContentHidden</key>
         <true/>
         <key>UNNotificationExtensionInitialContentSizeRatio</key>
         <real>1.2</real>
         <key>UNNotificationExtensionUserInteractionEnabled</key>
         <true/>
   </dict>
   ```
   <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/TvWiaOQGjW2YV3k5/images/moengage_aaf96d.png?fit=max&auto=format&n=TvWiaOQGjW2YV3k5&q=85&s=4702934485a10e933424b9eab7268137" alt="NSExtension.png" width="1948" height="786" data-path="images/moengage_aaf96d.png" />
6. *Check Build Phases in Main App Target.*
   * In Embed App Extensions/Embed Foundation Extensions, ensure that **Copy only when installing** is not selected. <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/EtUh5XRDyRD_33AP/images/moengage_48edea.png?fit=max&auto=format&n=EtUh5XRDyRD_33AP&q=85&s=3594f005dabe662c6b9e0164b578bda3" alt="copy only.png" width="2740" height="930" data-path="images/moengage_48edea.png" />
7. *Ensure Consistent appGroupId Across Configurations.*
   * Verify that the **appGroupId** is consistent across all schemes and configurations (for example, Debug/Release/QA/UAT) in the project.
8. *Align Build Configuration.*
   * When running or archiving the project, make sure that the Build Configuration for the Main Target, Notification Service Extension, and Notification Content Extension Target points to the same scheme/configuration. <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/15czwRrLgUCczfJ5/images/moengage_26e08d.png?fit=max&auto=format&n=15czwRrLgUCczfJ5&q=85&s=a7e54ba903264106a37f661c9d9c23c5" alt="debug.png" width="1750" height="556" data-path="images/moengage_26e08d.png" /> <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/iukwwVT18Lvc9L_I/images/moengage_3ed4ee.png?fit=max&auto=format&n=iukwwVT18Lvc9L_I&q=85&s=774b011da7596bb9710d7f8d74fe4547" alt="target.png" width="1832" height="446" data-path="images/moengage_3ed4ee.png" /> <img src="https://mintcdn.com/moengage-add-partner-guide-reddit-ads-conversions/PinNDERAY3o3CwG-/images/moengage_c6b4f5.png?fit=max&auto=format&n=PinNDERAY3o3CwG-&q=85&s=b04081960274c38b194483b760b325bf" alt="duplicate.png" width="1826" height="976" data-path="images/moengage_c6b4f5.png" />
