2012-09-25 44 views
5

背景:錯誤一個iPad/iOS6.0

蘋果提供了一個「信息亭模式」自己的iPads作爲iOS6的的一部分,該鎖定設備集成到一個應用程序中(甚至可以直接啓動應用程序)。非常適合在零售店/餐廳等使用iPad。

爲了使用它,首先必須將設備設置爲使用Apple Configurator的「受監控」設備。然後,您將一個特殊條目添加到名爲「App Lock」的配置文件中。我跟着recently-updated configuration profile document。實質上,您只需將PayloadType設置爲'com.apple.app.lock'並添加一個名爲'Identifier'的屬性,該屬性設置爲應用程序捆綁ID的值。

當我嘗試將配置文件添加到iPad(無論是通過Safari鏈接,MDM還是Apple Configurator)時,它會拒絕它。

在Xcode控制檯輸出顯示以下內容:

Sep 24 17:51:56 Test-iPad mc_mobile_tunnel[487] <Notice>: (Note) MDM: Attempting to perform Supervised request: ProfileList 
Sep 24 17:51:56 Test-iPad installd[30] <Error>: 0x2ff9f000 filter_attributes: Info.plist keys requested via MobileInstallationLookup/Browse in client Apple Configurator (via mobile_installation_proxy) were not found in MobileInstallation's cache. Please file a bug requesting that these keys be added: <CFBasicHash 0x1e58b0b0 [0x3d8f2100]>{type = mutable set, count = 1, 
    entries => 
     2 : <CFString 0x3d8de564 [0x3d8f2100]>{contents = "CFBundleSignature"} 
    } 
Sep 24 17:51:57 Test-iPad mc_mobile_tunnel[492] <Notice>: (Error) MC: MCAppWhitelistPayload Can't parse payload: NSError: 
    Desc : The payload 「Test Profile」 is invalid. 
    Sugg : The field 「App」 is invalid. 
    US Desc: The payload 「Test Profile」 is invalid. 
    US Sugg: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2000 
    Type : MCFatalError 
    Params : (
     "Test Profile" 
    ) 
    ...Underlying error: 
    NSError: 
    Desc : The field 「App」 is invalid. 
    US Desc: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2003 
    Type : MCFatalError 
    Params : (
     App 
    ) 
Sep 24 17:51:57 Test-iPad mc_mobile_tunnel[492] <Notice>: (Error) MC: Payload 「(null)」 contains ignored fields. They are: <CFBasicHash 0x20819140 [0x3d8f2100]>{type = mutable dict, count = 1, 
    entries => 
     1 : <CFString 0x1f527bd0 [0x3d8f2100]>{contents = "Identifier"} = <CFString 0x1f527c10 [0x3d8f2100]>{contents = "com.hubworks.myapp"} 
    } 
Sep 24 17:51:57 Test-iPad mc_mobile_tunnel[492] <Notice>: (Error) MC: Cannot create profile of type 「com.apple.app.lock」. Error: NSError: 
    Desc : The payload 「Test Profile」 is invalid. 
    Sugg : The field 「App」 is invalid. 
    US Desc: The payload 「Test Profile」 is invalid. 
    US Sugg: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2000 
    Type : MCFatalError 
    Params : (
     "Test Profile" 
    ) 
    ...Underlying error: 
    NSError: 
    Desc : The field 「App」 is invalid. 
    US Desc: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2003 
    Type : MCFatalError 
    Params : (
     App 
    ) 
Sep 24 17:51:57 Test-iPad mc_mobile_tunnel[492] <Notice>: (Error) MC: Profile MCConfigurationProfile 0x1f526100, version 1: 
    Display Name: 「Test Profile」 
    Identifier : home-macbook-air.local.2A8DC5A2-937E-4246-B2AF-7C756C30C447 
    UUID  : E06A5B33-9CD3-40CB-8611-0479E642B427 
    Is Stub  : No 
    Locked  : No 
    Encrypted : No 
    Trusted  : 2 
    Signed  : Yes 
    Signed by : Apple Configurator (58:55:CA:F7:24:B9) 
    Can't parse profile: NSError: 
    Desc : The profile 「Test Profile」 is invalid. 
    Sugg : The payload 「Test Profile」 is invalid. 
    US Desc: The profile 「Test Profile」 is invalid. 
    US Sugg: The payload 「Test Profile」 is invalid. 
    Domain : MCProfileErrorDomain 
    Code : 1000 
    Type : MCFatalError 
    Params : (
     "Test Profile" 
    ) 
    ...Underlying error: 
    NSError: 
    Desc : The payload 「Test Profile」 is invalid. 
    Sugg : The field 「App」 is invalid. 
    US Desc: The payload 「Test Profile」 is invalid. 
    US Sugg: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2000 
    Type : MCFatalError 
    Params : (
     "Test Profile" 
    ) 
    ...Underlying error: 
    NSError: 
    Desc : The field 「App」 is invalid. 
    US Desc: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2003 
    Type : MCFatalError 
    Params : (
     App 
    ) 
    Extra info: 
    { 
     isPrimary = 1; 
    } 
