关于苹果公证(Apple Notarizition)机制的一些总结
升级苹果系统到MAC10.15后,一般用户没什么影响,但是开发者要一阵忙碌,每次苹果发新系统都是玩开发者团团转,这是历史陋习了。 这次强制启动Notarizition机制,以前的codesign和productsign不管用了,必须要发送文件夹给苹果服务器进行公证。不然就只能要求用户在首次安装(使用)时按右键弹出菜单“open”进行安装或使用,并且还“威胁”说某年某月某一天没有公证的app不能运行,所以只能捏着鼻子跟着流程走。问题是国内的博客和论坛都没有详细的攻略(也行有,可能我搜不到而已)。 废话说够了,现在入正题。 首先肯定是codesign,不能单纯按旧的跑了,要加几个参数,我给个例子,读者自行比较: sudo codesign -f -o runtime --entitlements {path}/app.entitlements --timestamp --deep -s "Developer ID Application: xxx" -i "com.xxx.abc" "{path}/abc.app" 如果在工程里面配置了entitlements环境文件(打开强运行时Hardened Runtime),则可以省略“--entitlements {path}/app.entitlements” 这样签名得到的app也是可以用的,用codesign -vv xxx