Ich war etwas ähnliches zu wollen tue meine App-Symbole aus verschiedenen Asset-Katalogen tauschen, je nachdem ob ich gebaut debug, Ad-hoc-oder Release. Meine Lösung bestand darin, die Debug- und Ad-hoc-Kataloge in keine Ziele aufzunehmen und dann ein Laufskript in Swift zu schreiben, um diese Assets zur Laufzeit zu kopieren. Hier ist das Skript:
import Foundation
struct CopyNonReleaseIcons: Script {
var usage: String {
return "When running a non-release (Debug or AdHoc) build, switches out the app icon to help" +
"differentiate between builds on the home screen.\n\n" +
"Usage: swift CopyNonReleaseIcons.swift <CONFIGURATION> <PRODUCT_NAME> <BUILD_PATH>"
}
var expectedNumberOfArguments = 3
func run(arguments arguments: [String]) {
let configuration = arguments[0]
let productName = arguments[1]
let buildPath = arguments[2]
if configuration == "Debug" || configuration == "AdHoc" {
copyIcons(buildName: configuration, productName: productName, buildPath: buildPath)
}
}
func copyIcons(buildName buildName: String, productName: String, buildPath: String) {
let sourcePath = "My App/Resources/Asset Catalogs/" + productName + "SpecificAssets-" + buildName + "Icons.xcassets/AppIcon.appiconset/"
var appName = "My App.app"
if (productName == "White Label") {
appName = "White Label.app"
}
shell(launchPath: "/bin/cp", arguments: ["-rf", sourcePath, buildPath + "/" + appName])
}
}
CopyNonReleaseIcons().run()
Ja, ich verstehe, warum ich diesen Fehler habe. Aber das ist wirklich ärgerlich, weil xcasset lokalisierbar sein sollte. Gibt es eine Möglichkeit, Xcasts richtig zu lokalisieren? –
Sie müssen verschiedene Ziele erstellen. Wenn Sie eine xcasset-Datei erstellen, müssen Sie diese Datei mit dem spezifischen Ziel verknüpfen. Überprüfen Sie diesen Link: [Link] (http://www.codeghost.co.uk/post/50912394435/multiple-ios-targets-from-a-single-xcode-project) – mrodriguez