Sep 24 17:51:57 Test-iPad mc_mobile_tunnel[492] <Notice>: (Error) MC: Failed to parse profile data. Error: NSError: 
    Desc : The profile 「Test Profile」 is invalid. 
    Sugg : The payload 「Test Profile」 is invalid. 
    US Desc: The profile 「Test Profile」 is invalid. 
    US Sugg: The payload 「Test Profile」 is invalid. 
    Domain : MCProfileErrorDomain 
    Code : 1000 
    Type : MCFatalError 
    Params : (
     "Test Profile" 
    ) 
    ...Underlying error: 
    NSError: 
    Desc : The payload 「Test Profile」 is invalid. 
    Sugg : The field 「App」 is invalid. 
    US Desc: The payload 「Test Profile」 is invalid. 
    US Sugg: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2000 
    Type : MCFatalError 
    Params : (
     "Test Profile" 
    ) 
    ...Underlying error: 
    NSError: 
    Desc : The field 「App」 is invalid. 
    US Desc: The field 「App」 is invalid. 
    Domain : MCPayloadErrorDomain 
    Code : 2003 
    Type : MCFatalError 
    Params : (
     App 
    ) 
    Extra info: 
    { 
     isPrimary = 1; 
    } 
+1

這是我正在使用的配置文件(與個人識別信息更改):http://www.pastebin.com/srB9iqHY – looselycoupled

回答

7

我想通了!我要麼誤讀它,要麼Apple在其configuration profile reference中遺漏了一點細節。爲了避免該錯誤,必須將「標識符」/ bundleId鍵/值對包裝在字典中,其自身是名爲「App」的鍵的值。請看下圖:

<?xml version="1.0"?> 
<plist version="1.0"> 
    <dict> 
    <key>PayloadContent</key> 
    <array> 
     <dict> 
     <key>App</key> 
     <dict> 
      <key>Identifier</key> 
      <string>bundle_identifier_of_the_app</string> 
     </dict> 
     <key>PayloadType</key> 
     <string>com.apple.app.lock</string> 
     <key>PayloadIdentifier</key> 
     <string>#######-#######-#######-######</string> 
     <key>PayloadUUID</key> 
     <string>#######-#######-#######-######</string> 
     <key>PayloadVersion</key> 
     <integer>#</integer> 
     </dict> 
    </array> 
    <key>PayloadType</key> 
    <string>Configuration</string> 
    <key>PayloadDisplayName</key> 
    <string>##########</string> 
    <key>PayloadIdentifier</key> 
    <string>######-#####-######-#####</string> 
    <key>PayloadUUID</key> 
    <string>######-######-#####-#####</string> 
    <key>PayloadVersion</key> 
    <integer>#</integer> 
    </dict> 
</plist> 
+0

這仍然適用於ios8?它也可以在iPod Touch設備上工作嗎? –

0

是在IOS 9.1

還在工作,你可以像這樣添加選項:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict> 
<key>PayloadContent</key> 
<array> 
     <dict> 
     <key>App</key> 
     <dict> 
      <key>Identifier</key> 
      <string>bundle_identifier_of_the_app</string> 
      <key>Options</key> 
      <dict> 
      <key>DisableAutoLock</key> 
      <true/> 
      <key>DisableVolumeButtons</key> 
      <true/> 
      </dict> 
     </dict> 
     <key>PayloadType</key> 
     <string>###.#####.#####</string> 
     <key>PayloadIdentifier</key> 
     <string>com.klangerfinder.lockdown</string> 
     <key>PayloadUUID</key> 
     <string>######-######-#####-#####</string> 
     <key>PayloadVersion</key> 
     <integer>1</integer> 
     </dict> 
    </array> 
    <key>PayloadType</key> 
    <string>Configuration</string> 
    <key>PayloadDisplayName</key> 
    <string>AppLockDown</string> 
    <key>PayloadIdentifier</key> 
    <string>###.#####.#####</string> 
    <key>PayloadUUID</key> 
    <string>######-######-#####-#####</string> 
    <key>PayloadVersion</key> 
    <integer>1</integer> 
</dict> 
</plist> 

有很多老post's在那裏。這和上面是實際工作的!