iOS摸鱼周报,主要分享大家开发过程遇到的经验教训及学习内容。虽说是周报,但当前内容的贡献途径还未稳定下来,如果后续的内容不足一期,可能会拖更到下一周再发。所以希望大家可以多分享自己学到的开发小技巧和解bug经历。
周报仓库在这里:https://github.com/zhangferry/iOSWeeklyLearning ,可以查看README了解贡献方式;另可关注公众号:iOS成长之路,后台点击进群交流,联系我们。
开发Tips
开发小技巧收录。
Github的仓库操作需求token验证
今天使用一个旧仓库访问Github时,收到一个Deprecation Notice的邮件,说是基于用户名密码的登录方式之后将不再支持,官方通告可以看这里。
当前对于放在github的仓库有两种访问方式:用户名密码、Token。
用户名密码就是使用https访问git仓库。
Token是指私有访问(SSH)、OAuth、GitHub App这三种情况。
在2021年8月13号之后,github将不再接受用户名密码的访问形式。受影响的流程包含:
- 命令行访问
- 桌面应用访问(Github Desktop不受影响)
- 其他App或者服务使用用户名密码访问直接访问github的情况
不受影响的情况:
- 账号具有双重验证功能、SSH访问
- 使用GitHub Enterprise Server,没有收到Github的更改通知。
- 其他不支持用户名密码访问的Github App
配置Entitlements
entitlements是一种授权文件,用于配置相应的操作是否被允许。这个文件会在我们增加Capability的时候自动生成,它的实体是一个plist文件,用于记录我们增加的Capability。打包时entitlements会被放置到MachO文件的Code Signature段中,系统会根据这里的值判断当前应用的权限。
通常一个Target只会有一个entitlements,当如果我们想要根据不同configuration对应不同bundleId时,可能由于某些限制,他们之间的权限能力不同,这时就需要他们拥有不同的entitlements。
我们可以Copy原来的授权文件,重命名,然后在Build Setting > Signing > Code Signing Entitlements
中配置刚才新增的entitlements文件。
would clobber existing tag
在拉取远程tag时会报这种错误,含义是远程tag跟本地有tag冲突。解决方案是找出这个冲突的本地tag,删除掉。
可以通过git ls-remote -t
和git tag -l
结果进行比对,也可以直接删除本地仓库,重新拉取。