通常打包采用xcodebuild和xcrun两个命令,xcodebuild负责编译,xcrun负责将app打成ipa。
常见步骤如下:
1、清理工程
/usr/bin/xcodebuild -target targetName clean
2、编译工程
/usr/bin/xcodebuild -target targetName
3、打包
/usr/bin/xcrun -sdk iphoneos PackageApplication -v path/To/xxx.app -o xxx.ipa
如果是含签名的包,上面两个命令需要增加一些参数。
xcodebuild -target targetName CODE_SIGN_IDENTITY="iPhone Distribution:XXXXXX"xcrun -sdk iphoneos PackageApplication -v 源app路径 -o 输出的ipa路径 --sign "iPhone Distribution:XXXXXX"
自动打包步骤:
1、先用xocde手动编译好一个App,假设为MyApp.app
2、导入证书文件到MAC的钥匙链
//创建钥匙链security create-keychain -p myapp myapp.keychain//解锁,否则回弹框等待输入密码security unlock-keychain -p myapp myapp.keychain//导入证书security import /opt/myapp.p12 -k myapp.keychain -P mypassword -T /usr/bin/codesign
3、以MyApp.app为模板,copy一个备份,然后进行各种资源的替换,比如替换了应用的图片文件等
4、替换对应的*.mobileprovision文件到MyApp.app目录
5、删除MyApp.app下的签名信息_CodeSignature
6、修改info.plist Bundle indentifier和*.mobileprovision一致
7、修改MyApp.xcent中application-identifiervalue值为对应证书名称,可以以一个xcent为模板,注意如果没有aps-environment关键字,打出来的ipa包将没有apns模块,格式如下:
<?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]]>application-identifier</key]]> <string]]>Z4LR7CBRUD.com.yesun.vic</string]]> <key]]>aps-environment</key]]> <string]]>production</string]]> <key]]>get-task-allow</key]]> <false/></dict]]></plist]]>
8、重签名codesign
/usr/bin/codesign --force --sign 9c8b212f6a2c2382847b104e387a01b246d4ce42 --resource-rules=MyApp.app/ResourceRules.plist --entitlements MyApp.xcent Mkey3G.app
9、生成ipa包
/usr/bin/xcrun -sdk iphoneos PackageApplication -v MyApp.app -o MyApp.ipa --sign 9c8b212f6a2c2382847b104e387a01b246d4ce42 --embed MyApp.app/embed.mobileprovision
10、删除钥匙链
security delete-keychain myapp.keychain
带xcodebuild编译的打包步骤如下:
1. 导入钥匙链
2. 对工程clean
3. 修改info信息
4. 修改project信息
5. xcodebuild
6. 替换各种资源文件
7. 修改xcent
8. 重新签名codesign
9. xcrun打ipa
10. 删除钥匙链
相关推荐
### iOS自动化批量打包知识点 #### 一、背景与需求分析 在进行轻度定制化iOS应用开发时,经常需要根据客户或场景的不同调整应用程序图标(appIcon)、启动页(launchImage)、应用程序名称以及内部功能等内容。...
### iOS自动化打包脚本知识点详解 #### 一、概述 在iOS开发过程中,为了提高工作效率并减少人工干预可能带来的错误,通常会采用自动化工具来进行应用的构建与发布工作。其中,“iOS自动化打包脚本”是一种非常实用...
支持Flutter及iOS混编工程的自动化打包方法 本文档介绍了一种支持Flutter及iOS混编工程的自动化打包方法,该方法结合Jenkins使用Shell脚本实现。该方法可以实现远程访问Jenkins选择打包分支和其他可选参数,点击...
Python自动化打包iOS应用的核心是使用`xcodebuild`命令行工具,它可以控制Xcode执行一系列任务,包括清理项目、归档、导出IPA(iOS应用程序包)等,以此实现无干扰的自动化打包流程。 **为什么要做这个?** 在日常...
在IT行业中,自动化打包是提高效率、减少人工错误的关键步骤,尤其在iOS应用开发中。本文将深入探讨如何使用Python来实现iOS应用的自动化打包流程。Python作为一种强大的脚本语言,因其灵活性和丰富的库支持,成为了...
2. `index.js`或类似的主脚本文件:包含了实现自动化打包和上传功能的主要代码。 3. `.gitignore`:定义了版本控制中忽略的文件和目录,通常会包含Xcode的临时文件和缓存。 4. 可能存在的配置文件:如`.env`或`...
标题中的“自动化脚本打包苹果iap的Shell.zip”指的是一个用于iOS应用自动化打包的Shell脚本,这个脚本特别针对苹果的In-App Purchase(IAP)服务进行了优化。IAP是苹果应用内购买功能,允许用户在应用程序内部购买...
React Native自动化打包工具是开发React Native应用时必不可少的利器,它可以帮助开发者高效、便捷地创建、测试和分发iOS和Android应用。React Native是Facebook推出的一款开源框架,它允许使用JavaScript来开发原生...
这个名为“python脚本实现自动化打包.zip”的开源项目,显然旨在利用Python语言来自动化应用程序的打包过程,特别是针对iOS平台,因为压缩包内包含了名为“IOSAutoPage-master”的文件夹。下面将详细介绍这个项目...
本篇将详细讲解如何使用Jenkins结合Xcode进行iOS应用的自动化打包流程,旨在帮助开发者实现高效的iOS项目构建和发布。 **一、Jenkins简介** Jenkins是一款开源的持续集成工具,广泛应用于自动化各种任务,如编译、...
"iOS自动打包上传蒲公英或fir"这个主题聚焦于如何利用自动化工具,如Python和Shell脚本,来简化iOS应用的打包和分发过程。自动打包可以极大地提高工作效率,减少手动操作的错误,使得开发者能够快速迭代并测试他们的...
基于Python开发ios自动化打包脚本包括打包、重签名、自动上传及发邮件功能等+源码+开发文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于Python开发ios...
在本主题中,我们将深入探讨如何使用 Cordova 将项目打包成适用于 iOS 平台的 Xcode 项目。 **一、Cordova 的基本概念** 1. **Cordova 框架**: Cordova 提供了一个原生的外壳,用于封装基于 Web 的应用,并使其...
"基于Python的iOS自动打包工具"就是这样一个解决方案,它旨在帮助开发者实现iOS应用的自动化打包流程,从而将开发者从重复的手动操作中解脱出来,让他们有更多的时间专注于应用的核心功能和创新。 Python作为一门...
iOS 打包机器人是使用 Jenkins 部署的自动化打包工具,可以自动化构建和打包 iOS 项目。该工具可以根据项目的需要,自动化地构建和打包 iOS 项目,提高开发效率和质量。 3. Jenkins 部署 iOS 打包机器人步骤 (1)...
本文将详细介绍如何进行iOS自动化测试中的WDA打包过程。 一、WebDriverAgent简介 WebDriverAgent是由Facebook开源的一个项目,它是iOS上的一个自动化测试代理,实现了Apple的XCTest框架。WDA的主要功能是作为Appium...
"iOS自动打包"是一种高效的方法,它利用shell脚本自动化整个过程,从而节省开发者的时间并提高工作效率。本文将深入探讨如何创建和使用shell脚本来实现iOS应用的自动打包。 首先,我们要了解IPA文件的构成。IPA是...
"Linux-一个基于Jenkins的iOS/Android自动构建系统"是这样的一个解决方案,它利用Jenkins这一强大的持续集成工具,实现了跨平台的iOS和Android应用的自动化打包过程。 Jenkins是一款开源的持续集成服务器,支持多种...
通过自动化打包,开发者可以更专注于代码编写和功能实现,而不用每次都手动进行耗时的打包工作。 总的来说,iOS自动打包脚本是iOS开发中的重要工具,它提高了开发效率,减少了重复劳动,并确保了打包过程的一致性和...