Integrate Sticker Pack With Standard Product

May it be accomplished that an iMessage App may be packaged/integrated with a company's standard product in the Apple Store, such that on Product Version (X.Y.Z)+, the stickers are automatically installed with the mainstream offering?


If the answer to the previous question is yes, would the combined package be subjected to new rules about the maximum bundle size?

Additional research into my own questions appears to have answered them -- but now there are more questions!


Answers to the above:


Yes. iMessage Apps may be integrated by means of the established "App Extension" technique.


Uncertain. It looks like the App Extension gets merged into the original project, so I suspect the size constraints on an App are applied to the new total. This is not at all clear, since one could always release the iMessage App as a distinct SKU, subject to its own restrictions (500MB ceiling, I seem to recall reading somewhere).


New questions:


Can an App Extension have a distinct iOS Deployment Target than its Containing App?


Is the Development Team field a requirement as of iOS10? We weren't using it before, but with the App Extension added, the code-signing fails, with Development Team identified as a cause.

Accepted Answer

Just given that the extension Target has its own Deployment drop down, I would assume you can set that to 10 and have your main app be something lower.


Pretty sure the Team always has to be in there now. Regardless of whether its an extension or not. All my past Xcode projects that I test on Xcode 8 throw up a red error if I don't sign them.


As for your Uncertain question, I think your extension is totally different than the parent app. So no, I don't think the extension carries with it 500mb of unnecessary parent app baggage. Try building your app, and look at the Products group. You'll see a .app file and .appex . They should be different sizes.


What you'd want to avoid when adding assets to your project is unnecessarily including both Targets in there. So for example, you don't need to add your sticker art to the main app, and you don't need to add your launch screen image to your extension target.


Hope that makes sense!

It did make sense, and thank you, CartoonSmart employee!


I came into additional insights that may help a future visitor to this thread. One was a certain configuration of our product that caused trouble:


We have at least two build targets, "fast" and "slow". They are identical builds of the product, but the "fast" target does some file wizardry that causes it to build in minutes rather than the hour that the slow build takes.


When a person creates an App Extension to an existing project, they use Xcode's "Editor > Add Target" menu item.

This involves a screen with seven fields: Product Name, Team, Organization Name, Organization Identifier, Bundle Identifier, Project, and Embed In Application.

Little did I realize that you only get to choose one Target as the Embed In Application selection, so -- choosing the "slow" target initially, I was baffled for quite a while that the Build Scheme that I made to include the "fast" target didn't engage the stickers.


But there is hope! xcodeproj files can be edited, and the Embed In Application field merely modifies a PBXContainerItemProxy.files list. If you copy the entry that is made in one target's PBXContainerItemProxy into the other one, the App Extension becomes successfully embedded into both targets.

Integrate Sticker Pack With Standard Product
 
 
Q