ios no identity found 解决办法

xcode编译文件时老是报 no identity found错误 ,很坑爹啊。最后重启了下电脑就突然可以编译了。


然后按照以下3种方法试了下,解决了。


1. 删除电脑上已经存在的证书(和即将要安装得证书是同一个证书),然后打开钥匙串(切换到登陆----证书状态),双击P12证书和签名文件mobileprovision,即可以成功打开(倘若双击不可以打开添加到钥匙串,可以直接将其拖入到钥匙串来添加)。

2.  将cer文件重新导出一份p12文件,然后打开,即可以了

3. 通过以上2步,还是报 “no identity found”错误得话,删除所有得证书,然后重启电脑-------然后打开2中生成的证书(我这里就是重启了下电脑就可以正常得编译XCODE了)


关于证书被Revoke 掉

已经发布了的不影响,可以继续使用。如果还没发布,p12要重新生成 。已经安装过的不受影响,新导入p12会显示无效。





### 实现Java应用程序与苹果授权登录(Sign in with Apple)集成 #### 验证身份令牌 (Identity Token) 为了确保来自 Sign in with Apple 的请求的真实性,在 Java 应用程序中需要验证由 iOS 客户端发送的身份令牌。这涉及到几个关键步骤: 1. **获取公钥** 苹果提供了用于解码 JWT 身份令牌的公共密钥,这些密钥可以通过 GET 请求从 `https://appleid.apple.com/auth/keys` 获取[^3]。返回的数据是一个 JSON 对象列表,其中包含了多个 RSA 密钥的信息。 2. **解析并匹配 kid 字段** 当接收到 identityToken 时,从中提取出头部信息里的 `kid` 参数值,并以此来查找对应的公钥条目。因为服务器可能会提供多组不同的公钥,所以必须依据客户端传递过来的具体 key ID 来定位正确的那一对 n 和 e 值。 3. **设置 JWT 解析器** 使用合适的库(例如 jjwt 或 Nimbus-Jose-LD),配置 JWT 解析器以接受特定于 Apple 发布者的声明。具体而言,应该指定 issuer (`iss`) 为 `"https://appleid.apple.com"`[^2]。 4. **验证签名算法** 确认使用的加密方法是 RS256,这是苹果推荐的标准算法之一。通过组合前面提到的模数(n)和指数(e),构建完整的 RSA 公钥对象来进行最终的身份验证过程。 以下是基于上述描述的一个简单的代码片段展示如何在 Java 中完成这个流程: ```java import com.nimbusds.jose.*; import com.nimbusds.jwt.*; // ...其他必要的导入语句... public class AppleSignInVerifier { public static void main(String[] args) throws Exception { String jwtString = "..."; // 这里放置实际获得的身份令牌字符串 JWSObject jwsObject = JWSObject.parse(jwtString); // 加载远程JWK集合 URL url = new URL("https://appleid.apple.com/auth/keys"); JWKSet set = JWKSet.load(url); // 查找具有相同 'kid' 属性的键 JWK matchingKey = null; for(JWK k : set.getKeys()){ if(k.getKeyID().equals(((SimpleHeader)jwsObject.getHeader()).getKeyID())){ matchingKey = k; break; } } if(matchingKey != null){ JWSSigner signer = new RSASSASigner((RSAKey)matchingKey.toRSAKey()); boolean result = jwsObject.verify(signer); System.out.println("Verification Result: "+result); }else{ throw new RuntimeException("No Matching Key Found!"); } } } ``` 此示例展示了如何加载远程公钥集、找到相应的密钥以及执行基本的身份验证逻辑。请注意,这段代码仅作为概念证明用途;生产环境中应当考虑更全面的安全措施和服务稳定性保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值