前情摘要:
最近在搞一个之前搁置的加解密项目。代码都是以前在真机上跑通没问题的。
结果今天从
gitlab上一拉取下来,Xcode连iPhone真机一跑,铛铛,弹窗你值得拥有。
解决方案
又拿了一台测试机,完美无瑕跑通程序。
总结
因为编译是不存在问题的。
所以,这很大概率上,是一个 XCode 自身存在的 bug,而不是工程本身的代码或者设置问题。
大家都是常用Xcode的优秀iOS开发,🌚 懂得都懂,Xcode抽风型的报错,都不是头一回见。见怪不怪了都。
他山之玉 No.1
顾名思义,别的解决方法
1. 拔掉Mac设备连接的iPhone设备,将之前 Build 的内容,轻轻得丢进废纸篓;
2. 退出 Xcode,快捷键Command+Q;
3. 将该路径下 / Users/xxxx(你的用户名)/Library/Developer/Xcode/DerivedData/xxxx-xxzlxxxoppxxcdcxxxjwxxx 的文件夹及其中的所有内容,轻轻得丢进废纸篓;
进入该目录下的快捷键,回到桌面,点击空白区域,快捷键
Command+Shift+G,输入上述路径/ Users/xxxx(你的用户名)/Library/Developer/Xcode/DerivedData/,回车,即可打开,找到对应的编译文件夹名,扔进废纸篓,即可;
4. 重新用 XCode 打开项目,连接设备,跑起来程序,有可能就解决问题了,也有可能,依然是那个弹窗再现你的视野中;(毕竟,我的解决方案,在开头就已经写着了。🌚 )
他山之玉 No.2
没想到吧!还有解决方案。
看到有说是,第三方库的嵌入方式不对头。
于是,我查了查我的项目。
它居然,一直都是Do Not Embed(不嵌入)的方式。
看来,这个山头的玉石,也不太行。
此山之石
得嘞,咱自己上。看看弹窗里,那个Detail里面写的什么吧。
Details
Unable to install "encryption_decryption_oc"
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402652994
--
This application’s application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402652994
User Info: {
DVTRadarComponentKey = 261622;
MobileDeviceErrorCode = "(0xE80000BE)";
"com.apple.dtdevicekit.stacktrace" = (
0 DTDeviceKitBase 0x000000011a3993b8 DTDKCreateNSErrorFromAMDErrorCode + 220
1 DTDeviceKitBase 0x000000011a3d7ae1 __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 155
2 DVTFoundation 0x00000001042bbbac DVTInvokeWithStrongOwnership + 71
3 DTDeviceKitBase 0x000000011a3d7822 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1440
4 IDEiOSSupportCore 0x000000011a290999 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.294 + 3534
5 DVTFoundation 0x00000001043ee921 __DVT_CALLING_CLIENT_BLOCK__ + 7
6 DVTFoundation 0x00000001043f054b __DVTDispatchAsync_block_invoke + 1191
7 libdispatch.dylib 0x00007fff201b0623 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x00007fff201b1806 _dispatch_client_callout + 8
9 libdispatch.dylib 0x00007fff201b75ea _dispatch_lane_serial_drain + 606
10 libdispatch.dylib 0x00007fff201b80ad _dispatch_lane_invoke + 366
11 libdispatch.dylib 0x00007fff201c1c0d _dispatch_workloop_worker_thread + 811
12 libsystem_pthread.dylib 0x00007fff2035845d _pthread_wqthread + 314
13 libsystem_pthread.dylib 0x00007fff2035742f start_wqthread + 15
);
}
--
System Information
macOS Version 11.6.1 (Build 20G224)
Xcode 12.5.1 (18212) (Build 12E507)
Timestamp: 2022-03-31T17:17:57+08:00
重点内容
This application’s application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.
翻译一下:
此应用程序的应用程序标识符授权与已安装的应用程序不匹配。这些值必须匹配才能允许升级。
解决方案
根据
Detail内容,懂了。
删掉iPhone上App,重新跑一遍,完美解决之前iPhone连接Xcode跑项目的报错。