2017-08-16 52 views
1

我意識到我可以在開發中測試推送通知並在本地設備上生成prod build-但它們不適用於真實從TestFlight/App Store安裝。Xcode:推送通知以構建設備工作,但不會將TestFlight/App Store安裝在同一設備上

我認爲這與Xcode的構建與歸檔簽署有關,但我無法弄清楚如何解決我當前的配置。我使用Xcode自動簽名,FYI。

我使用Mixpanel進行事件跟蹤和通知,這也讓我確認設備令牌正在成功檢索。我在那裏上傳了我的生產推送證書。

如果我在我的設備上運行構建,我可以從日誌消息中獲取令牌並使用名爲Pusher的不同實用程序(使用我的產品推送證書)發送一個推送 - 這非常完美。但是,如果我從TestFlight或App Store下載我的應用程序,啓動它,從Mixpanel獲取生成的令牌,並通過Mixpanel發送另一個通知,它從不顯示。回到Pusher,如果我嘗試使用Mixpanel中的令牌推送,我得到一個APN invalid token錯誤。

這兩個令牌都是以同樣的方式抓取的 - 緊接着用戶同意通知或推送插件完成設置後。他們也抓住了相同的代碼 - 但是一個來自正在運行的Xcode構建,另一個來自TestFlight上的存檔。

項目設置 - 我有按壓開關設置在Xcode的功能菜單,我已經生成用於開發和生產(當然,2意外督促我想這是很好。)推證書:

certs

我還創建了分發和開發資源調配配置文件。這就是我的問題所在 - 我讀到Xcode不使用您創建的分發配置文件直到歸檔,並且直到此時才使用它,如果您在代碼簽名設置中選擇了自動簽名。

這就是爲什麼我在這裏有2個配置文件?一個我創建的節目爲活動&還列出推動下服務的通知,如果我展開下面的條目:

provisioning profiles

我的生產供應配置文件與簽署的證書是球隊我有相匹配的的iOS分發證書選擇簽約:

signing info

在寫這件事,我意識到,也許我的發佈版本的設置,具體簽約,是錯誤的。我雖然他們也應該使用我的Iphone Distribution: MyCompany Inc (USA)證書(而不是默認的iOS Developer身份),因爲我的分發供應配置文件使用相同的證書籤名。不幸的是,這似乎也不工作。

如果我的構建設置是這樣的(或者,如果我從下拉列表中用於發佈版的身份選擇通用iOS Distribution):

build settings

我不能實際建設 - 我得到一個錯誤,有衝突的供應設置。如果我在Release行(不是Any iOS SDK行)中使用iPhone Distribution: MyCompany Inc (USA)證書,我可以創建一個存檔,但我看到相同的行爲。

我確信這是它,因爲我一直在使用我的MyCompany公司(美國)開發團隊進行配置時驗證/上傳檔案。

我也嘗試關閉自動簽名並將調試和發佈配置文件設置爲Apple開發人員網站中的開發人員配置配置文件。那裏也沒有運氣。

就來全面circle-這是歸檔文件的摘要信息我使用自動簽名時看到:

archive info

這是正確的,對不對?列出的身份用於簽署選定的配置文件,因此,只要正確簽署就應該是我所需要的,對嗎?當然,給出其他設置。

我完全難住在這一點上 - 我該如何配置檔案簽名?

回答

0

這並沒有最終成爲一個簽名問題 - 雖然我仍然對我需要爲簽署發佈版本做些什麼感到困惑,但似乎Xcode自動過程正確處理它,因爲您的Apple開發者帳戶中已創建正確的配置文件。

有2個問題在這裏:

  1. 我用發推,以測試設備的推動效用有一個名爲「應該使用沙箱環境」這是默認選中的選項。一旦我沒有選中它,我可以發送推送到已下載TestFlight/App Store構建的設備。我沒有意識到生產推送證書可以同時使用。
  2. 與此同時,我仍然有問題從Mixpanel發送通知。事實證明,出於某種原因,我嘗試推送的一些設備(即使使用Pusher)似乎也沒有得到具有某個優先級的通知。通過將"priority": 10添加到Mixpanel測試通知的自定義數據中,我能夠成功發送/接收它們。我想通了這一點,在推的下面的截圖與下拉玩:

enter image description here

我自己的設備將得到推動與任何選擇的這3個級別,但其他設備將只接收與推選擇「立即」級別或「優先級:無」級別。爲什麼?我不知道。

相關問題