7

對於發佈這麼多問題,我很遺憾發佈了這麼多問題,但讓它工作已經非常痛苦,即使是Testflight也使它更容易Testflight上無效的IPA錯誤:嵌入式.mobileprovision中的APS環境與您的二進制文件不匹配

Invalid IPA error: The APS environment in your embedded.mobileprovision and your binary don't match 

我覺得這與我的Apple推送通知有關。我在我的所有設置中使用我的分發配置文件。我的應用程序已配置爲開發和生產。

這個錯誤的原因是什麼?作爲一個便箋,我一直在研究這一整天,並且我一個接一個地被困住,尤其是涉及靜態庫和xcode4。我真的很不好,還是蘋果真的讓它變得如此艱難?

回答

4

我認爲這是一個xcode錯誤。以下是我解決這個問題的方法,也許對未來的一些用戶有用。包括我的問題解決步驟以供參考:

  1. 我將授權文件更改爲aps-environment = production。沒有走,兩個文件之間仍然不同。
  2. 我改變了我所有的設置(調試/不)的分佈曲線,只是要確定
  3. 我重新建造它,並檢查了embedded.mob和二進制如你所說
  4. 沒有再去。
  5. 我去核 - 刪除所有我的配置文件,只下載我需要的分佈版本
  6. 這裏是當它變得有趣 - 我不能在調試(預期)上建立它,但我有同樣的問題,「配置文件沒有找到「,即使當我處於專門的歸檔模式。當然,這意味着即使在我嘗試對其進行存檔時,仍然存在對開發人員模式的引用(因爲我已經更改了所有設置並刪除了所有其他配置文件)
  7. 因此,我挖掘了project.pbxproj,並找到在特別構建中仍然試圖訪問我的開發簡介的違規行。我手動改變它,賓果,事情按預期工作

結束的一天,我很驚訝,爲什麼會發生這種情況。它看起來像一個Xcode 4的錯誤。通常這是我的錯,當這些事情發生的時候,但這似乎有些晦澀難懂(再加上我在xcode 4上遇到了很多其他問題)。

在驚人的Testflight團隊的幫助下解決!

http://support.testflightapp.com/discussions/tools/17-invalid-ipa-the-aps-environment-in-your-embeddedmobileprovision-and-your-binary-dont-match

+0

謝謝! pbxproj中的哪一行正在訪問您的非分發配置文件?我仍然堅持用testflight推動工作 – CVertex

+1

我也遇到了問題。沒有核實所有內容,但更改了我的所有代碼簽名實體以使用iphone分發配置文件(與我的特殊配置配置文件綁定)。重新啓動xcode(4.2),它工作!將prod代碼更改爲'不要代碼簽名',它仍然有效。不知道它是什麼,看起來很可能是一個xcode錯誤 – Taras

0

我碰到這個錯誤之前跑一樣,所以按照這些指示此工作:

  1. 創建爲您的應用部署配置文件和設備添加到它誰應該測試它的人。
  2. 使用剛創建的配置文件構建應用程序,並將其導出爲* ipa。
  3. 將其上傳至TestFlight並選擇您要測試該應用程序的設備。

很多人錯過了第二步(我也是如此),這對它的工作至關重要。所以試試吧! :)

+0

嗨大衛,非常感謝!我能夠以不同的方式解決問題,但您的幫助非常感謝。這些東西是......奧術。 –

+0

好東西!!!! – Pripyat

2

此外,特別是如果你歸檔目標是基於另一個目標,那你的目標的「歸檔」計劃是基於生成設置的正確生成配置雙重檢查。

  • 在Xcode的4.2旁邊的運行菜單,點擊 - >編輯 方案
  • 在左邊抽屜點擊 '存檔' 按鈕
  • 看「構建配置

對於Testflight,我複製我的發佈構建配置,並將其重命名爲'Ad Hoc',只是爲了指定我的Ad Hoc配置配置文件以及其他任何需要在其中的內容。如果你已經得到這麼多,我想你已經做到了,但爲了後代,我想我會提到它。

0

回覆此問題,以防萬一有人在上傳空氣移動應用程序時碰到此問題。

確保您檢查app.xml中的Entitlements元素。

<iPhone> 
    <InfoAdditions> 
     <![CDATA[ 
     <key>UIDeviceFamily</key> 
     <array> 
      <!-- iPhone and iPod touch devices --> 
      <string>1</string> 
      <!-- iPad devices --> 
      <string>2</string> 
     </array> 
     ]]> 
    </InfoAdditions> 

    <!-- This part below.. --> 
    <Entitlements> 
     <![CDATA[ 
     ]]> 
    </Entitlements> 

我應享權利這個樣子回來時,我得到了錯誤:

<Entitlements> 
     <![CDATA[ 
      <key>application-identifier</key> 
       <string>QFY9MVY9K8.com.somethingHere.anAppName</string> 
      <key>aps-environment</key> 
       <string>development</string> 
     ]]> 
    </Entitlements> 

這是現在的樣子:

<Entitlements> 
     <![CDATA[ 
      <key>get-task-allow</key> 
      <false/> 
     ]]> 
    </Entitlements> 

這個錯誤造成的,因爲

  1. 我在中使用了不同的ID比我在配置文件中的配置文件更高。
  2. 我在<key>aps-environment</key>部分使用development密鑰代替production
相關問題