簡體   English   中英

Xamarin 警告:應用程序圖標集“AppIcons”有 2 個未分配的子項

[英]Xamarin warning: The app icon set "AppIcons" has 2 unassigned children

編譯時我收到以下警告:

警告:

/Users/some-user/Projects/SomeApp/SomeApp/SomeApp.csproj (Build) -> /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets (_CoreCompileImageAssets 目標) - >

Resources/Images.xcassets:actool 警告:應用程序圖標集“AppIcons”有 2 個未分配的子項。

1 警告

我提供了應用程序圖標的每個圖像(手表/汽車除外)。 Contents.json文件中沒有“未分配”值。 我還嘗試取消設置每個圖像並重新設置。 我仍然收到警告。

目前我正在使用 Xamarin Studio 5.9.7 (build 22)、Xamarin.iOS 9.0.1.29 with Mono 4.0.4.、Xcode 7.0.1 (8228) Build 7A1001。 所有這些都在 Mac OS X 10.10.5 上運行。

如何刪除警告?

如果 .\\AppIcons.appiconset 文件夾中有 Contents.json 文件中未使用/引用的圖標,則會出現警告“應用程序圖標集“AppIcons”具有 * 未分配的子項。”。 查看文件夾中的所有圖標並瀏覽 Contents.json 中引用的所有圖標,然后從文件夾中刪除多余的圖標。 即使未包含在項目中也未引用的圖標將導致編譯器警告。

iOS 9.2.1、Xcode 7.2.1、ARC 已啟用

如果 JSON 文件看起來不錯,那么資產目錄可能只是損壞了; 當您將文件拖放並可能不小心從路徑中的文件夾中刪除文件,或在 Xamarin 中更改資產的路徑時,有時會發生這種情況。

無論哪種方式,看看 Xamarin 是否有某種方法可以刪除資產目錄並再次添加它,然后指定你的應用程序將在哪個 iOS 目標和設備上運行以正確配置資產目錄。

設置目錄后,您必須再次將每個資產添加到資產目錄中。

希望這可以幫助。 干杯!

我有同樣的問題。 我清理了項目並重新編譯它,一切都很好。 此外,當缺少圖標時,它只會在我清理項目時添加。

我在 VS for Mac、Xamarin、Xcode 9.2 上遇到了同樣的問題。 將我的應用程序圖標添加到 Assets.xcassets 后,我看到了“Appicons unassigned children”錯誤。 對我有用的解決方案是退出 Visual Studio 並重新啟動它。 重新啟動 Visual Studio 后,構建繼續進行,沒有錯誤。

我有一個由(可能)損壞的 Contents.json 引起的類似問題。 我的 Media.xcassets 位於 Resources 目錄下。 我從頭開始重新創建資產目錄,現在它似乎可以正常工作。

腳步:

  1. 備份您的 Media.xcassets 目錄。
  2. 創建一個新的 AppIcons 資產(在解決方案視圖中,導航到 iOS 項目 > 資產目錄並雙擊媒體
  3. 單擊添加按鈕(左上角)並選擇添加應用程序圖標和啟動圖像 -> 添加應用程序圖標。 這將創建一個新的 AppIcos.appiconset 目錄(可能在您的項目根目錄中)並生成一個空的 Contents.json 文件。
  4. 使用相應的“...”按鈕添加必要的圖標。
  5. 看看你是否仍然收到編譯警告。
  6. 如果您希望將 Media.xcassets 移動到 Resource 或其他目錄下:
    1. 將 Media.xcassets 移動到所需的子目錄
    2. 在文本編輯器中打開 Info.plist 和 .the project .csproj 文件,手動編輯所有 ImageAsset 標簽,將它們的目錄從 Media.xcassets 更改為 Resources\\Media.xcassets。 確保沒有引用相同資產的重復行。
  7. 刪除備份 Media.xcassets 目錄

另一次我收到了同樣的警告。 因為它是一個僅限iPad應用程序,所以我在xcassets的相關Contents.json有這個:

  "images": [
    {
      "scale": "1x",
      "idiom": "ipad",
      "filename": "Group@1x.png"
    },

我把它改成這個

  "images": [
    {
      "scale": "1x",
      "idiom": "universal",
      "filename": "Group@1x.png"
    },

並且錯誤消失了。 您必須為每個條目執行此操作。

我還收到了另一個警告:

MyApp/MyApp.iOS/obj/iPhone/Debug/device-builds/iphone12.1-13.7/actool/cloned-assets/Assets.xcassets :actool 錯誤:當針對之前的版本時,無法為平台“iOS”啟用按需資源到 9.0。 考慮禁用 ENABLE_ON_DEMAND_RESOURCES 構建設置。

通過從 8.0 升級到 9.0,我的錯誤消失了。 我還認為問題來自在`Assets.xcassets 中創建一個ImageSet

我的 iOS csproj 文件有對舊 xcassets 已刪除文件的舊引用。 只需編輯 .csproj 文件並刪除這些額外的引用。

暫無
暫無

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

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