IBM MobileFirst Platform(7.0)在iOS 9上失败,激活了testDeviceId配置类型auto

时间:2015-10-05 15:24:32

标签: ios ios9 ibm-mobilefirst

我正在使用安装了最后一个iFix的IBM MobileFirst Platform 7.0开发应用程序(IF201509300707)。当设备配置被激活时(在自动类型上)并且适配器的任何过程都受到相应的安全测试的保护,iOS上的应用程序(在iOS 9上使用Xcode 7构建)在cordova框架的类CDVCommandQueue.m上崩溃这一行:

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

调试时,这是显示的信息:

obj:

normalSelector:" signDeviceAuth:"

命令className:DeviceAuth

命令methodName:signDeviceAuth

命令参数:

<__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
)

这是该应用的当前配置:

authenticationConfig:

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

在适配器配置(adapter.xml)中:

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

编辑:

我没有使用扩展真实性。已禁用BitCode和ATS以启用应用程序的编译和服务消耗。

说,该应用程序正在从MobileFirst Platform Server编译,安装和完成其他服务(甚至受到其他安全测试的保护)。

安装iFix后,我删除了iPhone环境的原生文件夹内容并重新构建,但它仍然在发生。

**编辑2 **

我再次遇到这个问题,但在这种情况下,问题在于正在分发的应用程序&#34; In House&#34;使用企业Apple开发者帐户。使用标准开发人员Apple Developer Account生成的相同IPA不会出现此问题。

这是Symbolicated Crash报告的第一部分:

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

这种情况发生在带有iOS 9.2.1的iPhone 6,带有iOS 9.1的iPhone 6和带有iOS 9.2的iPhone 5(使用Xcode版本7.2(7C68)构建)和MobileFrist 7.0.0.00.20150930-0707。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您是否阅读过在IBM MobileFirst Platform 7.0中讨论iOS 9支持的博文?

如果还没有,请立即:

看起来您正在使用“真实性”功能。如果您使用的是扩展真实性,请确保使用更新的签名工具对应用程序进行签名。

您还提到了适配器请求,并且您正在使用Xcode 7 启动iOS 9,如果使用Xcode 7,您必须:

  1. 禁用Bitcode支持(因为MFPF目前不支持)
  2. 禁用应用程序传输安全性(ATS)支持或将开发服务器列入白名单,否则请求将失败。