我有一个支持安卓和iOS的Xamarin应用程序。我已经生成了Jenkins构建来编译它们。所有的Android系统都能工作。iOS调试构建编译得很好。然而,Ad构建不能完全为iPhone目标构建.在共同设计过程中,它似乎失败了。如果我瞄准iPhoneSimulator,它就能工作,但如果我瞄准iPhone设备,它就会失败。
工具/usr/bin/codesign执行从参数开始:-v --force --标志81088F81949DC4C6CE640716944EB0709F--应享权利"/Users/Shared/Jenkins/.jenkins/workspace/{project path }/obj/iPhone/Ad/Entitls.xent“--深度"/Users/Shared/Jenkins/.jenkins/workspace/{project path}/bin/iPhone/Ad/AppName.app”bin/iPhone/Ad-Hoc/AppName.app : /Users/Shared/Jenkins/.jenkins/workspace/{project路径}/bin/iPhone/Ad/AppName.app:未知错误/Users/Shared/Jenkins/.jenkins/workspace/{project path}/iDriverMobile.iOS.csproj
如果我在Visual中打开解决方案,就在Jenkins工作区文件夹中,所以它使用的是完全相同的文件,那么编译就能正常工作,这真是令人沮丧。
从这两个输出之间的差异来看,工作构建(来自Studio)似乎对所有程序集都有AOT输出,如下所示:
Mono提前编译器编译程序集/Users/Shared/Jenkins/.jenkins/workspace/{project path}/obj/iPhone/Ad-Hoc/mtouch-cache/32/Build/OpenNETCF.Google.Analytics.dll
失败的构建没有这些。相反,它有几行代码如下所示:
MTOUCH :警告/Users/Shared/Jenkins/.jenkins/workspace/{project path}/obj/iPhone/Ad-Hoc/mtouch-cache/64/Build/Msym/Msym/tmp::MT0095文件无法复制到目标目录MT0095无法启动进程。/Users/Shared/Jenkins/.jenkins/workspace/{project路径}/AppName.csproj
最糟糕的是,这些构建确实起作用了,但后来我重新启动了Jenkins正在运行的Mini,然后事情就开始走下坡路。我不知道Studio在做什么和命令行调用msbuild之间有什么区别。它们都指向相同的双星。
附加信息,直到今天(5/24/17),最新的更新仍然失败。这就是环境:
没有解决问题的地方:
xbuild而不是msbuild发布于 2017-06-01 12:30:21
尝试删除应用程序的DerivedData中的派生数据文件夹。据苹果开发者论坛( Apple )的这称,这款手机看起来像YourAPP_ dasfdsfsdafdsasfdsaf。
DerivedData数据文件夹位于~/Library/Developer/Xcode/DerivedData/
如果这不起作用,所有症状都指向签名证书(也称为签名标识)问题。
从命令行编译它时,/usr/bin/codesign似乎无法访问签名标识81088F8E194139DC4C6CE640716944E41FB0709F。不幸的是,这可能有许多不同的原因:
codesign访问签名标识。在运行msbuild之前尝试添加以下代码片段,假设您的签名身份在密钥链~/Library/Keychains/login.keychain中
security unlock-keychain -p <password> ~/Library/Keychains/login.keychain
security set-keychain-settings -l -u -t 3600 ~/Library/Keychains/login.keychain
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k -p <password> ~/Library/Keychains/login.keychain将密钥链密码存储在构建脚本中并不是一个好主意,您可以按照本指南来隐藏它们。
https://stackoverflow.com/questions/44145830
复制相似问题