0
votes

I'm developing an app with IBM MobileFirst Platform 7.0 with the last iFix installed (IF201509300707). When the device provisioning is activated (on auto type) and any procedure of an adapter is protected with the corresponding security test, the app on iOS (built with Xcode 7 on iOS 9) crashes on the class CDVCommandQueue.m of the cordova framework on the line:

((void (*)(id, SEL, id))objc_msgSend)(obj, normalSelector, command);

When debugging, this is the info shown:

obj :

normalSelector: "signDeviceAuth:"

command className: DeviceAuth

command methodName: signDeviceAuth

command arguments:

<__NSArrayM 0x13c6a4d80>(
{
    app =     {
        id = App;
        version = "1.0";
    };
    custom =     {
    };
    device =     {
        environment = iphone;
        id = "XXXXXXXXXXXXXXXXXXXXXXXXXX";
        model = "iPhone7,2";
        os = "9.0.2";
    };
    token = XXXXXXXXXXXXXXXXXXXXX;
},
application,
1
)

This is the current configuration of the app:

authenticationConfig:

<mobileSecurityTest name="Mobile_SecurityTest">
    <testAppAuthenticity />
    <testDeviceId provisioningType="auto" />
</mobileSecurityTest>

In the adapter config (adapter.xml):

<procedure name="getTrxID" securityTest="Mobile_SecurityTest"/>

Edited:

I'm not using Extended Authenticity. The BitCode and ATS have been disabled for enabling compilation and service comsumption from the app.

Said that, the app is compiling, installing and consumming other services from the MobileFirst Platform Server (even protected with other security tests).

After installing the iFix, I deleted the native folder contents of the iPhone environment and built it again, but it's still happening.

** Edited 2 **

I'm having this issue again, but in this case, the problem is on the application being distributed "In House" with an Enterprise Apple Developer Account. The same IPA generated with a Standard Developer Apple Developer Account does not present this problem.

This is the first part of the Symbolicated Crash report:

Incident Identifier: 05C8E750-79DF-41C7-8F5E-017AB480CDEC
CrashReporter Key:   TODO
Hardware Model:      iPhone7,2
Process:         MobileApp [428]
Path:            /var/mobile/Containers/Bundle/Application/318B039F-DEF5-456E-A1C8-F9888BE513B2/MobileApp.app/MobileApp
Identifier:      XXXXXXXXXXXXXXXX
SessionId:        AF69E4E7-B585-4CD5-815D-BAA525E07E35
Version:         1.0 (1.0)
Code Type:       ARM-64
Parent Process:  ??? [1]

Date/Time:       2016-01-20 17:40:06 +0000
OS Version:      iPhone OS 9.2 (13C75)
Report Version:  104

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0x10
Crashed Thread:  0

Thread 0 Crashed:
0   Security                            0x000000018191fd88 SecKeyGetBlockSize + 0
1   MobileApp                           0x0000000100185c38 +[WLDeviceAuthManager signDeviceAuth:entity:isPEnabled:] + 1172
2   MobileApp                           0x0000000100183f34 -[DeviceAuthPlugin signDeviceAuth:] + 384
3   MobileApp                           0x00000001000dcb64 -[CDVCommandQueue execute:] + 504
4   MobileApp                           0x00000001000dc878 -[CDVCommandQueue executePending] + 456
5   Foundation                          0x0000000181eae44c __NSFireDelayedPerform + 428
6   CoreFoundation                      0x00000001814b15f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
7   CoreFoundation                      0x00000001814b1298 __CFRunLoopDoTimer + 884
8   CoreFoundation                      0x00000001814ae9ac __CFRunLoopRun + 1520
9   CoreFoundation                      0x00000001813dd680 CFRunLoopRunSpecific + 384
10  GraphicsServices                    0x00000001828ec088 GSEventRunModal + 180
11  UIKit                               0x0000000186254d90 UIApplicationMain + 204
12  MobileApp                           0x00000001002cd0c0 main (main.m:14)
13  libdyld.dylib                       0x0000000180f7e8b8 start + 4

This is happening on iPhone 6 with iOS 9.2.1, iPhone 6 with iOS 9.1 and iPhone 5 with iOS 9.2 (built with Xcode Version 7.2 (7C68)) with MobileFrist 7.0.0.00.20150930-0707.

Any help is appreciated.

1

1 Answers

0
votes

Did you read the blog posts that talk about iOS 9 support in IBM MobileFirst Platform 7.0?

If you haven't, please do so now:

It looks like you are using the Authenticity feature. If you are using Extended Authenticity make sure you are signing the application with the updated tool for signing.

You also mention adapter requests, and that you are using Xcode 7.
Starting iOS 9, if using Xcode 7 you must:

  1. Disable Bitcode support (as it is currently not supported by MFPF)
  2. Either disable Application Transport Security (ATS) support or whitelist your development server, otherwise requests will fail.