如何使用mdtool构建MonoTouch项目(How to build MonoTouch Project using mdtool)
我正在尝试在Jenkins构建上设置MonoTouch(Xamarin.iOS 2.0)项目。 我有一个用于构建的用户,我已将所有必需的证书和密钥添加到他们的钥匙串中。
当我尝试在终端中使用mdtool(如此处和此处所述 )时。 具体来说,我运行的命令是
"/Applications/Xamarin Studio.app/Contents/MacOS/mdtool" -v build <path to .sln>
。 当我这样做时,我得到了这个输出MonoDevelop Build tool ERROR [2013-02-28 10:31:36Z]: Android SDK not found, needed by Xamarin.Android add in Loading solution: <path to .sln> Loading solution: <path to .sln> Loading projects .. Building Solution: <Project name> (Ad-Hoc|iPhone) Building: <project name> (Ad-Hoc|iPhone)
此时,构建停止。 如果我在我自己的用户下运行相同的命令,而不是Jenkins用户,则按预期工作。 我已经检查过我确实拥有jenkins用户的所有证书和密钥,并且所有的Provisioning Profiles都可以通过XCode访问。 我有点心情,并且真的很感激一些帮助。
更令人困惑的是,如果我尝试在jenkins用户下使用Xamarin Studio构建此项目,则该过程成功而没有问题。 但是为了自动化构建过程,我必须创建一个可以在shell中运行的命令。
I'm trying to set up a MonoTouch (Xamarin.iOS 2.0) project on a Jenkins build. I have a user that I have set up for the build, and I have added all of the required certificates and keys to their keychain.
When I attempt to use the mdtool (as described here and here) in the Terminal. Specifically Specifically, the command I run is
"/Applications/Xamarin Studio.app/Contents/MacOS/mdtool" -v build <path to .sln>
. When I do this, I get this outputMonoDevelop Build tool ERROR [2013-02-28 10:31:36Z]: Android SDK not found, needed by Xamarin.Android add in Loading solution: <path to .sln> Loading solution: <path to .sln> Loading projects .. Building Solution: <Project name> (Ad-Hoc|iPhone) Building: <project name> (Ad-Hoc|iPhone)
At this point, the build stops. If I run this same command under my own user, and not the Jenkins user, this works as expected. I've checked that I do in fact have all of the certificates and keys in the jenkins user, and that all of the Provisioning Profiles are accessible through XCode. I'm kind of at wits end with this, and would really appreciate some help.
To make matters more confusing, if I attempt to build this project using Xamarin Studio under the jenkins user, the process succeeds without issue. But to automate the build process, I have to make a command that can run through the shell.
原文:https://stackoverflow.com/questions/15143410
最满意答案
Safari正在标记第二种
:
作为无效语法。 您无需删除它,因为浏览器只是忽略无效的属性。但是,如果由于某种原因你需要它才有效,或者它只是在烦你,这是你的选择:
最简单的选择是删除
filter
属性。 您确实失去了IE8支持,您可能需要也可能不需要。如果确实需要IE 8支持,请使用
-ms-filter
属性,并将值包装在引号中:-ms-filter: 'filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);';
您现在将失去对IE7及更低版本的支持,因为它仅在IE8中受支持 。 但是,由于IE 7仅占全球浏览器使用量的0.061% ,我不担心。 许多/大多数/如果不是所有网站都不再积极支持它。
资源:
Safari is flagging the second
:
as invalid syntax. You don't need to remove it, as browsers simply ignore invalid properties.However, if for some reason you need it to be valid, or it's just bugging you, here's your options:
The easiest option is to just remove the
filter
property. You do lose IE8 support, which you may or may not need.If you do need IE 8 support, use the
-ms-filter
attribute, and wrap the value in quotes:-ms-filter: 'filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);';
You will now lose support for IE7 and below, as it is only supported in IE8. However, since IE 7 makes up only 0.061% of the global browser usage, I wouldn't worry about that. Many/most/if not all websites don't actively support it anymore.
Resources:
相关问答
更多-
意外的令牌=(Unexpected token =)[2022-10-12]
node.js 5.0尚不支持所有ES6功能。 特别是,它还不支持默认参数。 所以这一行: constructor(options = {}) { 是什么导致=赋值错误。 请参阅此表以了解node.js 5.0中支持哪些功能。 您可以使用旧式方法替换默认参数分配: constructor(options) { this.options = options || {}; } node.js 5.0 does not support all ES6 features yet. In particul ... -
我相信错误是因为60**2 ,我相信在Firefox或safari中不支持(请纠正我,如果我错了) 另一种方法是使用Math.pow(base,exponent) changeTimeFormat :function(timeCode){ var timeCodes = timeCode.split(/[:.]+/), hh = timeCodes[0], mm = timeCodes[1], ss = timeCodes[2], msmsms = timeCodes[3], ...
-
删除该区域周围的所有不可见字符(空格),然后再尝试一下。 在复制/粘贴代码时,我已经看到Safari中的错误。 你可以拿起一些无效(不幸的是不可见的)字符。 用于从jsFiddle复制时,发生在我身上。 Delete all invisible characters (whitespace) around that area, then give it another try. I've seen that error in Safari when copy/pasting code. You can pi ...
-
使用rem而不是em 其实em取决于父元素和rem取决于根元素...所以它使用rem代替em很好的。 阅读这篇文章 堆栈片段 .animate { animation-duration: 0.75s; animation-name: add-icon; font-size: 8rem; } @keyframes add-icon { 0% { font-size: 18rem; } 25% { font-size: 6rem; } ...
-
您需要添加一个Webpack加载器才能导入任何非JS的东西。 在您的情况下,您需要一个CSS加载器来使行import './Banner.css'工作。 更多信息: https : //webpack.js.org/loaders/#styling You need to add a Webpack loader to be able to import anything that is not JS. In your case, you need a CSS loader to make the line ...
-
JavaScript Safari - SyntaxError:意外的标记'>'(JavaScript Safari - SyntaxError: Unexpected token '>')[2022-07-09]
箭头函数()=> {}是es6功能,已经支持firefox和chrome。 但safari旧版本没有。 请访问http://kangax.github.io/compat-table/es6/了解更多信息。 Arrow function ()=>{} is es6 feature, firefox and chrome both are already supported. But safari old version doesn't. Please check http://kangax.github.i ... -
Gulp.task意外令牌(Gulp.task unexpected token)[2022-05-31]
只是看到我的最后一个导入有逗号,导致了这个错误 pkg = require('./package.json'), 需要是 pkg = require('./package.json') Just saw that my last import had a comma , which caused that error pkg = require('./package.json'), needs to be pkg = require('./package.json') -
如果有人(包括我)再次遇到此问题,这是供将来参考。 Safari在我的案例中抛出的错误是虚假的,或者至少是非常模糊的。 我在我的一个库中定义了一个类。 我不想存储该类对象的句柄/引用。 所以,我做了类似的事情: function reply(...) { new ClassName(.....).onHide = bind(...); .......... } 当我将其更改为以下内容时,Safari停止了抱怨。 function reply(...) { var dg = new ...
-
我在package.json中添加了以下内容: "jest": { "moduleNameMapper": { "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "
/__mocks__/fileMock.js", "\\.(css|sass)$": " /__mocks__/styleMock.js" } ... -
Safari意外的CSS令牌:(Safari Unexpected CSS Token: :)[2023-04-26]
Safari正在标记第二种:作为无效语法。 您无需删除它,因为浏览器只是忽略无效的属性。 但是,如果由于某种原因你需要它才有效,或者它只是在烦你,这是你的选择: 最简单的选择是删除filter属性。 您确实失去了IE8支持,您可能需要也可能不需要。 如果确实需要IE 8支持,请使用-ms-filter属性,并将值包装在引号中: -ms-filter: 'filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);'; 您现在将失去对IE ...