http://www.cnblogs.com/yinghuochong/archive/2013/09/01/3294940.html

1.安装包,工具略过。

2.插件管理

This plugin adds the Subversion support (via SVNKit) to Jenkins.
This plugin will upload .ipa or .apk file(s) to testflightapp.com for distribution.
This plugin provides builders to build xcode projects, invoke agvtool and package .ipa files
This plug-in adds reusable macro expansion capability for other plug-ins to use.
This plugin provides a new enhanced API for interacting with SCM systems.
Integrates Jenkins with CVS version control system using a modified version of the Netbeans cvsclient.
This plugin integrates GIT with Jenkins.
 
3.新建项目开始配置步骤:

1>.源码管理 :SVN更新代码工程与资源 。

2>.构建触发器,可以不要 指定时间自己构建  Poll SCM  H 22 * * *  【每天22.00点自动构建一次】

3>.添加Execute Shell 步骤

cp $WORKSPACE/Tools/PostProcessBuildPlayer $WORKSPACE/code/Assets/Editor/
chmod +x $WORKSPACE/code/Assets/Editor/PostProcessBuildPlayer

rm -rf $WORKSPACE/build
mkdir -p $WORKSPACE/build

echo Start building Unity project to iOS project..........
/Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath $WORKSPACE/code -executeMethod PerformBuild.CommandLineBuild -batchmode -quit -logFile $WORKSPACE/build/log.txt

echo Copy resource to build directory.....
mkdir -p ${WORKSPACE}/build/iPhone/Data/ClientRes
cp -r ${WORKSPACE}/ClientRes/Config ${WORKSPACE}/build/iPhone/Data/ClientRes
cp -r ${WORKSPACE}/ClientRes/Assetbundles_Ios ${WORKSPACE}/build/iPhone/Data/ClientRes
rm -rf ${WORKSPACE}/build/iPhone/Data/ClientRes/Config/.svn
rm -rf ${WORKSPACE}/build/iPhone/Data/ClientRes/Assetbundles_Ios/.svn

python $WORKSPACE/Tools/updateInfo.py ${WORKSPACE}/build/iPhone 0.6 ${BUILD_NUMBER}

4>.Xcode 工程导出IPA。

5.

cd ${WORKSPACE}/build/distributes
mkdir -p DragonBone-0.6.${BUILD_NUMBER}
cp *.ipa DragonBone-0.6.${BUILD_NUMBER}\

# Generate .plist file for wireless app distribution
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>__URL__</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.cdkoi.dragon</string>
<key>bundle-version</key>
<string>dragon 0.6.${BUILD_NUMBER}</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Dragon Bone for iOS</string>
<key>subtitle</key>
<string>0.6.${BUILD_NUMBER}</string>
</dict>
</dict>
</array>
</dict>
</plist>" > "${WORKSPACE}/build/distributes/DragonBone-0.6.${BUILD_NUMBER}/app.plist";
cp -r ${WORKSPACE}/build/distributes/DragonBone-0.6.${BUILD_NUMBER} ~/distributes

 ===========updateInfo.py 内容===========

# -*- coding: utf-8 -*-
#!/usr/bin/python

import sys
import os

PRDUCT_NAME = "XXX"
CBundleIdentifier = "com.cdkoi.dragon"

def process_info(info_filename, product_name, bundle_version, build_version):
info_plist = open( info_filename, 'r' )
lines = info_plist.readlines()
info_plist.close()

info_plist = open( info_filename, 'w' )

# Now iterate through the project adding any new lines where needed
i = 0
stepOneLine = False
for i in range(0, len(lines)):
if stepOneLine == False:
line = lines[i]
info_plist.write(line)
stepOneLine = False

if line.strip() == "<key>CFBundleName</key>":
info_plist.write( "\t" + "<string>" + PRDUCT_NAME + "</string>" + '\n' )
stepOneLine = True

if line.strip() == "<key>CFBundleDisplayName</key>":
info_plist.write( "\t" + "<string>" + PRDUCT_NAME + "</string>" + '\n' )
stepOneLine = True

if line == '<key>CFBundleShortVersionString</key>':
info_plist.write( "<string>1.0</string>" + '\n' )
stepOneLine = True

if line == '<key>CFBundleVersion</key>':
info_plist.write( "<string>1.0</string>" + '\n' )
stepOneLine = True
else:
stepOneLine = False

info_plist.close()

# Script start
print "Starting Modify info.plist with the following arguments..."

i = 0
for args in sys.argv:
print str(i) +': ' + args
i += 1

# Check this is an iOS build before running
if len(sys.argv) == 4:

info_full_path_name = sys.argv[1] + '/info.plist'
process_info(info_full_path_name, "龙之骨", "1.0", "1.0")

