跳至主要内容

博文

目前显示的是 五月, 2019的博文

macOS下通过shell批量替换文件内容

参考链接: https://blog.csdn.net/u013022032/article/details/51260403 https://www.cnblogs.com/777777-716/p/5694953.html grep "OldString" -rl /path | xargs sed -i "s/OldString/NewString/g"  例子:  1.将“abc”替换为“ABC”  grep "abc" -rl ./ | xargs sed -i '' "s/abc/ABC/g"  2.将“abc d"替换为 "ABC D"   grep "abc d" -rl ./ | xargs sed -i '' "s/abc d/ABC D/g" --------------------- 不备份文件需要加'' sed在Mac系统的命令行下使用时,需要为原文件设定一个备份文件   sed -i ‘.bak’ ‘s/Test String/New Test String/g’ *.txt 如果不想设置备份文件时,在第一个单引号里什么都不输入:   sed -i ” ‘s/Test String/New Test String/g’ *.txt

macOS外置显示器开启HiDPI

参考链接: macOS 开启外接显示器 HiDPI MAC外接屏幕一键开启HiDPI,支持Mojave https://yanke.info/?id=74 如果有条件,MAC外接屏幕优先选择4K屏,可以自动开启HiDPI。低于4K的屏幕则需要非官方途径开启。 在外接屏幕强制开启HiDPI,即使是2K屏,也没有原生Retina细腻哦! 先上解决方案: 本脚本作者: Github 第一步:临时关闭系统保护(SIP) 重启电脑,并在开机声响起后按住command+R进入recovery mode。在更多工具中,找到终端Terminal,在终端输入关闭SIP的命令行语句: csrutil disable 这时,SIP已关闭。重启。 第二步:运行脚本 一键脚本:在终端中运行下面的命令 sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi-zh.sh)" 按照脚本的提示输入即可。2K屏或1080P屏幕请按照外界屏幕的分辨率选择。 如果是外接屏幕,需要将笔记本盒盖后,再运行脚本。脚本局限性,盒盖之后才对针对外接屏幕进行设置 设置成功后,需要重启生效。进入系统设置-显示器设置,可以看到外接屏幕已经开启了HiDPI,如下图所示,可以选择“较大文字”或“更多空间”。 第三步:重新开启SIP SIP是MACOS自我保护的关键。按照上文的方法再次进入恢复模式,在终端中输入命令。 csrutil enable 这时,SIP已重新开启。 再来讲一讲HiDPI 搞了一块AOC的2K屏,按理说分辨率已经足够细腻,并且在Windows中表现良好。但与MacBook Pro (Retina, 13-inch, Early 2015)搭配时,一是字太小,二是有些模糊和眩晕。 查了一些资料,MAC在非4K屏中,并不会自动开启HiDPI,并没有最优的显示效果。如果没有HiDPI,眼睛在Retina原生屏幕与2k外界屏幕直接切换,不久就会出现重影、眩晕。 何为HiDPI? HiDPI本质上是用软件的方式实现单位面积内的高密度像素。在我们的...

Cannot remove an observer for the key path from because it is not registered as an observer

参考链接 问题原因分析:Tabbar一个viewController只是被Init,但从未显示过,所以viewDidLoad并未被执行。但dealloc事件中却调用了removeObserver方法,导致错误。 不过这只是其中一个原因,不覆盖所有情况。 Apple Docs  say there is a way to add observer when view is visible only. According to  Figure 1 - Valid State Transitions  you can use pair  viewWillAppear / viewWillDisppear  for adding and removing observers. At the same time you can use  init / dealloc  pair, but not  viewDidLoad / dealloc  - view can be not loaded, but controller deallocated.

Mac OS 10.12.3如何添加永久静态路由

参考链接 可以用下面的方法: 1. 创建目录 mkdir -p /usr/local/bin 2. 创建第一个文件,添加路由的脚本, 把它保存到/usr/local/bin/addroute.sh。其中添加了一个日志语句(logger),如不需要可以删除. #!/bin/bash 为了让本脚本在网络初始化完成后再执行,延迟20秒,具体时间可自己定义 sleep 20 route -n add -net 192.168.0.0 -netmask 255.255.255.0 192.168.13.1 logger -i "addRoute: Done with error co de: $?" 3. 创建第二个文件,纯文本文件,把它保存为:/Library/LaunchDaemons/ org.mylocalmachine.addroute.plist 这一步需要管理员权限才能保存。使用你编辑脚本的编辑器,直接把下边内容复制到你的编辑器里保存即可。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" " http://www.apple.com/DTDs/PropertyList-1.0.dtd "> <plist version="1.0"> <dict>   <key>Disabled</key>   <false/>   <key>KeepAlive</key>   <false/>   <key>Label</key>   <string>org.mylocalmachine.addroute</string>   <key>Program</key>   <string>/usr/local/b...

iOS 马甲包、代码混淆、编译混淆实践

原文链接 1. 马甲包 1.1 什么是马甲包? 马甲包是利用 App store 的规则漏洞,通过技术手段,多次上架同一款产品的方法。马甲包和主产品包拥有基本一致的内容和功能,项目代码基本都是完全复用的,除了图标,应用名称,包名等不一致,其他基本一致。 1.2 为什么做马甲包,以及马甲包的好处 AB 测试  可以测试跨度大的新功能,好的功能就在主包上迭代,不好的也无所谓,不影响主包的使用体验,避免用户流失。 导流  主包和马甲包同属一个平台,用户信息可以共享;通过弹窗,广告,Push等引导用户到App Store下载主App;有一部份App接了网盟相互导流。 增加关键词覆盖  App Store关键词长度上限是100个字符,据了解人为正常优化的极限是关键词覆盖数在4000左右,那些覆盖数在8000+的都是利用了苹果漏洞。所以,多做一个马甲,也就意味着覆盖的关键词可以更多。 刷榜  积分墙、真机、机刷等。用马甲包来刷排名,抵抗主包风险。 1.3 马甲包制作注意事项 二进制不同  应用名称,图标,包名,工程名,打包电脑,代码,静态资源等的修改。 差异化  整体UI,产品功能,页面布局等的修改 1.4 实践 KLGenerateSpamCode  是一个应对苹果对重复应用的审核(Guideline 4.3 Design Spam)的工具,用于避免苹果机审检测概率。 主要功能有: 修改工程名 修改类名前缀 扫描工程中的代码,生成同等数量的 Category 文件,文件中及是同等方法数量的垃圾代码。 修改 xxx.xcassets 文件夹中的 png 资源文件名。 删除代码中的所有注释和空行。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 1. 项目名地址,注意不是项目文件夹地址 /Users/vincent/Desktop/code/spamCode/VHLSpamCodeDemo/VHLSpamCodeDemo # 2. 修改项目名称 -modifyProjectName VHLSpamCodeDemo>VHLSpamCodeDemo1 # 3. 忽略...