**1.列出所有可用的证书: **
security find-identity -v -p codesigning
2.来为app 签名 **
codesign -s 'iPhone Developer: xiau (3G29359UV8)' ~/Desktop/TestWidget.app
强制签名: codesign -f -s 'iPhone Developer: xia**u (3G29359UV8)' ~/Desktop/TestWidget.app
**3.查看签名信息 **
codesign -vv -d ~/Desktop/TestWidget.app
**4.检查下签名是否完整好用,如果正确,没任何输出; **
codesign --verify ~/Desktop/TestWidget.app
为了达到为所有文件设置签名的目的,签名的过程中会在程序包中新建一个叫做 _CodeSignatue/CodeResources 的文件,这个文件中存储了被签名的程序包中所有文件的签名。你可以自己去查看这个签名列表文件,它仅仅是一个 plist 格式文件 代码签名保证了这个应用里所包含的内容正如它所说的那样不多不少,而沙盒则是限制了应用访问系统的资源。这两种技术是相互合作来发挥作用的,它们都能阻止你的应用运行. 沙盒机制在什么时候会引起问题呢,大多数情况下都是由于一个叫做授权的机制决定的。
**4.授权机制 **授权机制决定了哪些系统资源在什么情况下允许被一个应用使用。简单的说它就是一个沙盒的配置列表,上面列出了哪些行为被允许,哪些会被拒绝。 很可能你已经猜到授权机制也是按照 plist 文件格式来列出的。Xcode 会将这个文件作为 --entitlements 参数的内容传给 codesign , 在 Xcode 的 Capabilities 选项卡下选择一些选项之后,Xcode 就会生成这样一段 XML。 Xcode 会自动生成一个 .entitlements 文件,然后在需要的时候往里面添加条目。当构建整个应用时,这个文件也会提交给 codesign 作为应用所需要拥有哪些授权的参考。这些授权信息必须都在开发者中心的 App ID 中启用,并且包含在配置文件中
**查看该授权信息:
codesign -d --entitlements - ~/Desktop/TestWidget.app
**5.查看机器上的所有配置文件 **
如果你要在自己的机器上找到配置文件,在这个目录下 ~/Library/MobileDevice/Provisioning Profiles
**查看证书文件: **security 来看看一个 .mobileprovision 文件内部是什么样子: $ security cms -D -i example.mobileprovision
原文网址: http://objccn.io/issue-17-2/
网友评论