62

xcode 8推送通知功能開關(位於TARGETS -> AppName -> Capabilities如下PIC)需要顯影劑反過來, push notifications capabilitiesxcode的8推送通知能力和權利文件使用<code>xcode 8</code>時做推送通知設定,不像<code>xcode 7</code>設置

然後它將產生AppName.entitlements文件如下

//AppName.entitlements 
<key>aps-environment</key> 
<string>development</string> 

但量產版應用程序,如果我們改變字符串

//AppName.entitlements 
<key>aps-environment</key> 
<string>production</string> 

那麼功能顯示警告

Capabilities warning

,似乎沒有哪個字符串值在APS-環境規定的問題上,我們仍然可以得到推送設備令牌在application:didRegisterForRemoteNotificationsWithDeviceToken:

所以推送通知權利的正確設置是什麼? 謝謝

+2

上的任何消息嗎?我也嘗試過「生產」選項,但點擊「修復問題」後,XCode力量變爲「開發」 – WedgeSparda

+4

我做了歸檔應用程序並使用奇怪的'development'選項提交給Appstore,仍然可以接收遠程推送通知。同時,歸檔應用程序中的mobileprovision文件在我的應用程序中顯示'production'' aps-environment'選項 –

+1

當我在調試時,apn運行良好,當我爲企業分發發佈時我xcode 8.1 iOS從未收到任何推送通知... –

回答

32

我今天在Xcode 8 GM中苦苦掙扎。在禁用設置後,刪除我的開發人員門戶配置文件並重新生成它並再次啓用設置後,我可以消除Xcode中的警告。請記住,我沒有擺弄權利文件。我把它留在了開發環境中,在歸檔後我得到了正確的aps環境設置(生產)。

看來Xcode是一動不動非常錯誤壽甚至在GM

+3

謝謝,我想現在我們必須使用這個奇怪的選項提交應用程序,但仍然可以得到正確的遠程推送通知。等待Apple的修復。 –

+2

這真是太瘋狂了 - 儘管我們吹掉了所有本地供應配置文件,手動編碼簽名以及導入已驗證的生產配置文件,但我們的團隊無法獲得改變生產的價值 – Shaun

+0

@Shaun您是否嘗試在權利文件中更改它或您在歸檔並嘗試提交後看到組織者?如果您在組織者中看到它,請嘗試在項目的「常規」選項卡中取消選中「自動管理簽名」,然後從下拉列表中選擇正確的配置配置文件。 – Shardon

0

我的問題是我推的客戶已經過時,只會推成功調試令牌。我仍在努力解決的其他問題是,我只能通過啓用legacy-api的健身房導出應用程序,但並未將apns環境設置爲「製作」並將其作爲「開發」設置在「 embedded-mobile.provision'文件。然而,我已經能夠通過xcode組織者成功地部署應用程序以與apns(prod)一起工作。

0

我認爲更好的解決方案是開放的項目包和開放project.pbxproj

變化CODE_SIGN_ENTITLEMENTS

CODE_SIGN_ENTITLEMENTS = "your-app/production.entitlements"; 
+2

他已經在他的項目中鏈接了權利文件,問題在於Xcode UI顯示警告,並且如果他單擊「修復問題」,權利文件將包含值「development」,現在可能是您想要的當你釋放你的應用程序。 –