Jenkins 搭建U3D自动发布 IOS的更多相关文章

  1. Jenkins 搭建U3D自动发布 Android

    工具 [u3d相关的PostProcessBuildPlayer,PerformBuild.cs] 1.Jenkins 开源包  Java -jar jenkins.war,参考链接 http://w ...

  2. Jenkins搭建.NET自动编译发布远程环境

    继上一篇文章Jenkins搭建.NET自动编译发布本地环境 发布到本地成功后,接下来配置发布到远程环境. Build配置——发布到远程 根据前面VS中发布项目,生成的CustomProfile2 来配 ...

  3. Jenkins搭建.NET自动编译发布本地环境

    最近在做一个团队项目的时候,用到了自动编译发布部署环境[也可以说是持续集成],于是顺便学习了下这个环境的搭建过程. 持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员 ...

  4. Jenkins搭建.NET自动编译测试与发布环境

    本文地址: http://blog.csdn.net/wangjia184/article/details/18365553 操作系统Windows, 确保需要的.NET Framework已经安装 ...

  5. Windows2012中Jenkins搭建.NET自动编译测试与发布环境

    安装7Zip 下载地址: http://www.7-zip.org/a/7z1602-x64.exe 安装Git 下载地址:https://github.com/git-for-windows/git ...

  6. iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App

    继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插 ...

  7. Jenkins+Ansible+Gitlab自动发布/回滚Spring项目

    一.实现方法流程图 流程图如下:代码托管在本地GitLab上(为了复现整套流水线,我直接使用了GitHub,懒得再搭建GitLab),开发完成后提交代码到代码仓库,[自动]触发Jenkins进行持续集 ...

  8. 在docker中运行jenkins实现代码自动发布到测试服务器

    在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:80 ...

  9. 持续集成 Jenkins +Gitlab + SSH 自动发布 HTML 代码

    目录 一.整体流程 二.Jenkins 配置 2.1.首先安装插件 2.2.配置目标服务器 2.3.创建 job 2.4.配置 gitlab 触发 三.改进 一.整体流程 二.Jenkins 配置 2 ...

随机推荐

  1. Linux Linux共享库

    so文件在linux中为共享库,与windows下的dll类似. so文件中的函数可供多个进程调用,最大可能的提供二进制代码复用. 共享库可以使代码的维护工作大大简化,当修正了一些错误或者添加了新特性 ...

  2. 解决centos7重启后出现ata bus error

    昨天把centos7装在电脑上了,还把win7系统格掉了,从此电脑上只装centos,有一种弃暗投明的感觉. 装完重启后欣赏了一番成果,一个halt命令想把系统关掉,却发现屏幕没黑,机器不转了,电源灯 ...

  3. Restful是什么,SOAP Webservice和RESTful Webservice

    首先,应该怀着这样一种心态来学习Restful——Restful你可以将其理解一种软件架构风格,并且诠释了Http协议的设计初衷,所以不要把他理解的那么神秘,Restful风格有好处,当然也是有坏处的 ...

  4. Web API路由和动作选择

    前言 本文描述ASP.NET Web API如何把一个HTTP请求路由到控制器的一个特定的Action上.关于路由的总体概述可以参见上一篇教程 http://www.cnblogs.com/aehyo ...

  5. Qt——QLineEdit使用总结

    QLineEdit是一个单行文本编辑控件. 使用者可以通过很多函数,输入和编辑单行文本,比如撤销.恢复.剪切.粘贴以及拖放等. 通过改变QLineEdit的 echoMode() ,可以设置其属性,比 ...

  6. [C++] 在Visual Studio工程中管理C++第三方库

    目前的项目依赖于很多第三方库,每次要再一个新的环境编译/运行,都要花很长时间先编译/安装各种第三方库,而且会出现各种问题,因此决定将所有第三方库编译好之后,放入工程的子目录中,以后就不用重复编译了. ...

  7. WPF之TreeList的实现方法(一)

    做项目的时候根据需求,WPF现有的控件不能完全满足我们的需求, 很多时候我们需要对现有的控件做一下加工. 最简单的我们可能会把Tree转换成List形式有的叫Grid形式就像下图一样 今天我先做一个完 ...

  8. 定一个小目标:明年1024能成功转行web前端,光荣地成为一个程序员!

    第一次在博客园写博,我为什么要选择这里吗? 据说博客园这里的IT大牛如云,作为一个求知若渴的小白,我屁颠屁颠的跟着过来了. 于是今天早上兴高采烈的注册了账号,迫不及待的打开我的博客,呃!注册账号成功了 ...

  9. Sql Server 附加没有日志文件的数据库(.mdf)文件方法

    附加数据库,附加的时候会提醒找不到log文件 针对以上现象有两个写法的语句能解决: 写法一: USE MASTER; EXEC sp_detach_db @dbname = 'TestDB'; EXE ...

  10. iOS开发小技巧--边接受数据边写入文件的两种方法

    一.NSFileHanle 使用注意点:在往文件写入数据时,必须创建一个空的文件 指定文件写入的方式 -- 覆盖还是追加 最后记得关闭 <1>代码是在大文件传输的练习中截取的.写入数据之前 ...