Show TOC

Known Issues for Native Object APILocate this document in the navigation structure

Learn about known issues and apply workarounds for Native Object API and custom development.

    Issue #Description
  • BCP #1580099542 Change build settings for EnableBitCode and Debug Information Format in Xcode7 when using SAP Mobile Platform version 2.3 SP07.

    When building an iOS application with Xcode 7, change the default build settings for EnableBitCode and Debug Information Format so the application builds correctly with third-party libraries.

    Workaround:
    1. (Required) Set EnableBitCode to No (the default is Yes). Failing to set EnableBitCode to No results in application link errors in Xcode 7 when building with SAP Mobile Platform version 2.3 SP07 libraries.
    2. (Optional) Set Start of the navigation path Build Options Next navigation step Debug Information Format End of the navigation path to DWARF (the default is DWARF with dSYM File). Failing to set Start of the navigation path Debug Information Format End of the navigation path to DWARF generates additional non-fatal warning messages during the application linking phase.
    3. (May be required) The application may see an Application Transport Security run-time error in Xcode 7:
      Application Transport Security has blocked a cleartext HTTP (http://) 
      resource load since it is insecure. Temporary exceptions can be configured via 
      your app's Info.plist file. 
      Xcode7 default setting for NSAllowArbitraryLoad is false, however, if you must use the HTTP protocol, add this to the info.plist:
      <key>NSAppTransportSecurity</key>
           <dict>
                <key>NSAllowsArbitraryLoads</key><true/>
           </dict> 

      Find detailed information in this Apple Technical Note: App-Transport-Security-TechnoteInformation published on non-SAP site .

  • SMPONP-18226 iOS apps fail to register with SAP Mobile Server after upgrading to SAP Mobile Platform version 2.3 SP05 or SP06.

    After upgrading to SAP Mobile Platform version 2.3 SP05 or SP06 from SAP Mobile Platform versions 2.3 SP01, SP02, or SP03, an iOS app cannot successfully register with SAP Mobile Server using the iOS Object API.

    Workaround:
    1. Log in to SAP Control Center, go to Start of the navigation path localhost Next navigation step Configuration Next navigation step General Next navigation step Components End of the navigation path.
    2. Select Replication, and click the Properties button.
    3. Set the value of properties E2E encryption certificate alias and Secure sync port certificate alias to the proper e2ee alias, and click Save.
    4. Restart SAP Mobile Server.
  • SMPONP-14989 and SMPONP-15092 BlackBerry clients fail to establish direct mutual HTTPS RBS connections with SAP Mobile Server.

    In this specific scenario, the server does not return the required "Distinguished Names" in the "Certificates Request" to the BlackBerry client.

    Workaround: BlackBerry clients using  mutual SSL and RBS can connect to SAP Mobile Server through a Relay Server or Apache Proxy Server.

  • SMPONP-13170

    MBO left in inconsistent state, or errors thrown during iOS refresh

    If an iOS refresh is called on an MBO object before it has been created in the client database, the object may be left in an inconsistent state, or an exception may be thrown.

    Workaround: Prevent this from occurring by adding code to your application that only calls refresh on an object that was previously created or saved in the database.
  • SMPONP-6340 For iOS Object API applications, Code generation (command line and wizard) no longer generates KeyGeneratorPK.m and LocalKeyGeneratorPK.m files, since they are not used.

    Workaround: Remove any references to these files before compiling your project or you will get compilation errors and build failures.

  • SMPONP-3552 64-bit packaging tool cannot be launched on 64-bit Windows.

    By default, SAP Mobile SDK installer configures the system to use the 32-bit packaging tool. If you try to run the 64-bit packaging tool (PackagingTool64.bat) after completing a new or upgrade installation of SAP Mobile SDK on a 64-bit Windows system, launching the tool fails with this message:

    Cannot load 64-bit SWT libraries on 32-bit JVM
    Workaround: Set up a 64-bit JDK to work with the 64-bit packaging tool.
    1. Set system environment variables <CLASSPATH>, <JAVA_HOME>, and <Path> to point to the 64-bit JDK installed by SAP Mobile Platform at SUP_HOME\UnwiredPlatform\JDK1.6.0_31-x64.
    2. Verify that the SUP_HOME\ObjectAPI\Utils\bin\set-java-home.bat has been modified to point to the installed 64-bit JDK (where SUP_HOME is the installation directory for Sybase Mobile SDK on the 64-bit system).
    3. Launch PackagingTool64.bat.
  • RTC-347 iOS client requests might fail with an HTTP 500 error when using Apache as a reverse proxy. 

    The cause is that Apache implements the HTTP 1.1 specification in such a way that the HTTP header coming from the client, Transfer-Encoding: "Chunked" is not accepted due to the capitalized "c" in "Chunked".

    Workaround: Change Apache configuration to rewrite incoming HTTP headers. Use mod_headers and add this to the Apache configuration:
    RequestHeader edit Transfer-Encoding Chunked chunked early
  • RTC-282 Memory warnings from autoreleased objects.

    You receive memory warnings in your application because of too many autoreleased objects. One example is when there are many objects at the application level through the findAll method.

    Workaround: To reduce memory growth, use the appropriate autorelease pool. For more information, see this document from Apple: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.htmlInformation published on non-SAP site .

  • RTC-280 Failure to start a connection after a shutdown of SAP Mobile Server.

    For Windows, Windows Mobile, Android and BlackBerry Object API clients, when the device application connects to the Unwired Server, the Unwired Server shuts down, and the device application calls startConnection again immediately after the shutdown occurs, an ApplicationRuntimeException may be thrown indicating Client state error. Client is already started, without attempting to reconnect to the server.

    Workaround: You can catch the exception in the device application, sleep a few hundreds of milliseconds, and retry by calling Application.startConnection(timeout) again. After one or two seconds, try to reconnect.

  • RTC-261 When using an Apache server as a reverse proxy without SAP Hosted Relay Server to proxy Object API Applications or HTML5/JS Hybrid Apps against SAP Mobile Server version 2.2 and newer, if a custom URL suffix is used, the client may report connection failures.

    Workaround:  Clients should specify a custom URL suffix including a trailing forward slash "/". For example, "/myApp/" instead of "/myApp"

  • RTC-258 Exception when calling update on a new MBO instance.

    When you call the update method on a new MBO instance, an ObjectNotSaved exception is thrown. For example:

    MBO instance = new MBO(); 
    instance.${UpdateMethod}(); //UpdateMethod is a update method defined in the model. 

    Workaround: Do not call the update method for a new instance. Only call update when creating or saving an instance.

  • RTC-206 Root certificate required for synchronization with an HTTPS server.

    The Android Object API cannot synchronize with an HTTPS server unless the device has access to the root certificate of the certificate used to sign the certificate presented by the server. 

    Workaround: Use the root certificate on the device.

  • CR-709353 Cannot pass cookies through personalization keys using replication-based synchronization (RBS).
    Workaround: Use this code:
    SUPStringProperties *cookies = [smnwTests cookieName]; 
    [[[SUPApplication getInstance] connectionProperties] setHttpCookies:cookies];
  • CR-708707 Best practice for deleting the client database.

    By default, asynchronous operation replay is enabled. When an application is connected (by Application.StartConnection() or Application.RegisterApplication), it may receive background notifications, and trigger a synchronize or other database operation. If you try to delete the database, you may receive database exceptions.

    Workaround: Before deleting the database, stop the application connection (Application.StopConnection()).

  • CR-692374 Enabling compression incurs additional processing on the device and the server side to optimize the amount of data to be transferred over the network.

    Workaround: Carefully evaluate whether the compression trade-off is appropriate in the deployment environment, and carefully size the server capacity to support it. If appropriate in a particular environment, follow the SAP Mobile Platform Developer Guides to enable compression.

  • CR-690308 The query.getRow() API may not return the correct row to BlackBerry clients.

    For example, in this connected result set for a BlackBerry client, rs.getRow() may not return the correct value:

    Query query = new Query(); 
    query.select("c.id as Id, c.fname as Fname, c.state as countState"); 
    query.from("Customer", "c"); 
    query.setConnectedResultSetEnabled(true); 
    QueryResultSet rs = MyDatabase.executeQuery(query); 
    rs.executeQuery(); 
    rs.last(); 
    rs.afterLast(); 
    rs.previous();
    

    Workaround: Do not use the query.getRow() API QueryResultSet.previous\next return Boolean to indicate if the current position is valid. Rely only on the return value.

  • CR-675716 SQLite cannot support create operations with more than 3MB of data, which is roughly 128 columns at 64KB per column on Windows Mobile devices.

    In Windows Mobile applications that use message-based synchronization, when a row reaches 3MB or more, and the client invokes the SQLite create operation during subscription, an internal exception is generated, data import fails, and the import operation fails to commit the transaction.

    Workaround: None.