仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1760|回复: 19
打印 上一主题 下一主题

[学习教程] IOS设计利用AppVeyor CI 和PowerShell部署使用仓酷云

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:32:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
NSStringNSArrayNSDictionary等这些工具在所有的框架里都会出现iOS大部分类都是继承自NSObject(我还没见过不是继承自NSObject的..)开首语

关于怎样为单一的ASP.NETweb使用程序设置延续集成,你能够找到良多文章。这些文章都写到怎样经由过程WebDeploy来构建完善的情况来部署复杂、只需稍作修正VS.NET模板的web使用程序。任何工具在这一完善情况下都能顺遂举行。
可是,真正部署使用程序的话却并不是易事。老是有成绩不休呈现在以下情形中:当必要在注册表(Registry)或自界说文件夹中设置设置,大概你必要部署到Web集群时。
本文中,我们经由过程利用PowerShell远程处置(PowerShellremoting)和AppVeyorCI为带有ASP.NETweb使用程序和WindowsService的办理计划在其暂存(staging)和产物情况中设置延续集成。
办理计划概述

我们的示例中包括4个项目:


  • DemoApp.Web-ASP.NET使用程序,前端
  • DemoApp.Web.Tests-利用VisualStudio测试框架的web使用程序单位测试
  • DemoApp.Service-承载WCF服务的Windowsservice,后端
  • DemoApp.Service.Tests-利用NUnit框架的Windowsservice单位测试

<br>
该示例使用程序的代码库托管于BitBucket:
我们究竟将怎样部署?

我们碰到的第一个成绩就是怎样部署Windowsservice?我们没有针对Windowsservice的“公布”菜单,也没有响应的设置转换。基本没法用WebDeploy。为了主动化项目标部署,我们将利用PowerShell部署框架-AppRolla。
AppRolla使用PowerShell远程处置在方针呆板上实行部署义务。部署义务将下载使用程序包,解包,更新设置设置,然后创立或更新使用程序网站及pool。该使用程序包仅仅是带有使用程叙文件夹的紧缩包,经由过程HTTP上传到内部存储。其外部并没有任何出格的地方-模块写在PowerShell内,很简单检察和修正。
为了让你对PowerShell部署一睹为快,我们如今就创建一个复杂web使用程序,并将其部署到服务器上。
全部流程中最具应战性的部分大概就是设置带有SSL认证的PowerShell远程处置了。我们激烈倡议利用HTTPS与远程服务器举行通讯,由于一切的数据流量都是加密的。
当你在WindowsAzure上创立新的假造机时,PowerShell远程会主动被激活和设置。防火墙将同意PowerShell远程HTTPS端点端口5986,别的我们也将HTTP端点增加到示例服务器上:

<br>
假如你需设置别的服务,能够参照该链接里的详细细节:guideonhowtoconfigurePowerShellremoting。
为了在实例呆板上疾速安装IIS7.5,我们利用以下PowerShell命令:
Add-WindowsFeature-NameWeb-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-Static-Content,Web-Http-Logging,Web-Stat-Compression,Web-Filtering,Web-Net-Ext,Web-Net-Ext45,Web-Asp-Net,Web-Asp-Net45,Web-ISAPI-Ext,Web-Mgmt-Console
我们创立带有“Helloworld”的复杂Web使用程序,然后将其部署到示例服务器。

<br>
创立一个新的SimpleWebApp-1.0.zip紧缩包,将带有初版本的default.aspx存档起来。
如今,我们必要将该使用程序紧缩包上传到内部存储,如许方针服务器就可以经由过程HTTP来对其会见。该服务器能够是启用了FTP的web服务器,AmazonS3或Azureblob存储。关于该示例,我们利用DropBox。它为DropBox文件夹下一切项目供应大众的下载链接。
将该SimpleWebApp-1.0.zip拷贝到你的DropBox文件夹中,然后右击文件夹,选择“ShareDropBoxlink”。在扫瞄器中翻开该链接,然后拷贝“Download”键的URL。

