Mac上开发iOS App
注册成为开发者帐号之后,登录管理员帐号。 几个概念 Certificates 证书 Identifiers 对应App 开发时的Bundle id Profiles 下载的文件名后缀是mobileprovision Devices 内测的设备udid Identifiers 开始开发app的时候,要确定app的bundle id,类似安卓app的包名,唯一标识app,关系到推送、app store内下载。 Certificates 证书。一个app理论上包括4个证书: dev推送证书生产推送证书dev签名证书hoc & app store 签名证书 生成证书 1,打开Mac上自带的软件,Keychain Access(中文名应该是钥匙串) 2,点击菜单:Keychain Access --> Certificate Assistant --> Request a Certificate from a Certificate Authority... 3,填写邮箱,起一个名字。比如证书是dev签名证书,命名为 appName_dev_sign 4,选择保存到硬盘,得到.certSigningRequest后缀名的文件 5,打开开发者后台,证书管理页面,点击添加证书,根据需要选择Apple Development或者是iOS Distribution (App Store and Ad Hoc),点击下一步 6,上传文件的时候,选择第4步生成的文件,点击下一步即可 7,点击下载,保存到本机,双击,即安装证书到Keychain Access 收集Devices 开发、内测期间,需要安装真机测试的iOS设备,需要把udid添加进来。添加的方法可以百度。 创建Profiles 用于安装到真机或者打包导出、上传到app store。 插线安装到真机,需要创建iOS App Development类型的,选择Apple Development类型的证书。 需要打包内测分发的,需要创建Ad Hoc类型的,选择iOS Distribution (App Store and Ad Hoc)类型的证书。 需要上架App Store的,也选择iOS Distribution (App Store and Ad Hoc)类型的证书。 推荐命名方式 company_appName_dev/hoc/store 导出p12 在本机安装证书就可以右击证书,导出,生成一个p12文件。推送相关的需要p12。团队开发app时,一个人生成签名证书,把p12发给其他成员,其他成员双击即可。
Vim 编译安装 +python3支持
日常开发用vim,习惯了脱离鼠标写代码。 今天升级了一堆插件,然后打开Vim报错了,YouCompleteMe插件需要vim编译的时候支持python,所以重新编译vim。 从官方Repo clone代码: # --depth=1 不拉loggit clone git@github.com:vim/vim.git --depth=1 参考 YouCompleteMe https://github.com/wklken/k-vim Configure export PREFIX='/usr/local/vim8' # 如果不是第一次安装,python版本升级过,可能需要执行这几条命令来清空缓存: make mostlyclean make clean make distclean make maintainer-clean git clean -dnX # mac (last build: 2020/11/26) ./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp=dynamic \ --with-ruby-command=/usr/local/opt/ruby/bin/ruby \ --enable-python3interp=yes \ --with-python3-config-dir=/usr/local/Cellar/python@3.9/3.9.0_2/Frameworks/Python.framework/Versions/Current/lib/python3.9/config-3.9-darwin \ --enable-perlinterp=yes \ --enable-luainterp=yes \ --enable-gui=gtk2 \ --enable-cscope \ --prefix=$PREFIX # mac (for new mac) brew install python brew install ruby ./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp=dynamic \ --with-ruby-command=/opt/homebrew/opt/ruby/bin/ruby \ --enable-python3interp=yes \ --with-python3-config-dir=/opt/homebrew/Frameworks/Python.framework/Versions/Current/lib/python3.9/config-3.9-darwin \ --enable-perlinterp=yes \ --enable-luainterp=yes \ --enable-gui=gtk2 \ --enable-cscope \ --prefix=$PREFIX # ubuntu (wsl2) # 可能需要先执行这个命令安装一些依赖(没有验证哪些是必须的)。可以不执行,如果make install不成功再执行 # sudo apt install ncurses-dev libncurses5-dev libgtk2.0-dev libatk1.0-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev python3-dev ruby-dev lua5.1 libperl-dev ./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp \ --enable-python3interp=yes \ --with-python3-config-dir=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu \ --enable-perlinterp=yes \ --enable-luainterp=yes \ --enable-gui=auto \ --enable-gtk2-check \ --with-x \ --enable-cscope \ --with-compiledby="Billy Yang" \ --prefix=$PREFIX 执行这个命令,设置--with-python3-command=为本机的python3可执行文件路径。 Make & Install make sudo make install Update default vim 执行这个多行命令,更新默认的,会把“/vim/vi/gvim”全部改为新安装的vim。 sudo sh -c "update-alternatives --install /usr/bin/editor editor $PREFIX/bin/vim 1; update-alternatives --set editor $PREFIX/bin/vim; update-alternatives --install /usr/bin/vim vim $PREFIX/bin/vim 1; update-alternatives --set vim $PREFIX/bin/vim; update-alternatives…
Docker 常用命令
非root执行docker命令 sudo usermod -aG docker $USER newgrp docker 批量删除容器 docker ps -a | grep Exit | awk '{print $1}' | xargs docker rm 可以修改 grep Exit 为 grep Created,即根据状态,找到对应的全部id,然后传给docker rm命令,可以修改rm 为其它的命令。 批量删除镜像 docker images | grep '<none>' | awk '{print $3}' | xargs docker rmi -f 构建镜像 # -t 指定镜像名字和Tag docker build -t hcp-backend-dev:test . 启动镜像 # 启动镜像hcp-backend-dev:test,指定容器名字为hcp-backend-dev docker run --name=hcp-backend-dev -dit hcp-backend-dev:test 全部删除docker所有东西 docker system prune --all 删除全部镜像 docker rmi -f $(docker images -a -q) 删除全部容器和挂载盘 docker rm -vf $(docker ps -a -q) Docker容器迁移 参考链接 通过docker export导出镜像,然后到新服务器import为指定名字的镜像,启动时以新的镜像名来启动。对于volume的迁移,可以直接从源服务器scp传到新服务器。 相关命令: docker export container_name -o filename.tar # load image as image_name docker import filename.tar image_name
Docker 安装优化
修改目录,配置加速 vim /etc/docker/daemon.json { "data-root": "/data/docker", "registry-mirrors": ["https://${TO_BE_REPLACED}.mirror.aliyuncs.com"] } data-root 是要存放Docker镜像、容器文件的目录 registry-mirrors,使用阿里的,需要有阿里云帐号,到自己的后台去找地址。在控制台,找到“容器镜像服务 - 镜像中心 - 镜像加速器”,这个页面有个地址。复制即可。 配置日志 # vim /etc/logrotate.d/docker /data/docker/containers/*/*.log { rotate 15 daily compress missingok delaycompress copytruncate } 需要先确认logrotate命令是否存在,如果有,则编辑这个配置文件即可实现对应docker日志文件的滚动 重启docker systemctl restart docker
Showdoc数据库sqlite3的使用
showdoc现在已经不支持MySQL了,只支持sqlite。通过官方的Docker安装方式安装后,进入Docker容器,默认没有安装sqlite数据库,可以执行apk install sqlite安装。容器是基于alpine linux的。 进入数据库直接复制数据 使用场景:有几个接口比较像,懒的一个个页面上复制,可通过sql直接复制。 INSERT INTO page (author_uid,author_username,item_id, cat_id, page_title, page_content, s_number, addtime, page_comments, is_del) SELECT author_uid,author_username,item_id, 21, page_title, page_content, s_number, addtime, page_comments, is_del from page where cat_id=20; 批量修改 # replace UPDATE YourTable a SET a.StringColumn = REPLACE(a.StringColumn,',43,',',54,') WHERE a.StringColumn like '%,43,%' # substr UPDATE YourTable SET StringColumn = substr(StringColumn, 10, 4) # 从第10个开始,截取4个 WHERE StringColumn like '%,43,%'
鱼缸清洗 加水草泥
之前买了鱼缸的时候,着急放鱼,也没想好怎么布景,所以就没弄水草泥,直接买了鱼,养了一个多月了。 到现在买的鱼已经死的只剩下10条左右了,剩下的这些相当强悍,整个国庆节回老家没管,只死了一条。鱼缸壁上长满了海藻,底部一层鱼粪,简直不忍直视。 最近看其他朋友的缸,弄的水草,看起来都好漂亮,所以还是决定买水草泥。 今天把水抽出来,放到盆里,然后把鱼捞出来,放到抽出来的水里。然后把缸里剩下的水都抽出来,倒掉。最后把鱼缸抱到卫生间,清洗一遍。 然后把水草泥倒进去,注水。根据水草泥的介绍,倒进鱼缸之后,铺平,然后撒了一层水,等了10分钟,开始倒水。一开始倒水的时候慢点。不过好像也没多大关系,最终泥并没有粉化,稍微有点浑浊,静置到明天早上看看效果。
电影清单
名字记录时间观看时间为奴十二载2019/09/26浪潮2019/09/26
vim 命令记录
参考: 简明 Vim 练级攻略 替换 把所有行的 search 替换为 replacement 其中,\r在replacement中表示换行 :%s/search/replacement :10,20s/search/replacement //指定10-20行之间匹配的进行替换 删除空行 把所有空白行删掉 //仅空白行 :g/^$/d :v/./d :10-20g/^$/d //指定10-20行之间,其它相同 //仅包含空白符也算空白行 :g/^\s*$/d :v/\S/d 宏录制 记录一系列操作,快速重复 输入 qa 开始录制宏,记录在寄存器 a (命名为 a) 做任何需要的,完成后在 Normal 模式按 q 结束录制 @a 在当前光标下重复 a 宏@@ 在当前光标下重复 刚刚录制的宏10@@ 在当前光标下重复10次刚刚录制的宏 多光标操作 标记多个相同的文本,统一操作。常用于局部某变量重命名 使用插件: terryma/vim-multiple-cursors 可以先使用 Visual Mode 选中需要操作的,然后Next Key (<C-m/n>) 选中下一个 处理csv文件 在mac上面很多csv文件用excel打开会乱码,这时候需要设置bomb,设置之后就正常了。用vim打开文件,然后命令模式执行::set bomb。如果有需要移除bomb,执行::set nobomb
thumbnail
苹果开发者帐号注册过程
公司新项目,需要开发App,全新注册一个开发者帐号。 注册苹果Apple ID 首先,必须有一个常用邮箱帐号,可以正常收发邮件,作为登录id。 然后,注册完成后,必须有一个苹果设备(手机、电脑、平板)登录注册的id,然后完成两步验证。 过程中还有一个Recory Key,这个可以拍照、截图保存一下。下一步就要用。。 D-U-N-S (邓白氏) 注册后登录https://developer.apple.com/页面,点击加入开发者计划,有个注册按钮,点击可以开始整个过程。 首先会检查帐号状态,必须两步验证开通。状态符合要求之后,去申请邓白氏帐号。申请邓白氏,首先填写公司信息,要求必须全部英文,包括公司名字、公司地址。这里有个联系人手机号,不要写以前申请过邓白氏号码的手机号,不然没法再次申请。填写一个新的手机号,然后确定后,系统发现没有帐号,会自动发起一个邓白氏号的申请过程。大概半小时内会收到一封邮件: 然后打算先等等。2019/9/5 15:01 收到这封邮件。 2019/9/6 11:49收到回复,邮件说要9月9号下午3点前回复,可惜没看到。直到9号下午6点多才回复。等明天上班时间打电话过去问问看。 早上打了好几遍电话才打通,不过小姐姐态度挺不错,耐心回答问题,点赞。效率也高,直接问了我的id,然后说这个id12号才过期(和邮件里不一致),然后看到我的邮件,直接告诉我邮件里有两个问题: 1,营业执照要拍照,而不是复印件、扫描件 2,确认函必须是红章,我打印之后签字因为没有彩色墨水了,打印出来的是黑白的 小姐姐说会回一封邮件,然后我直接回复邮件把有问题的附件发过去就好了。电话挂了没多久就收到小姐姐的回复,然后我弄好之后,10号10:32分回复了邮件。 没想到这么快,11:20就收到回复了。 贵司的审核已完成。邓氏编码会在1-2工作日内系统自动发送到您在苹果留的邮箱,请注意查收!(拿到编码请过7-14个工作日再使用,数据上传需要时间) 感谢您的配合! 9月11号晚上9:00整,收到邮件,拿到了号码。“You may start using your number in 7 days.”有了这个之后就可以回到苹果官网继续注册开发者帐号了,接下来就比较简单了,基本上付钱就好了。
thumbnail
ssh 连接保持不断
环境:MBP iTerm2 阿里云ecs 网络:三大运营商没法进入物业,只能用物业提供的一家服务商,8000/年,可能是铁通的网络,非常不稳定,经常GitHub提交代码Push不上去,对外IP地址变化非常快。 平时工作经常要操作阿里云ecs,就通过iTerm2 开个Tab,通过ssh连接服务器。苦恼的是,一段时间不用,ssh连接就会断开。 一直以为是网络IP的问题,不知道怎么解决。 今天突然搜了一下,找到了一个解决办法,在~/.ssh/config文件中增加: # 15 值可以改 大于1即可 表示每隔多少秒发送心跳 ServerAliveInterval 15 放在Host同级。效果图: 测试了一下,出去吃了顿饭回来,连接没有断。