大家可能遇到过这样一个场景,想把项目A中的素材资源拿到项目B中去用,一般现在管理图片素材都用的是Assets.xcassets管理
![1672235-c670f4092b20baf7.png](https://i-blog.csdnimg.cn/blog_migrate/5586758e4ca8442cd6f504ef7e44adb9.png)
1.png
如果你想拿到项目中的所有图片,Assets.xcassets比较恶心的一点是,一个图片是一个文件夹
![1672235-07464de74e55651f.png](https://i-blog.csdnimg.cn/blog_migrate/5fa4a2036dcbaa9d762f9e56c780a794.png)
2.png
如果需要一个个赋值粘贴就比较悲催了,这里介绍一个好用的工具cartool.
使用方法如下:
1.下载并运行工程,这里如果你是直接运行的话,控制台可能会报如下的错误信息:
Usage: cartool <path to Assets.car> [outputDirectory]
Program ended with exit code: 255
通过查看代码,我们发现,这里需要传入一个参数
![1672235-f68d2d7e45186490.png](https://i-blog.csdnimg.cn/blog_migrate/49b0c54a8af92169a0f87370fbca60c6.png)
3.png
所以,此时我们准备一个Assets.car的文件.
2.打开一个你的项目工程,找到Products-->>XXX.app -->Show in Finder -->显示包内容,找到Assets.car文件
![1672235-359d7472c350e2bc.png](https://i-blog.csdnimg.cn/blog_migrate/0c4c3149e16b11409f848a5d6ddd3312.png)
5.png
![1672235-2db7a83cf2365baa.png](https://i-blog.csdnimg.cn/blog_migrate/5d6abcc951de06b14255fd354a6fe8bb.png)
4.png
3.将Assets.car文件拷贝到桌面上,打开刚才的cartool工程,将Assets.car拖入到Argument Passed On Launch目录下,然后在桌面上新建一个文件夹,名字自己随便起,也拖入这个路径下,如下图所示.
![1672235-1e8d1adae1ced82c.png](https://i-blog.csdnimg.cn/blog_migrate/512f6b8bda286e30a39b42428250d6d2.png)
6-1.png
![1672235-696aafc45b2bd89c.png](https://i-blog.csdnimg.cn/blog_migrate/566bc87b7636e630962f6172478fba20.png)
7.png
4.再次运行程序,此时控制台就有很多输出
![1672235-c654339d9ec30fcd.png](https://i-blog.csdnimg.cn/blog_migrate/e513bc3191d8019cf5aea75e6b2b4707.png)
8.png
查看桌面上的输出文件夹,会发现里面有很多导出的图片素材,而且还是带@2x @3X分明的哦
![1672235-7f6a6aaa54ce639c.png](https://i-blog.csdnimg.cn/blog_migrate/6ec8daadbbf19462e0a06ca432a2a446.png)
9.png
最终gif图动态效果
![1672235-30f65f2587f3e5fc.gif](https://i-blog.csdnimg.cn/blog_migrate/6146d11fdb2b6f3779633bd08350e105.gif)
10.gif