簡體   English   中英

iOS 8 Today Extension不在設備上工作

[英]iOS 8 Today Extension not working on device

當我在模擬器上運行我的今日擴展時,一切正常,它會按預期顯示以下內容:

在此輸入圖像描述

但是,當我在我的設備上運行它(iPod touch和iPhone 5s)時,機身將無法顯示(不介意標題和圖標,已更改)

在此輸入圖像描述

我將調試器附加到我的擴展程序,我得到了這個:

在此輸入圖像描述

我不知道所有這些意味着什么......

我刪除了今天擴展的所有代碼,以檢查我的代碼是否有問題,沒有任何改變,所以我懷疑我的代碼是否有問題。 任何有關如何解決這個問題的建議將不勝感激。

(如果有任何意義,我確實啟用了應用程序組)

確保擴展目標版本

請確保您的擴展目標版本正確無誤。 Xcode默認為你提供最高版本,如8.3,如果你的iOS版本低於它,Xcode會給你一個崩潰。

我發現我正在使用錯誤的聯名訪問我的應用程序組。 只需確保您使用“group.something.something”訪問應用程序組,而不僅僅是“something.something”

我為我的案子找到了解決方案。 我只需將arm64指定為小部件目標的有效架構。

在Widget目標上

構建設置>有效的體系結構

我只有armv7和armv7s。 我添加了arm64,它在我的5s設備中起到了魅力的作用

使用應用擴展程序時要記住幾點

  • 目標擴展的Bundle Identifier應為com.companyName.AppName.ExtensionName

  • 您需要為目標擴展具有單獨的AppID,並將標識符指定為com.companyName.AppName.ExtensionName,並使用此AppID創建配置文件。

  • 此外,創建的appGroupID應嵌入AppID(用於應用程序和擴展)。

由於您沒有共享任何代碼,我無法幫助您獲得具體答案。 請嘗試使用以下步驟調試窗口小部件:Debug-> Attach to Process - >(從菜單中選擇窗口小部件)並調試viewdidload viewwillappear- (void)widgetPerformUpdateWithCompletionHandler:(void(^)(NCUpdateResult))completionHandler方法。 希望能幫助到你。

我的問題的根源:

  • 在模擬器上,每次調用viewDidLoad,在設備上加載一次視圖,只調用viewWillAppear。
  • 窗口小部件不會收到核心數據更改通知
  • 不要從widgetPerformUpdateWithCompletionHandler調用NCWidgetController.widgetController()。setHasContent。 使用它的最佳位置(主要是)是包含應用程序,而不是小部件本身。

希望這有助於某人

在我的情況下,我設置首選內容大小,它開始在設備上工作

self.preferredContentSize = CGSizeMake(UIScreen.mainScreen().nativeBounds.width, 100.0)

我在共享擴展中使用自定義ViewController時遇到問題。 事實證明,擴展迷你應用程序中的資源有限,所以當我的擴展程序生成縮略圖時,它會因為使用了太多的后台線程而導致擴展程序崩潰。 將縮略圖生成一次縮減為一個可以解決問題。

令人困惑的部分是模擬器中沒有出現這種限制,只能在真實設備上看到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM