NFurness-esristaff

ArcGIS Runtime SDK for iOS: Dynamic Framework

Blog Post created by NFurness-esristaff Employee on Nov 13, 2017

Our instructions for manually installing the ArcGIS Runtime SDK for iOS discuss linking the Static Framework, but the 100.x version also includes a Dynamic Framework that you can use with your projects. Apple requires Dynamic Frameworks if you're, for example, building an iOS Extension (including WatchKit Extensions), or using Playgrounds.

 

Using the Dynamic Framework is straightforward. Simply browse to the SDK install location's iOS/Frameworks/Dynamic folder and drag the ArcGIS.framework into your the General->Embedded Binaries section of your target's settings.

 

 

There's one last step you need to take to ensure that your app will be accepted to the App Store, and that's to ensure that the appropriate components are stripped from the App Store submission. This is a well understood "workaround" created by the smart folks at Realm.

 

First, under the Build Phases section of your target's settings, click the + and choose New Run Script Phase.

 

 

 

Then paste in the following:

 

bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/ArcGIS.framework/strip-frameworks.sh"

 

So you end up with something like this:

 

 

Now you're ready to start working with the Runtime SDK's Dynamic Framework.

 

Why pick Dynamic or Static? That's a much broader topic, but in general linking against a Dynamic Framework means your actual executable will be smaller since it won't need to include the Static Framework at link time - instead the Dynamic Framework is seamlessly submitted to Apple alongside the executable and linked at runtime. However, if your project includes many Dynamic Frameworks, that could impact your application's startup time, so every project is different. Just be aware of the pros and cons and do what works for you.

 

Note, there is now also an ArcGIS.framework.dSYM file provided alongside the dynamic framework that can be used to symbolicate crash reports against apps submitted using the Dynamic ArcGIS.framework.

Outcomes