2013-10-21 33 views
10

我有一個應用程序有兩個只有品牌不同的變體。對於每個版本,我在資產目錄中都有一個AppIcon和LaunchImage。我爲每個版本創建了不同的目標。在第二個版本中,當我嘗試在第二個資產目錄中選擇AppIcon時,它只是默認爲第一個。刪除第一個資產目錄似乎可以解決這個問題,但我寧願採用更少的「hacky」解決方案。在XCode 5中使用多個資產目錄的問題

+0

我不知道你是否這樣做過,但每個目標應該只有一個目錄(在你的情況下)。您可以更改哪個目標獲取項目的構建設置中的哪個目錄。 –

+0

2個資產目錄位於不同的目標中,儘管兩者都顯示在兩個目標的常規部分(應用圖標和啓動圖像)中。 –

+0

我發現如果您重命名第二個資產目錄中的衝突資產,它似乎可以正常工作,即將AppIcon重命名爲AppIcon1 –

回答

2
  1. 對兩個目標使用相同的資產目錄。
  2. 檢查它是否包含在兩個目標中(使用文件檢查器檢查目標成員資格)。
  3. 在每個目標上選擇適當的資產名稱(圖標)。

這應工作,我使用它與8個目標等等...

順便說一句,我發現有時會推出像使用一些目標的時候,所以你可能需要複製,然後不工作選擇它(Xcode錯誤)。

+1

您是否說有一個資產目錄包含所有目標的所有資產,即AppIcon for第一個目標AppIcon2是第二個目標?如果是這樣,我不確定這是一個好主意。每個應用程序將包含它未使用的資產,iPad的啓動圖像很大。 –

+0

@MarkHorgan是的,這就是我所擁有的。我認爲你是對的,但其他方法會給我帶來太多問題...直到Xcode 5會更好... – Idan

+0

我的錯誤沒有包含在兩個目標中。 – Beto

8

我認爲到目前爲止我所提出的最佳解決方案是在後續資產目錄中重新命名資產。例如,您可能有2個資產目錄包含名爲AppIcon和LaunchImage的資產。在第二個資產目錄中,我將AppIcon和LaunchImage重命名爲AppIcon1和LaunchImage1。所以現在我可以在目標的構建設置的「常規」部分選擇它們。

+0

如果您將兩個不同名稱的圖像放入其2個資產目錄中的一個,並調用不應包含在目標中的代碼圖像,則會發現它出乎意料地存在。如何避免這種情況? – DisableR

+2

找到解決方案 - 我的問題發生,因爲我使用CocoaPods,他們的腳本編譯所有.xcassets文件夾。解決方案在這裏:http://stackoverflow.com/questions/19488580/asset-catelog-issue-with-multiple-targets。 – DisableR

+0

@DisableR我只重命名AppIcon和LaunchImage,以便您可以從目標設​​置的常規部分的下拉列表中選擇它。其他圖像可以保持不變。 –

1

經過多次挫折,我有乾淨,成功,獨立的圖像資產。下面是我工作:

  1. 我用的XCode創建的第一個目標的圖像目錄(文件,新建,文件,資產)。它 只有該目標的會員資格。正如Mark Horgan所建議的,我爲 命名了內部appIcon & launchImages,如果只是爲了讓我自己更容易 。

  2. 接下來,我從我的項目中刪除該目錄,使用 刪除引用的選項。

  3. 我重複了第1步併爲第2個目標創建了圖像目錄。它僅具有第二個 目標的會員資格。將目錄分配給我的目標很棘手,因爲XCode只提供了「不要使用圖像目錄」作爲選項。我選擇該選項,然後XCode提供「使用資產目錄」。我選擇了我的新catagot。我再次將內部appIcon & launchImages命名爲 參考第二個目標,所以我可以識別它。

  4. 與2中一樣,我使用刪除引用delete刪除了目錄。

  5. 出發的XCode了一會兒,我打開Finder窗口,並位於其已被放在不同的目錄 通過的XCode我的兩個 不同images.xcassets文件。我將這些文件重命名爲每個參考文件 目標。 (我也搬到他們到主文件夾,當然 這是一個偏好。)的返回XCode中

  6. ,我(重新)的添加xcassets 文件,一次一個,保證他們適當地加入到 他們的目標並複製到資源中。

  7. 然後在XCode中,我選擇了每個目標 ,並使用常規選項卡爲每個目標正確指定圖像 目錄。

0

我使用@ user216661解決方案,但在我的情況下,我不必做2-7步。

我爲特定目標創建了一個特定名稱的資產文件夾(在我的情況下,每個目標有一個資產文件夾)。然後通過拖動&將它們從Finder中刪除,將圖像添加到這些xcassets文件夾。圖標和啓動圖像也是一樣。我不必爲每個目標定製圖形名稱。

在此解決方案中,您不會在資產文件夾外存儲任何圖形。

1

我正在運行幾個目標,每個目標都有自己的資產目錄文件,AppIcon,LaunchImage和我在故事板中使用的自定義背景。

聽起來像我有同樣的問題,當選擇應用程序圖標的資產目錄和啓動圖像時,它建設時採取了錯誤的。我通過修改每個資產目錄的.xcassets文件的「目標成員資格」來解決此問題。它的設置使每個xcassets文件只有它所關聯的目標。因此每個資產目錄只選擇一個目標。現在它是適用於每個目標的正確的AppIcon和LaunchImage。

+0

請在下面查看我對Mark Horgan的回答的評論。 – DisableR

2

在我的情況下,我正在使用可可豆莢。可可豆莢腳本Pods-resources.sh以某種方式導致了這個問題。從腳本中刪除資產部分解決了問題。

確保清理項目並刪除派生數據文件夾。

零件被刪除可以在這裏找到:

https://stackoverflow.com/a/21309102/832111

+0

從'Pods-resources.sh'中刪除這些部分後,不會出現您檢查每個資產目錄的目標的小窗口。這是預期的嗎?如果是這樣,我現在怎麼設置它們? – Isuru

+0

這個!看看這個CocoaPods問題的解決方法。 jinthagerman的post_install掛鉤是一個很好的解決方案:https://github.com/CocoaPods/CocoaPods/issues/1546 – Form

+0

我升級到cocopods 0.37,問題解決了。 – Qiulang

0

如何只修改資產在建設置option.For我,它的工作。

相關問題