今日の拡張機能を備えた iOS アプリケーションがあります。現在、テスト (TestFlight) を行っており、約 10 台のデバイスでテストを行っています。関連付けられたウィジェットは、これらのデバイスの 1 つを除くすべてで正常に表示されます。あるデバイスでは、ウィジェットに恐ろしい「ロードできません」というメッセージが表示されます。デバイスの再起動、アプリの削除/再インストールなどを試みました。
デバイスのログを見ると、これが最初の厄介なリファレンスであることがわかりました。
container: WGMajorListViewController> Unable to load widget view controller with service (com.mycompany.MyApp.myApp-Today-Extension): Couldn\M-b\M^@\M^Yt communicate with a helper application.
container: WGMajorListViewController> No longer waiting on connection semaphore (<OS_dispatch_semaphore: 0x174c85410>)
container: WGMajorListViewController> Severed remote view controller connection
container: WGMajorListViewController> Widget disconnected unexpectedly
container: WGMajorListViewController> Aborting active life cycle sequence: <WGWidgetLifeCycleSequence: 0x175035460; sequenceID: com.mycompany.MyApp.myApp-Today-Extension.WGMajorListViewController.7/11/17, 3:13:00 PM; currentState: WGWidgetLifeCycleSequenceStateDidRequestRemoteView>
container: WGMajorListViewController> Remote view controller disconnected unexpectedly
container: WGMajorListViewController> Attempting to reconnect to remote view controller
拡張機能のコードはホスト アプリケーションを開こうとしないため、このエラーに困惑しました。おそらく、これは内部 (iOS) ヘルパー アプリケーションを指しているのでしょうか?
その最初の行の奇妙なエスケープ文字はログにあります。これらの行の後、おそらく 2 回以上再試行し、失敗します。最終的に私は見Can't request remote view controller that is blacklisted
て、デバイスは再起動するまで再試行しません:
mediaserverd(CoreMedia)[27] <Notice>: -CMSessionMgr- cmsmHandleApplicationStateChange: CMSession: Client com.mycompany.MyApp.myApp-Today-Extension with pid '257' is now Terminated. Background entitlement: NO
mediaserverd(CoreMedia)[27] <Notice>: -CMSessionMgr- cmsmHandleApplicationStateChange: CMSession: Client com.mycompany.MyApp.myApp-Today-Extension with pid '259' is now Terminated. Background entitlement: NO
symptomsd(SymptomEvaluator)[121] <Notice>: 257 com.mycompany.MyApp.myApp-Today-Extension: Terminated (most elevated: Terminated)
symptomsd(SymptomEvaluator)[121] <Notice>: 259 com.mycompany.MyApp.myApp-Today-Extension: Terminated (most elevated: Terminated)
symptomsd(SymptomEvaluator)[121] <Notice>: Entry, display name com.mycompany.MyApp.myApp-Today-Extension uuid (null) pid 257 isFront 0
symptomsd(SymptomEvaluator)[121] <Notice>: Duplicate removal of display name com.mycompany.MyApp.myApp-Today-Extension
symptomsd(SymptomEvaluator)[121] <Notice>: Entry, display name com.mycompany.MyApp.myApp-Today-Extension uuid (null) pid 259 isFront 0
symptomsd(SymptomEvaluator)[121] <Notice>: Duplicate removal of display name com.mycompany.MyApp.myApp-Today-Extension
container: WGMajorListViewController> End sequence '(null)' with reason: disappearance transition
container: WGMajorListViewController> Can't end sequence as argument sequence ((null)) doesn't match active sequence ((null)), or there's no active sequence
container: WGMajorListViewController> Begin sequence with reason: appearance transition
container: WGMajorListViewController> Initiating new life cycle sequence: '<WGWidgetLifeCycleSequence: 0x17522b6e0; sequenceID: com.mycompany.MyApp.myApp-Today-Extension.WGMajorListViewController.7/11/17, 3:13:12 PM; currentState: WGWidgetLifeCycleSequenceStateQuiescent>'
container: WGMajorListViewController> Connection requested with reason: 'appearance transition'
container: WGMajorListViewController> Will request remote view controller
container: WGMajorListViewController> Can't request remote view controller that is blacklisted
拡張コード自体からのログも、実際に起動している兆候も見られません。
問題のデバイスは、iOS 10.3.2 のパブリック バージョンを実行している iPhone 7 Plus です。ウィジェットは他のすべてのデバイスで問題なく動作します。その多くは 10.3.2 でもあります。他のどれもiPhone 7 Plusではありません。ウィジェットは iPhone 7 Plus Simulator で正常に動作します。
同じデバイスで App Store バージョンのウィジェットが正常に実行されますが、そのバージョンは Xcode 7 を使用して iOS 9 に対してビルドされています。新しいバージョンは、Xcode 8.3.3 を使用してベース SDK として 10.3 を使用します。
何かご意見は?