Today-ExtensionをObjective-CアプリにSwift)に追加しようとしています。デバッガログにこのメッセージが引き続き表示されます:Failed to inherit CoreMedia permissions from 3005: (null)
。私はウィジェット内からNSUserDefaultsから読み取りますが、アプリ自体で読み取り/書き込みを行います。TodayViewControllerの唯一のコードは次のとおりです。
override func viewDidLoad() {
super.viewDidLoad()
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
totalLabel.text = formatter.stringFromNumber(0)
coinsLabel.text = formatter.stringFromNumber(0)
formatter.maximumFractionDigits = 0
billsLabel.text = formatter.stringFromNumber(0)
}
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
return UIEdgeInsetsMake(8.0, 16.0, 8.0, 16.0)
}
func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResult.Failed
// If there's no update required, use NCUpdateResult.NoData
// If there's an update, use NCUpdateResult.NewData
completionHandler(NCUpdateResult.NewData)
}
「NNNNからCoreMedia権限を継承できませんでした」という警告は、App Extensionを作成する際の App Groups に関連していると思います。含まれているアプリケーションとアプリ拡張機能の両方で、アプリグループ機能をオンにし、同じアプリグループコンテナID(例:group.com.yourdomain.yourappname)を使用する必要があります。アプリグループを使用して、複数のアプリが共有コンテナにアクセスできるようにし、アプリ間の追加のプロセス間通信を許可します。
同じログ出力がありました。クリーニング(Cmd + Shift + K)
私のためにそれを解決しました。
私もその問題に遭遇しました。解決した唯一の解決策は、ストーリーボード上のすべてのオブジェクトの垂直および水平の制約を追加することでした。
今日の拡張機能のメインストーリーボードを確認し、「初期ビューコントローラー」オプションのあるビューコントローラーを有効にしました。
この質問の回答に記載されているほとんどのことを実行しても、今日のウィジェットでまだエラーが発生しました-私のために働くものを見つけました。
ウィジェットターゲットビルド設定を開き、Always Embed Swift Standard Librariesを検索します。[はい]を選択します。
他に何も助けなかった場合、これがあなたのために働くことを願っています
ビューコントローラーにカスタムの統合されたinit(nibName:bundle:coder:)
メソッドがあり、Swiftを満たすためにこのようなinitWithCoder
を実装していたので、これは私を襲った:
_required init?(coder aDecoder: NSCoder) {
self.init(nibName: nil, bundle: nil, coder: aDecoder)
}
_
代わりにsuper.init(coder:)
を呼び出すことで問題を修正しました:
_required init?(coder aDecoder: NSCoder) {
// [...setting some variables...]
super.init(coder: aDecoder)
}
_
ケースを解決しました:コンテナーアプリと拡張アプリの両方でアプリグループを有効にします。そして、UILabel, UIView, ...
としてすべての非表示のUIKitコントロールを削除します
私もこの問題に遭遇しました。私にとっての問題は、シミュレータで2つのプログラムを同時に実行していたことです。それらの1つを停止した後、エラーメッセージは消えました。それが役に立てば幸い。
拡張機能の実行中に同じ問題が発生しました。私の場合、実際のデバイスで拡張機能を実行することで解決しました。
StoryBoardを使用している場合、info.plistに移動し、NSExtensionPrincipalClass
プロパティを削除する必要があることがわかりました。その後、拡張機能は問題なくロードを開始しました。
このエラーメッセージの私の経験はここにあります。 4つのViewControllerを含むストーリーボードがありました。それらすべてに対してリファクタリング抽出を行ったため、5つのストーリーボードがあり、そのうち4つにはビューコントローラがあり、オリジナルの「メイン」にはストーリーボード参照のみが含まれていました。
まあ...それは悪いです。それをしないでください。
最初のストーリーボードを元のストーリーボードファイルに保存したときにすべてが機能したため、そのうちの1つだけをリファクタリングしませんでした。