这周换了新的MBP,迁移了旧电脑的资料和开发环境到新的MBP,也遇到了很多坑,记录下来以便参考:
Mac 系统设置
MBP 的基本配置
新MBP为 2017 15-inch 款,macOS 为 High Sierra Version 10.13.2,Processor为2.9 GHz,Memory为16GB,Storage为500GB,基本配置比旧的翻了一倍,代码编译的速度也快了很多。
iCloud账号
第一次登录后,设置iCloud账号:这会同步一些配置,包括Keychain、Wifi、邮件、Notes等。
Dock
根据个人喜好,在"System Preferences"中设置左部显示,设置效果并清理不需要的Dock图标。
手势设置
根据个人喜好,在"System Preferences"中的"Trackpad"中设置: 其中页面的滚动方向为 Scroll & Zoom -> Scroll direction: Natural "可以uncheck"
三指拖拽的设置有所不同,在 Accessibility->Mouse & Trackpad -> Trackpad Options: Enable dragging “three finger drag”
开发环境配置
XCode
在 App Store 中下载安装,在脚本运行时,如果出现xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH
需要在Goto Xcode->Preferences->Locations
设置。
编译项目出现Rxswift版本错误的问题Module compiled with Swift 4.0 cannot be imported in Swift 4.0.3
:这是因为我的系统安装了两个版本的XCode,一个是9.0一个是9.2,9.0是默认的,所以脚本运行时会使用这个默认的(Swift 4.0),而我用9.2的XCode编译项目时使用的(Swift 4.0.3),这就导致了Rxswift版本的不一致问题。修改XCode 9.2为默认版本,重新编译脚本即可。
Distribution版本的code sign问题:随着时间的推移,可能在keychain中存在多个版本,需要删掉不需要的版本,只保留那个正确的。
SSH Key
- 生成:
ssh-keygen -t rsa -b 4096 -C "yourname@yourcompanyname.com"
- 可设置
passphrase
- 查看:
ls -al ~/.ssh
- 复制:
pbcopy < ~/.ssh/id_rsa.pub
- Add SSH Key in GitHub
- 打开SSH:
eval "$(ssh-agent -s)"
- 添加:
ssh-add ~/.ssh/id_rsa
Sourcetree
我一般使用Sourcetree进行版本控制,可以在官网下载。
如果在一开始的输入阶段,输入错了用户名(我就是误加了邮箱后缀),后继就会发现再也无法添加URL下载代码,程序一直在报错。对于这个问题,我们需要在 旧版 (2.0.5.2 Network) /新版 (2.6.3 Advanced) 手动修改用户名:Host名(github.yourcompanyname.com)以及不包括邮箱地址的用户名。
在下载Repository的时候,为了后面的Ecosystem环境设置要求,我们要求设置指定的Path为/Users/yourname/Projects/yourcompanyname/kiai
在控制项目版本时,进行版本切换时登录框弹出的问题,几遍输入正确的用户名密码后也无法解决,登录框持续弹出,并且还发现一部分的第三方库没有下载下来:
- 重新跑了一遍项目的依赖脚本
- 重新设置了SSH Key
但是仍然存在一些问题,Permission denied (publickey) Fatal: Could not read from remote repository
,指出下载权限错误,在使用Git命令行切换时无问题。这里采取的workaround是,在版本切换时会配置成运行"post-checkout", 先把这个禁止掉。后面整个环境在Ecosystem中配置好以后就没有类似问题了。(20180116删除Carthage文件夹,重新跑一遍脚本)
20180116:在我更新corp账号信息后,SourceTree无法下载更新,直接出错,根据日志信息是因为认证错误,这是因为它还在直接使用Keychain里面存储的旧的密码,所以对于这种情况,删除Keychain相应的项目(即对应git.yourcompanynme.com的条目),再次下载更新,这时候会弹出密码输入框,输入正确的密码即可。
20180119 使用Git管理超大文件,Homebrew安装 brew install git-lfs
Terminal
在这个10.13 Mac OS中,默认的Shell为 "/bin/tcsh",也就意味着不是之前默认的Bash,所以我们需要修改默认值为Bash,以便在后继使用:Preferences -> General -> Shells open with Command (complete path): "/bin/bash"
Carthage
我们的项目使用Carthage来管理第三方库:
- 安装homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 安装Carthage:
brew install carthage
- 安装SwiftLint:
brew install SwiftLint
多版本共存问题:如果系统安装了多个Carthage版本,运行时可能会出现莫名的错误,我们需要先移除所有版本后重新安装 brew uninstall --force carthage
, brew install carthage
更新版本:brew upgrade carthage
Swiftlint版本:check version: swiftlint version
, upgrade: brew upgrade swiftlint
Ecosystem
Ecosystem系统有默认指定的XCode版本,如果和当前版本不一致,它会自动下载指定的版本,但是直接下载速度非常慢,最好从其他机器上直接Copy一个过来,设成默认的XCode。
新版MAC 10.13的系统/usr/local
读写权限不能够直接设置,得重启机器打开,然后再添加用户的权限,Ecosystem需要在此目录下操作存储文件。
我们项目的Server依赖项目的源文件是放在/usr/local
下的,因为版本需要特别指定,所以我们需要通过Ecosystem命令下载。
在测试"localization string"命令时,发现执行错误:
- 首先需要安装Java:如果
brew cask install java
失败,可以直接官网下载JDK - 安装Ant:
brew install ant
- 后面发现还是遇到了
[javac] error: Source option 1.5 is no longer supported. Use 1.6 or later
错误:这是因为JDK9支持的最低版本是1.6,而我们项目的设置为1.5,修改项目设置即可。
如果Ecosystem设置的XCode版本与当前不一致,Ecosystem会试图下载XCode,我们可以修改脚本避免下载:在/analytics-mobile/workspace-settings/chef/cookbook/workspace/recipes/project.rb
下注释掉include_recipe 'workspace::update_xcode'
资料同步
使用百度云同步盘和网盘同步更新旧电脑的资料,因为网盘不支持自动同步,所以还得继续使用旧版同步盘,不知道哪天就用不了了。
使用Chrome同步网页收藏内容。
使用Outlook同步邮件信息。
使用Windows虚拟机:安装Paralles后,将pvm文件直接从旧机器AirDrop到新机器,直接打开即可。
使用印象笔记同步笔记:因为免费版支持两个设备,所以需要将旧机器上的注销。
软件安装
远程桌面连接RDC,需要使用App Store的美国账户下载,中国区没有。使用时报错The remote PC ended your session. If this keeps happening, contact your network administrator for assistance.”
,也Ping不通域名,这个问题需要修改Search Domain
。
苹果商店下载:安装有道、wechat、Dr. Cleaner
官网下载:Skype、搜狗输入法、Skype for Business(Office 365上下载)
Mac 空间清理
XCode采用真机调试时会加载大量的调试信息,一般两三个G一个,可以只保留常用的版本,而删除其他的信息,这个可以重新自动生成,所以可以安全删除:/Users/yourmacname/Library/Developer/Xcode/iOS DeviceSupport
不定期删除编译时生成的Derived Data:/Users/yourmacname/Library/Developer/Xcode/DerivedData
清除不需要使用的Core Simulator,在/Users/yourmacname/Library/Developer/CoreSimulator/Devices
目录下,查看device_set.plist
文件,找出与特定Simulator对应的ID,然后根据这个ID查找对应的folder文件夹,相应的保留或者删除。
iOS Files 备份,备份也是非常的大,可能忘了清理: About This Mac -> Storage -> 点击进入
百度云同步盘的删除文件可能会被继续保存在隐藏文件夹中:/Users/yourmacname/百度云同步盘/.BDYunCache/.Delete
Notes
创建Symbolic Link:ln -s ../***/***
隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true
, defaults write com.apple.finder AppleShowAllFiles -bool false