9

そのため、かなりの数のアプリ間で共有される xcassets があります。MacOs SierraがインストールされたMac MiniでXcode8を使用して開発しています。開発マシンでコンパイルして実行すれば、まったく問題ありません。ただし、OSX Mavericks を搭載したデバイスで実行しようとすると、クラッシュします。ここにレポートのトレースがあります

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fff887dc866 __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff87a3935c pthread_kill + 92
2   libsystem_c.dylib               0x00007fff88614bba abort + 125
3   libsystem_c.dylib               0x00007fff885dea5f __assert_rtn + 321
4   com.apple.coreui                0x00007fff875aa1a7 CUIRenditionKeySetValueForAttribute + 307
5   com.apple.coreui                0x00007fff875a9004 -[CUIStructuredThemeStore _canGetRenditionWithKey:isFPO:lookForSubstitutions:] + 200
6   com.apple.coreui                0x00007fff875a8f1b -[CUIStructuredThemeStore canGetRenditionWithKey:] + 22
7   com.apple.coreui                0x00007fff875c4eab -[CUICatalog _resolvedRenditionKeyForName:scaleFactor:deviceIdiom:deviceSubtype:] + 291
8   com.apple.coreui                0x00007fff875c4c53 -[CUICatalog imageWithName:scaleFactor:deviceIdiom:deviceSubtype:] + 29
9   com.apple.AppKit                0x00007fff88820b1b +[NSImage _catalogImageWithName:bundle:] + 132
10  com.apple.AppKit                0x00007fff8881aefd +[NSImage imageNamed:] + 261

xcassets から画像を削除し、アプリのプロジェクト ナビゲーターにドロップしてアプリのバンドルに「個別に」含めると、正常に読み込まれます。しかし、1 つの xcassets だけでイメージを共有する方がクリーンなので、可能であればこれを避けたいと思います。

考えやアイデアはありますか?前もって感謝します。

4

1 に答える 1

8

iOS 7 デバイス用にAppleが提供する次の回避策に従うことで、このエラーを回避できました。

この問題を回避するには、展開ターゲットを iOS 8.0 以降に更新するか、イメージ セット全体で指定された少なくとも 5 つの属性を持つ単一のイメージをアセット カタログに追加します。 iPad、iPhone、およびユニバーサル アセットを追加) 方向 (左から右、右から左) 幅/高さ クラス (任意 & コンパクトなど) メモリ (1 GB アセットを追加) グラフィックス (Metal 1v2 アセットを追加)コードで画像を使用したり、これらの属性をすべて追加したりする必要はありません。(27852391)

このダミー イメージセットは次のようになります。

ダミー画像セット

于 2016-10-03T20:45:27.943 に答える