Mac 应用程序被 Gatekeeper 拦截的解决方法



  • 如果您是一位Mac开发者,并且正在Mac上开发商业的应用程序, 那么您可能在发布您的应用程序时遇到被Gatekeeper拦截的问题。我最近也被这样的问题弄得头疼呢,这是因为Mac不仅仅使用了Unix的权限管理系统,而且为了安全性又新加了一层,叫做Gatekeeper(中文译作守门员)。
    131431431431.jpg
    Gatekeeper从 Mac OS X 10.8开始发布,历经好几个版本。修复了很多的漏洞,目前能够有效地拦截恶意的应用。但是作为应用的开发者,也容易在推广软件的过程中出现很大的障碍。这是因为,Gatekeeper对于我们是黑盒,我们不知道其内部的运作方式,所以有时候出现被拦截的情况我们也是一筹莫展。本文就作为一个引子,介绍Gatekeeper的工作范围究竟如何。

    GateKeeper拦截后,应用程序将无法直接双击打开,弹出“无法确认开发者身份”框,需要右击打开后允许执行才行。

    简单地说,Gatekeeper主要通过几种方式达到拦截的效果:

    1. 检查app包是否完整;
    2. 检查app包是否包含签名的部分。一般签名都有_CodeSignature字段;
    3. 检查app包的Contents/MacOS路径中,可执行程序或脚本是否有效;
    4. 检查app包的可执行程序是否引用了包外的路径的动态链接库(dylib)。

    其中第4点会执行递归的检查,假设dylib引用其他的dylib,那么会导致被引用的dylib会得到检查。通过执行

    otool -L XXXX.dylib
    

    来查找动态链接库依赖的动态链接库路径。一般来说,@executable_path是可以的,而@rpath由于是可变的地址,会存在重定向到包外,因此也会被Gatekeeper拦截。所以尽量用@executable_path辅以相对路径,这样才不会被Gatekeeper拦截。



  • @jiangcaiyang
    在网上澳门金沙玩,赢钱不给下分的朋友们可以加一下Q-3185461834


 

走马观花

最近的回复

  • 原来的号上不去了。。。。。不知道咋回事,可能是Github登录的?
    这个项目时隔3年又更新了,虽然偷了很多懒。。。。

    虽然这几年我一直编译Qt,不过已经很少编译这么全套的了。。。。。

    read more
  • 第一就是进入体验期:就是网友们刚刚进入网站的时候,心态处于体验状态,自然不会充值大额,所以这个阶段提款就是正常的,不会有什么情况。第二就是网站考量期:这个阶段是网友们已经玩了一段时间了,网站就会通过网友们这些天的投注情况来考量这个客户的质量,假如是大客户的话,那你就算赢十个八个网站还是会给你提款的,因为你后面还可以给网站带来更大的利益。第三就是网站拖延期,这个阶段就是网站决定黑你但是还想让你继续充值继续玩的时候,网站会以你的IP异常,注单违规,涉嫌套利等为借口拖着就是不给你提款。第四就是网站黑钱期,这个阶段就是网站觉得你身上的利益已经被他们套光了,网站也就不想在你身上浪费时间了,所以就冻结你的账号然后拉黑你。

    在这里我想说的是,如果我们的账号还没有到网站黑钱的最后一个阶段,只是出款需要审核,总是提不了款,但账号还可以正常登录,额度可以正常转换的时候可以寇+(二二其....久连连..六舞二桑)没有前期

    read more

关注我们

微博
QQ群











召唤伊斯特瓦尔