X

The Mobile & Digital Assistant Blog covers the latest in mobile and conversational AI development and engagement

A quick checklist for setting up your iOS application for Oracle Mobile Cloud Service

Chris Muir
Product Manager

On a nearly daily basis I create iOS demo applications in Xcode with Oracle Mobile Cloud Service (MCS). When I started out building iOS apps for MCS our documentation was invaluable for how to install the MCS native SDK for iOS, and we even published a video to help beginners. But on a day by day basis given I've done this so many times I just want a simple checklist to remind me of the steps. And I'm pretty sure this will be useful for you to.

So without further explanation, as follows is a condensed set of steps you can use as a checklist for installing the MCS native SDK into a brand new iOS Xcode project:

  1. Download MCS iOS SDK from MCS, unzip and rename base directory 'MCS'.
  2. In Xcode create a new project (e.g. MyApp), Single View Application.
  3. From the OSX Finder drag 'n drop the MCS directory as the first node under the Xcode MyApp project. In the copy dialog ensure 'Copy items if needed’ and 'Create groups' are selected.
  4. With the MyApp project selected in Xcode and its 'General' page showing, navigate to the 'Linked Frameworks and Libraries' section and add three libraries: SystemConfiguration.framework, Security.framework, CoreLocation.framework.
  5. Select the MyApp project’s 'Build Settings' and search for 'Other Linker Flags'. Set this to '-ObjC' (without quotes, observe the case).
  6. Still under 'Build Settings' search for 'Search Paths'. Set 'Always Search User Paths' = Yes and 'User Header Search Paths' = ’$(PROJECT_DIR)/MCS/release-iphoneos' (without quotes) and set to 'recursive'.
  7. For the previous step once you click off the User Header Fields the '$(PROJECT_DIR)/MCS/release-iphoneos' should resolve to something like /Users/chris/Desktop/MyApp/MCS/release-iphoneos. In the OSX Finder double check what path the MCS subdirectory was actually added to the MyApp project then amend the User Header Fields property appropriately. A failure to do this will result in a compiler error later where Xcode will complain it can’t find OMCCore/OMCServiceProxy.h.
  8. In Xcode move the MCS/Documentation/OMC.plist file to a node under the project so it is more visible.
  9. Open the OMC.plist file 'as XML Source Code' via the right client menu and substitute the required values from the MCS MobileBackend. An example file can be seen below.
  10. Run the project - this should complete successfully.

An example OMC.plist file follows:


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

  <key>mobileBackends</key>

  <dict>

    <key>MyAppMCSMobileBackend/1.0</key>

    <dict>

      <key>default

      <true/>

      <key>baseURL

      <string>http://yourmcsserver.oracle.com:7201</string>

      <key>appKey</key>

      <string>112ad312-4444-4286-b1a1-a657b05jy3fc</string>

      <key>authorization</key>

      <dict>

        <key>authenticationType</key>

        <string>Basic</string>

        <key>OAuth</key>

        <dict>

          <key>tokenEndpoint</key>

          <string>http://yourmcsserver.oracle.com:14100/oam/oauth2/tokens</string>

          <key>identityDomain</key>

          <string>yourDomain</string>

          <key>clientID</key>

          <string>d133b76b-a22f-4a35-ddec-4cde9b6d7fa6</string>

          <key>clientSecret</key>

          <string>bNNlXXaAbMaadbbLoDr8</string>

        </dict>

        <key>Basic</key>

        <dict>

          <key>mobileBackendID</key>

          <string>f7f5bb7365-586f-4043-a2d4-2a22044546c0</string>

          <key>anonymousKey</key>

          <string>ALAATXVfREVBAVBUSUNPTl9FA0EGTEBfQU5PTaaAG1VTX0BQURlEOnArZWJxGmwuamEwbTda</string>

        </dict>

      </dict>

    </dict>

  </dict>

  <key>logLevel</key><string>debug</string>

</dict>

</plist>

If you're working with Objective-C you're set to go. If you're working with Swift, you also need to include a bridging header file. The instructions for doing this were covered in a recent post.

Join the discussion

Comments ( 1 )
  • guest Wednesday, July 20, 2016

    A recent errata to make readers aware of.

    When generating/building an app in Xcode, if Enable Bitcode is set to YES for a project that uses the iOS SDK, you may see a build error like the one below stating that a bitcode bundle could not be generated.

    limIDMMobileSDK.a(OMCConnectionHandler.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7

    Workaround: Go to the build settings for the app in Xcode and set Enable Bitcode to NO.

    Documented as a current MCS Known Issue here: https://docs.oracle.com/cloud/latest/mobilecs_gs/MCSKI/GUID-4743A5BC-D2BE-437F-A912-15A4AB539931.htm#MCSKI-GUID-B5E7CBFF-39DF-4E24-B9BA-7BAC6DFE6C93


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.

Recent Content