有没有办法使用XCode外部的工具/脚本更新项目的资产?
我在Inkscape中绘制我的图标。我最近发现用这样一个简单的脚本:
#!/bin/sh
tail=$(basename "$1")
name="${tail%.*}"
/Applications/Inkscape.app/Contents/Resources/bin/inkscape -d 135 --export-png ${name}@3x.png ${name}.svg
/Applications/Inkscape.app/Contents/Resources/bin/inkscape -d 90 --export-png ${name}@2x.png ${name}.svg
/Applications/Inkscape.app/Contents/Resources/bin/inkscape -d 45 --export-png ${name}.png ${name}.svg
我可以在分辨率下自动生成具有适当名称的3个不同的png。比点击式点击互动路线容易得多。
我喜欢做的是在脚本的末尾添加一些内容,这些内容会自动将这3个png注入XCode项目的Assets中。但我不知道XCode如何/在哪里管理这些。
完整的脚本,源自@Matthias的答案(我的SVG目录作为项目目录的兄弟姐妹)...
#!/bin/sh
tail=$(basename "$1")
name="${tail%.*}"
ProjectName=myValve
Target=../${ProjectName}/Images.xcassets/${name}.imageset
mkdir -p ${Target}
/Applications/Inkscape.app/Contents/Resources/bin/inkscape -d 135 --export-png ${Target}/${name}@3x.png ${name}.svg
/Applications/Inkscape.app/Contents/Resources/bin/inkscape -d 90 --export-png ${Target}/${name}@2x.png ${name}.svg
/Applications/Inkscape.app/Contents/Resources/bin/inkscape -d 45 --export-png ${Target}/${name}.png ${name}.svg
cat > ${Target}/Contents.json << __EOF__
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x",
"filename" : "${name}.png"
},
{
"idiom" : "universal",
"scale" : "2x",
"filename" : "${name}@2x.png"
},
{
"idiom" : "universal",
"scale" : "3x",
"filename" : "${name}@3x.png"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
__EOF__
答案 0 :(得分:1)
我没有副本&amp;粘贴解决方案,但我可以提供一个起点。
我刚刚添加了3张图片,文件结构看起来很简单。这是git中的文件差异:
new file: ObjCTest/Images.xcassets/Image123.imageset/Contents.json
new file: ObjCTest/Images.xcassets/Image123.imageset/Image123.png
new file: ObjCTest/Images.xcassets/Image123.imageset/Image123@2x.png
new file: ObjCTest/Images.xcassets/Image123.imageset/Image123@3x.png
所以你不必像项目一样触摸xml的东西 而且Contents.json也不复杂:
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x",
"filename" : "Image123.png"
},
{
"idiom" : "universal",
"scale" : "2x",
"filename" : "Image123@2x.png"
},
{
"idiom" : "universal",
"scale" : "3x",
"filename" : "Image123@3x.png"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Xcode 6有几个选项可以在资源编辑器中设置。如果您需要,请更改它们并查看Contents.json如何更改。
答案 1 :(得分:0)