簡體   English   中英

iphone:使用具有不同構建目標的不同圖標?

[英]iphone: Use different icons with different build targets?

現在我有一個常規的 iphone 應用程序,帶有獨特的跳板圖標和啟動畫面。 現在我想創建一個基本相同的應用程序,只需稍作改動 - 這個應用程序將有不同的名稱、不同的跳板圖標和不同的啟動畫面。 所以基本上我現在所做的是復制原始構建目標 - 但是我如何向我的項目添加另一個 icon.png 並告訴 XCode 為每個構建使用相關圖標? 那么閃屏呢?

Xcode 6 – Xcode 9

  1. Go 到 images.xcassets 並單擊加號按鈕以創建新的應用程序圖標。 您應該為每個構建設置一個應用程序圖標。
  2. Go 到項目 -> 構建設置並搜索“資產目錄應用程序圖標集名稱”。 在您的每個目標中,更改應用程序圖標集名稱的名稱以匹配您在步驟 1 中輸入的名稱。

每個目標都有不同的 info.plist 文件

在此文件中,您可以指定圖標、啟動畫面、顯示名稱...

無需將您的圖標文件拖到目標摘要上的幫助區域。 只需正確命名文件(Icon.png、Icon@2x.png 等)並將它們作為資源添加到項目中,並確保僅將它們添加到需要它們的目標包中,它們將自動使用.

您可以創建兩組圖標文件,並在將它們拖到您的項目中時取消選中它們未使用的目標的框。

好的,我找到了答案,而且很簡單。 正如我已經提到的,我復制了我擁有的目標 - 並更改了產品名稱。 然后是應用程序圖標和啟動屏幕的棘手部分。 我基本上所做的就是從項目文件夾中刪除這些文件並將它們移動到外部文件夾。 然后我會為新目標的圖像創建另一個外部文件夾。 然后我會為每個構建添加圖像的引用(非常重要的是不要復制它們。)到項目中。

嗯...每次我嘗試通過將外部引用的圖標拖到摘要窗格上來使用它時,也會在我的原始項目的根目錄中制作一個副本——這兩個圖標試圖住在同一個地方。

如有必要,我已禁用復選標記以復制文件,但無論如何它都會這樣做(Xcode 4),這讓我認為這些文件需要在根目錄中才能工作。

我是否遺漏了什么,例如,我是否應該為兩個版本命名我的文件?

僅將圖標文件添加到相關目標,然后將它們添加到“圖標文件”下的info.plist文件中(必須執行兩次,iOS5 有另一個)。

如果您遵循文件命名約定,通常它會為您完成:

對於 iPhone:

  • 圖標.png
  • 圖標@2x.png

對於 iPad:

  • 圖標-72.png
  • 圖標-72@2x.png

細節

Xcode 9.3.1

解決方案

STEP 1. 准備資源文件夾

在此文件夾中,我們將為應用程序准備圖像

我的應用程序根文件夾和資源文件夾

在此處輸入圖像描述

  • icon_Base_Production.png , icon_Base_Staging.png , icon_CI.png - 不同目標的圖標
  • icon.png - generateIcons腳本的當前圖標。 它由generateIcons腳本自動創建。
  • generateIcons - 從一個圖像為應用程序創建一組圖標的腳本

生成圖標代碼

nvm install 6
nvm use 6
#https://github.com/dwmkerr/app-icon
npm install -g app-icon
app-icon generate --icon "${0%/*}"/icon.png --platforms=ios

STEP 2. 將運行腳本添加到您的項目中

在此處輸入圖像描述

INFOPLIST_MYAPP="${SRCROOT}/SM2/Application/InfoPlist/Info.plist"
ICON_NAME=""

case "${CONFIGURATION}" in

    "Debug_Staging" | "AdHoc_Staging" | "Test_Staging" | "Profile_Staging" )
          ICON_NAME="icon_Base_Staging.png";;

    "Debug_Production" | "AdHoc_Production" | "Distribution" | "Test_Production" |    "Profile_Production" )
         ICON_NAME="icon_Base_Production.png";;

    "AdHoc_Production_SM2_CI" )
         ICON_NAME="icon_CI.png";;

    *)
    ;;
esac

cp -r "${SRCROOT}/Resources/${ICON_NAME}" "${SRCROOT}/Resources/icon.png"
${SRCROOT}/Resources/generateIcons
cp -rf ${SRCROOT}/Resources/AppIcon.appiconset/ ${SRCROOT}/SM2/Resources/Images.xcassets/AppIcon.appiconset/

所有構建方案

在此處輸入圖像描述

結果

每次切換構建方案時,都會創建必要的圖標。

在此處輸入圖像描述 在此處輸入圖像描述

暫無
暫無

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

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