我正在使用安装了最后一个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。
感谢任何帮助。
答案 0 :(得分:0)
您是否阅读过在IBM MobileFirst Platform 7.0中讨论iOS 9支持的博文?
如果还没有,请立即:
看起来您正在使用“真实性”功能。如果您使用的是扩展真实性,请确保使用更新的签名工具对应用程序进行签名。
您还提到了适配器请求,并且您正在使用Xcode 7 启动iOS 9,如果使用Xcode 7,您必须: