背景: 公司考虑安全因素为内部各大系统登陆加上了双因子认证。当然之前提供的方案是只提供了App端的应用来提供6位验证码的动态生成,然后我们在各个系统之间切换的时候就变的极为痛苦。经常可以看到这样的对话:hi 帮我看个问题吧。 好,等下我找下手机。。。。后来发现了有人在github上开源了这款应用。可以在PC端生成动态验证码且可以直接copy,-- 重大利好 (此处应有掌声👏)-- ,但是作者说东西不是白拿的,要拿得付出代价。于是将已经编译打包好的应用上传到了App store 同时售价为¥18,同时开放出源码放在github上面。如果不想花钱那就自己来编译吧。对这种行为我表示“有个性,我喜欢”。作为一个程序员,这种钱我怎么能花呢,于是果断下载编译之。
项目链接:Authenticator
伸手党看这:购买链接
编译过程
工程采用Object-c语言在xcode里面编写的。
1、下载源码
git clone https://github.com/TorinKwok/Authenticator.git
2、在xcode中打开项目,执行编译。 咔~~报错~~~
PureLayout.h file not find
开始怀疑是依赖包之类的东西没有导入进来,就查了一下oc有哪些包管理工具。最多用的应该是CocoaPods.
CocoaPods安装教程
但是翻遍了工程目录也没有找到CocoaPods的配置文件。。。所以这里无果。。。
后来偶尔看的项目根目录下有一个.gitmodules文件。嘿嘿。。这个是git子包的管理文件,所以当然只要clone下来子包应该就可以了。
果断执行:
git submodule init && git submodule update
但是事情并不如人意,又TM报错
fatal: No url found for submodule path 'Authenticator/vendors/aerogear-otp-ios' in .gitmodules
查看.gitmodules文件
[submodule "/Users/EsquireTongG/git/Authenticator/Authenticator/vendors/PureLayout"]
path = /Users/EsquireTongG/git/Authenticator/Authenticator/vendors/PureLayout
url = https://github.com/TorinKwok/PureLayout.git
[submodule "/Users/EsquireTongG/git/Authenticator/Authenticator/vendors/aerogear-otp"]
path = /Users/EsquireTongG/git/Authenticator/Authenticator/vendors/aerogear-otp
url = https://github.com/TorinKwok/aerogear-otp.git
[submodule "Authenticator/vendors/OAuthSigningConstants"]
path = Authenticator/vendors/OAuthSigningConstants
url = https://gist.github.com/9aea4d69fac1cf0ba27d.git
[submodule "Authenticator/vendors/ZXingObjC"]
path = Authenticator/vendors/ZXingObjC
url = https://github.com/TorinKwok/ZXingObjC.git
这里有3个问题:
1、前两个配置的Path写错了,仍然是TorinKwok自己本机的目录。
2、aerogear-otp的名称写错了,改成Authenticator/vendors/aerogear-otp-ios。
3、ZXingObjC使用git submodule 不能进行初始化,只能到对应Authenticator/vendors/ZXingObjC目录下面去主动git clone。
还有一个额外的问题需要注意,执行git submodule的时候会把对应的配置写到.git/config文件下面去,所以有时候不成功的时候要删除一下里面的配置。
1、Ensure that there are no submodule sections in .git/config. If there are, remove them.
2、Do git rm --cached <path_to_submodule>.
最后经过这一番折腾,终于build成功了。哈哈哈哈哈哈~~
网友评论