<br>
翻开PowerShell的把持台“Asadministrator”,将实行政策(executionpolicy)改成为同意远程PowerShell剧本:
  1. Set-ExecutionPolicyRemoteSigned
复制代码
安装AppRolla.psl模块(将被安装到用户设置文件中):
  1. (new-objectNet.WebClient).DownloadString("https://raw.github.com/AppVeyor/AppRolla/master/install.ps1")|iex
复制代码
将AppRolla模块导进到以后会话中:
  1. Import-ModuleAppRolla
复制代码
AppRolla有两组cmdlets:设置和部署。经由过程设置cmdlets界说使用程序和情况。
紧接着,增加新的“SimpleWebApp”使用程序,该使用程序只带有单一的“website”脚色:
  1. New-ApplicationSimpleWebApp
复制代码
Add-WebsiteRoleSimpleWebAppWeb-PackageURL"<your-dropbox-download-link>"
在服务器上界说“示例”情况(在提醒呈现后,输出示例服务器的办理员证实-前面将有具体解说):
  1. New-Environmentdemo
复制代码
Add-EnvironmentServerdemo"appveyor-demo.cloudapp.net"-Credential(Get-Credential)
将“SimpleWebApp”使用程序作为版本1.0部署到“示例”情况上:
  1. New-DeploymentSimpleWebApp1.0-todemo
复制代码

<br>
(点击图片缩小)
就如许!你已经由过程PowerShell将你的Web使用程序公布到示例服务器上了:

<br>
如今,我们修正一下页面内容,然后部署一个新的示例使用程序版本。我们将“Hello,World!”改成“Hello,world2.0!”。随后,创立新的SimpleWebApp-1.1.zip文件将修正好的default.aspx文件存档,再次上传到DropBox。
更新“website”脚色,将其紧缩包的URL修正为新的值:
  1. Set-WebsiteRoleSimpleWebAppWeb-PackageUrl<public-URL-of-SimpleWebApp-1.1>
复制代码
然后部署新版本1.1:
  1. New-DeploymentSimpleWebApp1.1-todemo
复制代码

<br>
从日记能够看出,每次部署城市在当地:applications<application-name><role-name><version>中天生新的文件夹。默许情形下,方针服务器上能够保存5个部署版本,因而使用程序能够很简单地回滚到上一版本:
  1. Restore-DeploymentSimpleWebApp-ondemo
复制代码
从示例情况中删除一切使用程序部署:
  1. Remove-DeploymentSimpleWebApp-fromdemo
复制代码
全部历程,我们都利用复杂且简便的命令来完成一切事情!
利用AppVeyorCI延续构建

AppVeyorCI是为Windows开辟职员计划的基于云的延续集成和部署平台。它有本人的服务器,因而不必要安装或设置。就算必要,设置起来也十分复杂。别的,AppVeyorCI对开源项目是收费的。
为了在AppVeyorCI中设置工程,其代码源必需托管于在线源代码把持库上,好比:GitHub、BitBucket或Kiln。它撑持Git和Mercurial。
在我们示例中,我们利用托管于BitBucket的Mercurial库。对贸易项目来讲,BitBucket相称有用,它收费地供应无穷制的公有库。
启用NuGet存储

假如你的办理计划依附于NuGet办理包,不要忘了启用NuGetrestore来主动下载构建服务器上的各类程序包。可使用怎样启用NuGe包存储这一引导来确保在.Nuget文件夹中的NuGet.exe已增加到库里了。
增加新项目

我们能够先从创立新项目入手下手:

<br>
一旦新项目建成,新的webhook就会主动增加到项目库中,为新构建拉开尾声。
构建设置和设置互换

