2012-03-08 49 views
3

最近,我一直在部署我的應用程序內部 (企業開發人員程序)時出現問題,報告說某些權利 值不是在配置配置文件中指定的值。 我開始尋找到這個問題,並發現,當然 值不匹配:該文件名爲.mobileprovision的與配置不匹配的全部元素

內容:

  <key>application-identifier</key> 
      <string>M7X5D8MA6U.some.masked.Identifier</string> 
      <key>com.apple.developer.ubiquity-container-identifiers</key> 
      <array> 
        <string>KNHHJPPHR7.*</string> 
      </array> 
      <key>com.apple.developer.ubiquity-kvstore-identifier</key> 
      <string>KNHHJPPHR7.*</string> 
      <key>get-task-allow</key> 
      <false/> 
      <key>keychain-access-groups</key> 
      <array> 
        <string>M7X5D8MA6U.*</string> 
      </array> 

(如通過運行security cms -D -i <mobileprovision file>提取)而權利是(爲提取運行:codesign -d --entitlements - <app bundle>

<key>application-identifier</key> 
    <string>5R678HMG35.some.masked.Identifier</string> 
    <key>get-task-allow</key> 
    <false/> 
    <key>keychain-access-groups</key> 
    <array> 
      <string>5R678HMG35.some.masked.Identifier</string> 
    </array> 

我沒有指定我的項目的任何權利文件,而 mobileprovision文件是從門戶網站新下載的。

我應該創建一個Entitlements.plist這些值只是爲了使 安裝程序開心或有沒有解決這個問題的方法? 更重要的是,爲什麼這隻會發生在我的應用程序的一些版本 ? (其他一些版本都很好)

有關如何解決和/或避免此問題的其他技巧?

我已經嘗試過秋後算賬:刪除所有配置文件,重新創建配置文件,重新下載證書,等等

謝謝!

回答

1

我注意到,我沒有使用該特定應用程序的開發配置文件,我使用的是由Xcode生成的團隊配置文件。我在創建開發配置文件方面做了一些嘗試,然後自行修復。

+0

我寫的更具體的說明:http://stackoverflow.com/a/28062326/1304462 – Nick 2015-01-21 08:09:03

0

確保如果您沒有使用iCloud,Apple開發者頁面上的Provisioning Profile沒有啓用iCloud。
如果是這樣,請禁用iCloud並下載新生成的配置文件,然後重試。 幾個星期前有一個相當類似的問題。

+0

謝謝,但那不是問題。請閱讀我對該問題的回答以獲取更多信息! – Nico 2012-03-16 02:53:31

0

如果在執行發佈構建時Xcode決定使用通配符配置配置文件,則會發生這種情況。

即使您繼續在Xcode Organizer中選擇正確的配置配置文件,當您點擊Distribute…按鈕時,Xcode會調用xcrun PackageApplication,該配置會將配置配置文件嵌入您的應用程序中,然後辭職。它還非常小心地將原始不正確的權利(如從錯誤配置配置文件中收集的App ID前綴,APN權利)複製到您的新IPA中。這可能無法安裝。

我不確定它爲什麼會這樣做,也許是因爲並非所有的權利都來自配置文件。