`
MyEyeOfJava
  • 浏览: 1156780 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71344
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

IOS打包脚本思路

    博客分类:
  • ios
阅读更多
ios 打包脚本。目的直接生成可用于上传APP STORE的ipa文件,提供测试直接测试。
前提是已经有一个可以编译的工程,并且有苹果的开发账号并生成了各种证书
主要三个步骤:
一、准备证书文件(都是distribution的),并导入;
这里用到3个相关文件,一个.p12、一个.cer,还有一个.mobileprovision(暂且用distribution.p12、distribution.cer、distributionProfile.mobileprovision 命名)
双击可以将上述文件导入到系统当中,我们这里介绍用命令行导入的方法,以便用机器来帮助我们完成这些工作。
首先是需要导入证书:这步骤前请确认这3个文件保存的目录,用终端进入这个目录。
#解锁钥匙串,证书是需要导入到钥匙串中的,如果钥匙串处于锁定状态,可以用这个命令解锁,USERNAME是用户名
[run in terminal]security unlock-keychain /Users/USERNAME/Library/Keychains/login.keychain
#导入distribudion证书私钥,PASSWORD是证书的密码
[run in terminal]security import ./distribution.p12 -k ~/Library/Keychains/login.keychain -P PASSWORD -T /usr/bin/codesign
#导入distribudion证书公钥,可以下载得到
[run in terminal]security import ./distribution.cer -k ~/Library/Keychains/login.keychain
#导入产品provision,USERNAME是用户名
cp ./distributionProfile.mobileprovision "/Users/USERNAME/Library/MobileDevice/Provisioning Profiles/distributionProfile.mobileprovision"
执行完上述的命令后可以,分别在钥匙串中看到公钥和私钥的证书,在iPhone实用工具(或xcode4+ /Organizer/Devices/Provision Profiles)找到provision记录。
注意:如果要用ssh命令远程启动执行步骤2中的脚本,需要用到钥匙串的解锁。
 
二、 编译脚本的编写,与执行
用脚本生成ipa文件主要用到两个命令,一个是xcodebuild、一个是cxrun,细节可以问google,文档很多。可以直接将下面的两个/*——————*/之间的内容拷贝生成一个 build.sh文件。
将这个build.sh连同上面的distributionProfile.mobileprovision文件一同拷贝到你的工程目录下(与.xcodeproj同一个目录)。终端中cd到这个目录下,运行下面的命令
[run in terminal]sh build.sh
注意脚本中需要修改两处,证书名称"iPhone Distribution: XXXXX"替换成你自己证书的名称,这个名称可以通过下面的命令得到。
[run in terminal]certtool d ./distribution.cer |grep iPhone
这个命令的输出:   Common Name     : iPhone Distribution: XXXXXXX
只要拷贝其中的"iPhone Distribution: XXXXXXX"覆盖即可。
还需要将TARGET_LIST缓存你自己project中的工程名字
/*————————————————————————————————————————————————*/
#!/bin/sh
TARGET_LIST="wirelessframe"
CONFIGURATION="Release"
DISTRIBUTION_CERTIFICATE="iPhone Distribution: XXXXX"
PROVISIONING_PROFILE_PATH="distributionProfile.mobileprovision"
# BUILD_DATE_TAG=$(date "+%Y%m%d")
# LOG_FILE="$(pwd)/${BUILD_DATE_TAG}.log"
 
BUILD_DIRECTORY="$(pwd)/build/${CONFIGURATION}-iphoneos"
rm -f ${BUILD_DIRECTORY}/*.ipa
 
 
/usr/bin/xcodebuild -sdk iphoneos $TARGET_LIST -configuration "${CONFIGURATION}" clean build
 
if [ ! -d "$(pwd)/build/${CONFIGURATION}-iphoneos/${TARGET_LIST}.app" ]; then
echo "ERR::Building APP file fail."
exit
else
echo "--BUILD APP OK"
fi
 
APP_FILENAME="${TARGET_LIST}.app"
    IPA_FILENAME="${TARGET_LIST}_${BUILD_DATE_TAG}.ipa"
 
 
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${BUILD_DIRECTORY}/${APP_FILENAME}" -o "${BUILD_DIRECTORY}/${IPA_FILENAME}" --sign "${DISTRIBUTION_CERTIFICATE}" --embed "${PROVISIONING_PROFILE_PATH}"
 
if [ $? != 0 ]; then
echo "ERR::Building IPA fail."
exit
else
echo "--${IPA_FILENAME} OK"
fi
 
# cp ${BUILD_DIRECTORY}/*.ipa ${PACKAGE_DIR}
/*————————————————————————————————————————————————*/
 
如果以前正常会生成一个ipa文件包,这个包就是我们用来测试和上传的ipa文件了。这里如果遇到codesion的错误,表示证书可能有问题,你可以检查证书,并确保证书正常导入。
 
三、 上传工具介绍
xcode自带了上传工具,以xcode4.5为例在Finder中找到xcode->鼠标右击选择显示包内容->Contents->Applications->Application Loader
用法可以见 【http://open.zhui.cn/index.php?title=AppStore新应用上传指南
 
另外:扩展方面,在此脚本的基础上做一些变动可以支持打越狱的渠道包。也可以做OTA下载等等。如果将上面的3个证书缓存开发证书,还可以配合hudson完成自动化的提交验证和定时打包等。
分享到:
评论

相关推荐

    IOS打包Bundle与加载Demo

    在iOS打包过程中,这些设置会被整合到最终的App中,确保应用在不同设备上运行顺畅。 总结,iOS应用的资源管理是一个重要的环节,合理打包和加载Bundle不仅可以优化资源管理,还能提高应用安全性。通过上述步骤和...

    Python的iOS自动化打包实例代码

    Python的iOS自动化打包实例通过使用Python脚本结合`xcodebuild`工具,大大简化了iOS应用的打包和分发流程,提高了效率,减少了人为错误。对于iOS开发者来说,这是一个值得学习和采用的实践,尤其是在需要频繁打包和...

    superMario,统一、iOS、Android、Windows.zip

    3. **构建脚本**:用于编译和打包应用的脚本,可能包括Makefile、Gradle或Visual Studio解决方案文件。 4. **配置文件**:存储游戏设置和平台特定配置的文件,如AndroidManifest.xml、Info.plist等。 5. **文档**:...

    iOS实例开发源码——ionine-Sauce-86a98eb.zip

    6. **构建脚本**:可能包含编译、打包或自动化测试的自定义脚本。 【标签】"ios"表明了这是一份与iOS平台相关的开发源码,意味着开发者需要具备iOS开发的基础知识,例如理解MVC(模型-视图-控制器)设计模式、掌握...

    关于Ant多渠道批量打包总结

    以上就是一个简单的Ant脚本,展示了如何使用Ant进行多渠道批量打包的基本思路。实际项目中,构建脚本可能会更复杂,包括更多的自定义任务和逻辑,以满足项目的特定需求。 总之,利用Ant进行多渠道批量打包能极大地...

    iOS游戏应用源代码——gaudiramone-Navidad2-08aeddc.zip

    6. **构建脚本**:可能包含编译、打包和发布应用的自动化脚本,例如shell脚本或Makefile。 7. **版本控制文件**:如.gitignore或CVS,表明项目使用了Git或CVS等版本控制系统来管理代码变更。 分析这个源代码包,...

    IOS应用源码——torrez-BMX-68d83c9.rar

    RAR是一种流行的文件压缩格式,用于将多个文件打包成一个单一的可下载单元。这个压缩包包含了构建和运行Torrez应用所需的所有文件。 【标签】"ios 源码" 标签明确了该资源属于iOS平台的源代码,意味着开发者可以...

    iOS游戏应用源代码——Hegaka-HGKOptionPanel-6b08ffc.zip

    8. **编译与调试**: 项目中可能包含了编译脚本或构建设置,这些是Xcode用来编译源代码和打包应用的配置。同时,调试信息如断点、日志文件也可能存在于源代码中,帮助开发者找出程序中的问题。 9. **内存管理和性能...

    cocos2d-x与lua

    对Lua脚本的加密能够有效保护游戏的源代码不被轻易复制或篡改,而发布游戏则涉及到项目打包、性能优化、兼容性测试等重要环节。 通过以上知识点,可以全面了解cocos2d-x与Lua结合进行游戏开发的优势、具体流程、...

    青木账本,一个简单的本地的账本.zip

    7. **构建脚本**:用于自动化编译、打包和部署的shell脚本或Xcode Scheme。 从描述中可以看出,青木账本强调的是简单和本地化。这意味着它可能没有复杂的云同步功能,而是让用户在自己的设备上保存和管理财务数据,...

    管理 iOS apps的一款OS X app源码 IPAUploader

    3. **自动化流程**:研究如何通过脚本或者自动化工具实现应用的打包和上传。 总的来说,IPAUploader是iOS开发者进行应用分发和管理的一个实用工具,其开源源码更是提供了一个学习和研究的宝贵资源。通过对源码的...

    使用 cocos2d-x 和 Lua 快速开发游戏

    此外,发布游戏时,需要将Lua脚本和C++资源一起打包,确保游戏在目标平台上的正常运行。 总结来说,使用cocos2d-x结合Lua脚本开发游戏,既可以保证游戏的性能,又可以提高开发效率,同时也保持了足够的灵活性和扩展...

    Unity的动态下载关卡与动态下载资源

    1. **转换思路,利用AssetBundles**:将关卡内的所有资源(包括模型、纹理、音频等)打包成AssetBundles,并在运行时下载。这种方式虽然不涉及直接的关卡文件下载,但能够达到相似的效果,即按需加载游戏内容。 2. ...

    App检测的静态逆向分析思路浅析.pdf

    ### 移动安全与App检测的静态逆向分析思路浅析 #### 一、移动安全概述 移动安全是指为了确保移动设备(如智能手机和平板电脑)及其上的应用程序免受恶意软件、网络攻击和其他安全威胁而采取的一系列技术和措施。...

    unity资源包

    10. **发布与部署**:了解不同平台的发布设置,如iOS、Android、Windows等,以及打包和发布流程。 通过这些教程,初学者能够逐步掌握Unity引擎的使用,并具备开发简单游戏的能力。对于有一定经验的开发者,这些资源...

    飞机大战demo

    在这个"飞机大战demo"项目中,我们可以深入理解Unity在2D游戏开发中的应用,以及相关的编程技术和设计思路。 一、Unity 2D游戏开发基础 Unity支持2D游戏开发,提供了2D渲染器和丰富的2D工具。在这个飞机大战的示例...

    Unity游戏源码分享-射酒瓶游戏Demo

    阅读“Mini Golf Construction Kit User Guide.pdf”和“MiniGolf Update 1.1.pdf”这两个文档,我们可以获取更多关于游戏构建的指导,例如游戏设计思路、组件使用方法、更新日志等。这些文档对于理解Demo的工作原理...

    (2018-2020)逃离房间 躲避障碍物.zip

    2. 发布与打包:将项目打包为适合不同平台的应用,如iOS、Android、PC等,考虑各种设备兼容性。 通过这个压缩包,开发者可以学习到Unity3D在创建逃离房间和躲避障碍物游戏时的关键技术和设计思路,从而提升自己的...

    星座转盘dome

    5. **构建脚本**:可能包括自动化测试、打包和发布等操作的脚本。 通过深入研究这个“星座转盘dome”,开发者可以学习到以下知识点: - **iOS应用开发基础**:包括Swift或Objective-C编程语言,UIKit框架,以及...

    Unity游戏项目源码 怪兽跑酷 完整版.zip

    - **构建设置**:理解如何配置不同的目标平台(如Android、iOS、PC),并完成打包发布流程。 通过分析这个“怪兽跑酷”的完整项目源码,开发者可以深入学习Unity引擎的各种功能,提升游戏开发技能,并能从中借鉴...

Global site tag (gtag.js) - Google Analytics