当经由过程WebDeploy部署时,设置互换在使用程序设置过程当中是一个关头。关于每一个必要部署的情况,都需界说新的VS.NET办理计划设置,然后利用设置转换天生web.config,它带无数据库链接字符及别的使用程序针对每一个情况特定的设置。该办法看起来可行,却有一系列成绩:
&bull;相似数据库链接字符如许的敏感数据存储于源代码把持中。
&bull;设置转换使用于构建历程,每当项目部署到新情况中,都必要从头构建设置转换。
当用AppVeyor部署时,设置转换十分有效,但并不是是必须的。默许情形下,VS会发生两种设置:Debug和Release,年夜多半情形下,这类情势完整OK。Debug设置用于当地开辟,而Release设置则用于CI流程天生能够部署就任何情况的包。设置转换应当“真正地”用于转换设置文件布局,好比:禁用“Debug”标识;启用自界说毛病;或启用Autofac改换形式等合用于一切情况的罕见设置。
我们如今就能够入手下手改动Release设置页面中的项目构建设置:

<br>
AppVeyor供应三种构建计划:


  • VisualStudio计划-运转MSBuild于VS.NET办理计划或工程文件(假如没有指定,起首查找第一个.sln或.*proj文件),另有将一切项目构建了局以工件情势打包。
  • MSBuild-依据本人的划定运转MSBuild,同意在“Packaging”页面上界说自界说的构建工件。
  • Script-运转特定PowerShell剧本或批文件。为办理构建流程及其了局供应最年夜化的自在。
组件版本

每一个新项目构定都会收到新的版本号,该版本号的格局划定于“General”页面下。
AppVeyor默许供应Windowsstyleversioning(major.minor.{build}.revision),可是你也能够使用别的恣意版本作风,好比:SemVer(major.minor.patch.{build})。
当启用“Updateassemblyversionattributes”时,AppVeyor会将办理计划目次下的一切AssemblyInfo.*文件设置成以后版本。
实行测试

AppVeyor能经由过程以下这些测试框架,在assembly中发明和运转测试:


  • MSTest
  • NUnit
  • xUnit
当“测试”步骤被启动时,AppVeyor会剖析“out”文档中一切的assembly,来确认它们对所撑持的测试框架是不是含有响应的援用。假如有,那末一切assembly内的测试将会在响应的测试实行器中运转一遍。一切assembly的测试了局也会合合显现在UI上。
(点击图片缩小)

<br>
构建.测试.打包!

我们如今入手下手创立新构建,能够对项目库举行修正或点击“NewBuild”。
该摹拟项目标构建流程会临盆两个构建工件:webapplication和Windowsservice。将它们下载上去,你会发明其内容就是带有使用文件的惯例紧缩文档。
因为Windowsservice包基础上就是其“Bin”文件夹下用于天生web使用包的内容中还需包括的一些步骤:

  • Web使用应是办理计划的一部分。
  • 创立使用了“filesystem”公布办法的新公布设置文件,并公布了利用MSBuild的WAP项目,该设置文件用来确保web.config修正和别的公布设置的实行。
  • 将公布的web使用打包为一紧缩文件。
构建工件将存储于Geo-redundant云存储中,能经由过程其独占的专属链接下载。假如想有本人专有的构建工件定名布局,和同意大众会见的话,能够设置专有存储空间。
乐成部署到预临盆情况

我们如今入手下手往staging上设置主动化部署,作为该构建流程的一部分。
该部署应剧本的情势来完成,能够是PowerShell或批处置文件。在项目库的根部创立“部署”文件夹以安排部署剧本。
翻开PowerShell命令行,跳转到“部署”文件夹,并实行以下命令下载模板剧本到现有目次:
  1. (new-objectNet.WebClient).DownloadString("https://raw.github.com/AppVeyor/AppRolla/master/install.ps1")|iex0
复制代码
会有三个剧本被增加:configure.ps1、project.ps1和deploy.ps1。
总的说来,我们只必要编纂一个文件就可以设置部署:project.psl。该文件界说了我们将要部署的情况。将删除紧接着新staging情况那一行的备注,然后增加摹拟服务器:
  1. (new-objectNet.WebClient).DownloadString("https://raw.github.com/AppVeyor/AppRolla/master/install.ps1")|iex1
