2.App Group的配置
Containing App与Extension的Explicit App ID必须Assign到同一App Group下才能实现数据共享,并且Containing App与Extension的App ID命名必须符合规范:
置于同一App Group下的App IDs必须是唯一的(Explicit,not Wildcard)
Extension App ID以Containing App ID为Prefix/Seed
假如Garageband这个App ID为“com.apple.garageband”,则支持从语音备忘录导入到Garageband应用的插件的App ID可能形如“com.apple.garageband.extImportRecording”。
App(ex)
App Group IDProvisioning Profile
Code Signing Identity
(Certificate Key Pair)App ID
(bundle identifier)Devices
(test)
GarageBand
置于同一分组:
group.com.apple(1)共用同一证书:ios_development.cer
(2)共用证书Key Pair中的Private Key进行CodeSigncom.apple.garageband
授权开发测试设备的UDIDs
GarageBand扩展插件
com.apple.garageband.extImportRecording
关于Provisioning Profile,可以使用自己手动生成的,也可以使用Xcode自动生成的Team Provisioning Profile。
App Group会被配置到【Xcode Target|Build Settings|Code Signing|Code Signing Entitlements】文件(*.entitlements)的键com.apple.security.application-groups下,不影响Provisioning Profile生成流程。
七.证书与签名(Certificate& Signature)
1.Code Signing Identity
Xcode中配置的Code Signing
Identity(entitlements、certificate)必须与Provisioning
Profile匹配,并且配置的Certificate必须在本机Keychain Access中存在对应Public/Private Key
Pair,否则编译会报错。
Xcode所在的Mac设备(系统)使用CA证书(WWDRCA.cer)来判断Code Signing Identity中Certificate的合法性:
再对证书本身使用哈希算法计算摘要,若与上一步得到的摘要一致,则证明此证书未被篡改过,即证书完整。
2.Code Signing
每个证书(其实是公钥)对应Key Pair中的私钥会被用来对内容(executable code,resources such as images and nib files aren’t signed)进行数字签名(CodeSign)——使用哈希算法生成内容摘要(digest)。
Xcode使用指定证书配套的私钥进行签名时需要授权,选择【始终允许】后,以后使用该私钥进行签名便不会再弹出授权确认窗口。
3.Verify Code Signature with Certificate
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-67415-7.html