月度存档: 十一月 2014

unity命令和打包。

针对不同的平台(android/ios/pc),unity会对不同平台进行针对性优化。

因此如果要针对不同平台打包,最好针对每个平台将项目目录复制出来一份。这样可以避免unity发现平台转化了,对资源进行重新优化。当然了,如果做的游戏小,这点时间是可以忽略不计的。可惜我们的项目转一次资源就得半小时-.-!!。

vs2013下将文件使用unix结束符保存

There are inconsistent line endings in the ‘Assets/Scripts/ui/Mail/MailPrefab.cs’ script. Some are Mac OS X (UNIX) and some are Windows.
This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.

原因是因为vs下使用 “CR LF”结尾(Windows平台), unity下默认使用”LF”结尾(Unix平台)。

vs下想改为使用LF结尾,打开需要修改的文件,然后“文件->高级保存选项” 行尾选择“Unix (LF)”保存。

对于我们工程数十个文件来说,这不是很优雅的解决方式,幸好早有先人提供更好的方案。

http://www.grebulon.com/software/stripem.php

这个vs插件,可以将项目中所有文件以 LF 结束符保存。

jenkins将mac os 建立为slave节点

我们手游项目,需要支持android/ios,android支持在linux下打包。ios必须要mac上进行打包。

持续集成我们使用了jenkins,找了一台mac mini做为slave。

一开始使用的是java web start。结果试了各种方法得到结论,java web start特别方便,最好不要在mac上使用,因为担心java的安全问题,mac上的java web start根本无法使用。

参考了文章:https://blog.samsaodev.com/how-to-setup-a-jenkins-slave-running-mac-osx-for-ios-projects-part-1/

在ssh-add那一步如果遇到:SSH_AGENT_FAILURE 错误,可以先执行下 eval $(ssh-agent) 试试能否解决问题。

使用ssh建立slave节点。

在mac os 上一直无法使用username/password模式登陆,发现原来mac os因为安全原因,禁止了没有交互的ssh登陆。这里只能使用rsa private key 进行登陆。

在master server上生成key。

然后将public key 复制至slave server。

登陆slave时失败了,查看slave server上的/var/log/secure:sshd[12053]:  Address 10.234.49.36 maps to localhost, but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!

是因为:是因为DNS服务器把 10.234.x.x 的地址都反向解析成 localhost ,而DNS服务器不是自己的,不能改。 解决的办法就是,编辑 ssh 客户端的 /etc/hosts 文件,把出问题的IP 地址和主机名加进去,就不会报这样的错了。

两台机器之间使用ssh key登陆,默认使用本地当前的用户名,如果不是,则需明确指定用户名。

在jenkins上使用ssh key登陆时,密码必须为空。同时指定private key 所在路径。

OK,添加jenkins子节点成功。