iOS MDM 注册在 iOS 9 台设备中失败

iOS MDM enrollment fails in iOS 9 devices

这以前适用于 iOS 7 和 8 设备,但现在新的 iOS 9 设备注册失败。这是我在设备日志中看到的内容。

Oct 26 18:00:34 iPhone profiled[412] <Notice>: (Note ) MC: Enrolling in OTA Profile service...
Oct 26 18:00:35 iPhone profiled[412] <Error>:  SecTrustEvaluate  [leaf AnchorTrusted]
Oct 26 18:00:38 iPhone securityd[83] <Error>:  securityd_xpc_dictionary_handler profiled[412] add Error Domain=NSOSStatusErrorDomain Code=-25299 "duplicate item O,cert,159EFDE0,L,dku,com.apple.certificates,0,ctyp,cenc,labl,subj,issr,slnr,pkhh,v_Data,20151026123038.608026Z,7C914284" UserInfo={NSDescription=duplicate item O,cert,159EFDE0,L,dku,com.apple.certificates,0,ctyp,cenc,labl,subj,issr,slnr,pkhh,v_Data,20151026123038.608026Z,7C914284}
Oct 26 18:00:38 iPhone profiled[412] <Error>:  SecOSStatusWith error:[-25299] Error Domain=NSOSStatusErrorDomain Code=-25299 "duplicate item O,cert,159EFDE0,L,dku,com.apple.certificates,0,ctyp,cenc,labl,subj,issr,slnr,pkhh,v_Data,20151026123038.608026Z,7C914284" UserInfo={NSDescription=duplicate item O,cert,159EFDE0,L,dku,com.apple.certificates,0,ctyp,cenc,labl,subj,issr,slnr,pkhh,v_Data,20151026123038.608026Z,7C914284}
Oct 26 18:00:38 iPhone profiled[412] <Error>:  SecTrustEvaluate  [leaf AnchorTrusted]
Oct 26 18:00:38 iPhone profiled[412] <Notice>: (Note ) MC: Attempting to retrieve issued certificate...
Oct 26 18:00:39 iPhone securityd[83] <Error>:  SecDbRecordChange db <SecDbConnection rw open> changed outside txn
Oct 26 18:00:39 iPhone profiled[412] <Notice>: (Note ) MC: Issued certificate received.
Oct 26 18:00:39 iPhone Preferences[406] <Notice>: (Error) MC: Install profile data, interactive error. Error: NSError:
    Desc   : Couldn’t communicate with a helper application.
    Sugg   : Try your operation again. If that fails, quit and relaunch the application and try again.
    Domain : NSCocoaErrorDomain
    Code   : 4097
    Extra info:
    {
        NSDebugDescription = "connection to service named com.apple.managedconfiguration.profiled";
    }
Oct 26 18:00:39 iPhone com.apple.xpc.launchd[1] (com.apple.managedconfiguration.profiled[412]) <Notice>: Service exited due to signal: Trace/BPT trap: 5
Oct 26 18:00:40 iPhone ReportCrash[423] <Error>: assertion failed: 13A452: libsystem_trace.dylib + 15931 [45DE3123-E22D-320F-9F75-1CCD65A33451]: 0x0
Oct 26 18:00:40 iPhone Unknown[423] <Error>: 
Oct 26 18:00:40 iPhone ReportCrash[423] <Warning>: os_activity_diagnostic_for_pid() failed!
Oct 26 18:00:40 iPhone ReportCrash[423] <Notice>: Formulating report for corpse[412] profiled

只是回答我自己的问题。为了从 csr 创建 X509 证书,您需要创建相对可分辨名称 (RDN) 并将其添加到证书中。从 PKCS10CertificationRequest 获取 X500Name 并将其设置为 X509v3CertificateBuilder 后,它会抛出此错误。相反,您必须创建单独的 X500Names 并继续生成解决此问题的证书。

assertion failed: 13A452: libsystem_trace.dylib + 15931

表示您的进程 "profiled" 超出了其分配的内存并被 kernel/jetsam 终止。 iOS 9 具有积极的内存管理并杀死所有进程,甚至每晚重新启动设备。