复制代码
前往到AppVeyorCI,翻开项目设置的“Deployment”页面。
选择“Rundeploymentscript”,并指定剧本路径:
  1. (new-objectNet.WebClient).DownloadString("https://raw.github.com/AppVeyor/AppRolla/master/install.ps1")|iex2
复制代码
设置以下部署变量:
  1. (new-objectNet.WebClient).DownloadString("https://raw.github.com/AppVeyor/AppRolla/master/install.ps1")|iex3
复制代码

<br>
ServerUsername和Password用来创立Credential对象以考证PowerShell的远程挪用。以下两种情形请求到API关头字:a)浏览项目工件猎取项目包的URL;b)考证方针服务器下载工件包。AppVeyorAPI关头字能够在用户设置的“APIKeys”页面下找到。
就如许。接着只需提交“deployment”文件夹,将其推送到项目库就能够入手下手该部署的新构建了。
怎样更新web.config的链接字符?

部署变量经由过程$variables参数以哈希表情势传送到剧本中。关于项目或脚色,假如想启用附加的设置变量,能够在Set-Application,Set-WebsiteRole或Set-ServiceRolecmdlets中利用“Configuration”参数。翻开project.ps1,并增加以下语句:
  1. (new-objectNet.WebClient).DownloadString("https://raw.github.com/AppVeyor/AppRolla/master/install.ps1")|iex4
复制代码
}
然后在部署设置页面上界说“DefaultConnection”变量,用于web使用的链接字符的传送。部署剧本经由过程web.config为web使用程序使用了脚色设置,对Windows使用程序,则经由过程app.config,使用了以下这些划定规矩:

关于UIView的子类有很多UIButtonUITableView这个都需要各个击破看看文档从名字上就很容易理解是做什么的UIViewController是管理View和Model的类(@张开说UIViewController是用来管理view的,管理model的类自己写,当然,model也可以用UIViewController来管理,不过恐怕成为不好的代码。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-21 09:49:52 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
若相依 该用户已被删除
板凳
发表于 2015-1-21 11:39:12 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
不帅 该用户已被删除
地板
发表于 2015-1-21 16:50:57 | 只看该作者
从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,
只想知道 该用户已被删除
5#
发表于 2015-1-26 22:40:27 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-4 20:40:41 | 只看该作者
首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书
精灵巫婆 该用户已被删除
7#
发表于 2015-2-7 14:15:16 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
再见西城 该用户已被删除
8#
发表于 2015-2-22 04:38:46 | 只看该作者
我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。
9#
发表于 2015-2-22 23:05:23 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
兰色精灵 该用户已被删除
10#
发表于 2015-2-25 06:23:50 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
爱飞 该用户已被删除
11#
发表于 2015-3-1 18:33:04 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
冷月葬花魂 该用户已被删除
12#
发表于 2015-3-11 08:43:25 | 只看该作者
从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,
变相怪杰 该用户已被删除
13#
发表于 2015-3-11 09:05:41 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
若天明 该用户已被删除
14#
发表于 2015-3-17 16:08:12 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
小妖女 该用户已被删除
15#
发表于 2015-3-18 03:07:21 | 只看该作者
中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,
简单生活 该用户已被删除
16#
发表于 2015-3-25 10:14:43 | 只看该作者
边吃零食边看Stanford的视频教程
蒙在股里 该用户已被删除
17#
发表于 2015-3-27 16:08:31 | 只看该作者
在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。
莫相离 该用户已被删除
18#
发表于 2015-3-28 18:36:52 | 只看该作者
首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书
灵魂腐蚀 该用户已被删除
19#
发表于 2015-4-1 18:10:16 | 只看该作者
首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书
谁可相欹 该用户已被删除
20#
发表于 2015-4-7 02:48:27 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 16:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表