2014-09-28 62 views
6

我有一個包含2個目標的應用程序並添加了今天的小部件。當我運行它時,它不會出現在今天的通知編輯/在「不包含」部分,它通常出現在第一次與我的其他應用程序。任何想法可能會出錯?我得到的權利缺少擴展的警告,但我得到這個工作的人也嘗試過(嘗試添加一個,沒有幫助)。iOS 8運行項目時未顯示今日小部件

另外,如果我嘗試將其附加的調試菜單下的一個過程,它不會在所有/

我試圖從模擬器刪除應用程序和重置等出現在那裏,我曾嘗試與具有多種其他應用目標,因爲我認爲這可能是問題,但另一個工程。

其他人有類似的經驗或可以建議任何東西?

編輯2014年10月6日:我還沒有找到解決方案,但我的項目不使用arm64。這可能是問題嗎?我試圖從其他項目中刪除arm64,但我認爲Xcode 6不允許它,所以我不能測試它,有誰知道這是否是一種可能性?

+2

我認爲(缺乏arm64)是問題 - 不記得我在哪裏閱讀它。 – siburb 2014-10-06 06:26:44

+0

http://stackoverflow.com/questions/26236333/ios-today-extension-do-not-launch-lost-connection-to-device/26238356#26238356 – Mathieu 2014-10-07 22:07:50

回答

3

當應用程序和擴展程序之間的bundleID不匹配時,我看到了此問題。

實施例(正確):

應用bundleid:com.yourcompany.myapp

分機bundleid:com.yourcompany.myapp.myextension

擴展需要有該應用的整個bundleID ,然後是自己的名字。

25

在我的情況下,小部件未顯示在小部件列表中的原因是部署目標編號過高。對於小部件,我有9.0。不過,我將我的iPhone從9.0降級到8.4,並忘記更改它的小部件。

將其更改爲8.4後,該小部件立即出現在iPhone上。

+0

這基本上是我的問題,但有一個轉折點。我將我的主應用程序設置爲8.2的部署目標,但默認情況下,該部件以9.x的形式出現(不記得次要版本)。由於我正在8.4模擬器中測試,所以小部件沒有出現。我的觀點是,我認爲小部件將採用與主應用程序相同的部署目標。它沒。 – ghostatron 2016-06-14 22:52:02

3

確保您正在運行包含應用程序,而不是模擬器中的擴展程序。

0

確保

  1. 「部署目標」 是同一個包含應用程序的(@vomako的回答);
  2. Bundle ID遵循正確的格式:「com.yourcompany.myapp.myextension」,而您的應用程序是「com.yourcompany.myapp」(@RohitGupta的回答);
  3. 在調試時,您需要運行Widget /擴展方案(這裏不包含應用的方案,但是如果存檔提交給App Store,請使用包含應用的方案);
  4. 「Build Settings」的「WRAPPER_EXTENSION」是「appex」。

第4點沒有在所有答案(甚至是官方文檔)中提到,但發生在我的情況。

我爲工作區中的現有項目創建了Today Widget,根本不起作用。但是,當我使用Today Widget創建純新項目時,它運行良好。然後我逐個比較Build Build,發現這個區別:爲我現有的項目創建的是「app」,而不是「appex」。

將其更改爲「appex」後,起作用。


此外,作爲提示,爲了通過應用程序審查,則必須

  • 包含在插件的arm64(IOS)或x86_64架構(MacOS的)/擴展的架構構建設置;
  • 無論您爲包含應用程序選擇哪種目標設備系列,爲您的應用擴展指定「iPhone/iPad」(有時稱爲通用)作爲目標設備系列;
  • 包含鏈接到嵌入式框架的應用程序必須包含arm64(iOS)或x86_64(OS X)體系結構構建設置;
  • 始終選擇「框架」作爲您的Copy Files構建階段目標(不要選擇「SharedFramework」目標)。
相關問題