2013-01-14 38 views
0

我試圖用Testflight到IPA上傳到我的應用程序的測試,但它與下面的錯誤而失敗:我的iOS應用程序標識符應與我的配置文件配合使用?

Invalid IPA: The keychain-access-group in in the embedded.mobileprovision and your binary don't match.

我很困惑,因爲我覺得我的設置是非常標準的,我有另一我可以構建和分發的應用程序很好(注意:有第二個開發人員帳戶,但在Xcode的同一實例中)。

這裏是我的設置:

我在Provisioning戶創建
  • 我的應用程序ID爲com.bubblefoundry.Clear。當然,它的前綴是Apple分配的數字標識符。
  • 我使用應用程序ID和所需的設備創建了特別的分發配置文件。我將它下載到Xcode中。
  • Xcode中的產品名稱是Clear
  • 目標「摘要」選項卡下的軟件包名稱爲com.bubblefoundry.Clear,其中Clear由淺灰色表示並由Xcode自動填充。雖然我可以在Clear之前或之後添加文本,但我無法刪除它。 「信息」標籤下的名稱是com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier}
  • 在項目和目標的代碼簽名構建設置中,「調試」和「發佈」均設置爲「自動配置文件選擇器」下的iPhone Developer。我想我可能需要將發佈設置爲我的發佈配置文件,但我沒有在其他工作項目中這樣做。

我可以存檔我的應​​用程序就好了。然後在組織者中,我可以告訴它將它分發給臨時開發人員,然後選擇使用之前創建的分發供應配置文件對其進行重新簽名。沒有錯誤報告。同樣,我可以連接我的iPhone,並在手機上運行應用程序,而不會出現任何問題。只有當我嘗試使用Testflight.app上傳IPA時,我被告知該文件無效。

因爲它提到embedded.mobileprovision,我想我會戳進IPA並檢查文件。這裏的相關數據(減去唯一INFO):

<plist version="1.0"> 
<dict> 
    <key>AppIDName</key> 
    <string>Project Clear</string> 
    <key>ApplicationIdentifierPrefix</key> 
    <array> 
     <string>app-id</string> 
    </array> 
    <key>CreationDate</key> 
    <date>2013-01-11T17:44:51Z</date> 
    <key>DeveloperCertificates</key> 
    <array> 
     <data> 
     my-certificate 
     </data> 
    </array> 
    <key>Entitlements</key> 
    <dict> 
     <key>application-identifier</key> 
     <string>app-id.com.bubblefoundry.Clear</string> 
     <key>get-task-allow</key> 
     <false/> 
     <key>keychain-access-groups</key> 
     <array> 
      <string>app-id.*</string> 
     </array> 
    </dict> 
    <key>ExpirationDate</key> 
    <date>2013-10-07T17:44:51Z</date> 
    <key>Name</key> 
    <string>Project Clear Testers</string> 
    <key>ProvisionedDevices</key> 
    <array> 
     <string>device1</string> 
     <string>device2</string> 
     <string>device3</string> 
     <string>device4</string> 
     <string>device5</string> 
    </array> 
    <key>TeamIdentifier</key> 
    <array> 
     <string>app-id</string> 
    </array> 
    <key>TeamName</key> 
    <string>Bubble Foundry</string> 
    <key>TimeToLive</key> 
    <integer>269</integer> 
    <key>UUID</key> 
    <string>uuid</string> 
    <key>Version</key> 
    <integer>1</integer> 
</dict> 
</plist> 

見到這種情景,只是一切看起來什麼我先前設置一致。唯一的想法是,AppIDNameProject Clear,而不是Clear。這是問題的根源嗎?或者,也許keychain-access-groups應該是app-id.com.bubblefoundry.Clear,而不是app-id.*

回答

1

在這種情況下,您的應用程序ID應爲com.bubblefoundry.Clear

如果您創建的provisioning profile,如:

com.bubblefoundry.* 

您可以使用該供應配置文件與各種標識的等。

com.bubblefoundry.Clear 
com.bubblefoundry.my 
com.bubblefoundry.Clear.newApp 
com.bubblefoundry.testApp 
com.bubblefoundry.yoyo 

您可以更改應用程序ID在indo.plist

與所需的ID替換com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier}.,如:com.bubblefoundry.myTestApp

+0

謝謝,但不幸的是,將bundle ID更改爲'com.bubblefoundry.Clear'沒有幫助。 – pr1001

+0

至於我的供應配置文件,它不是通配符:它與應用程序ID「com.bubblefoundry.Clear」相關聯 – pr1001

+0

請刪除鑰匙串證書和供應配置文件 - >再次添加 - >進行清理並生成 –

相關問題