`
siruoxian
  • 浏览: 237936 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

自动化打包 ios

阅读更多

通常打包采用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自动化批量打包知识点 #### 一、背景与需求分析 在进行轻度定制化iOS应用开发时,经常需要根据客户或场景的不同调整应用程序图标(appIcon)、启动页(launchImage)、应用程序名称以及内部功能等内容。...

    ios自动化打包脚本

    ### iOS自动化打包脚本知识点详解 #### 一、概述 在iOS开发过程中,为了提高工作效率并减少人工干预可能带来的错误,通常会采用自动化工具来进行应用的构建与发布工作。其中,“iOS自动化打包脚本”是一种非常实用...

    支持Flutter及iOS混编工程的自动化打包方法.docx

    支持Flutter及iOS混编工程的自动化打包方法 本文档介绍了一种支持Flutter及iOS混编工程的自动化打包方法,该方法结合Jenkins使用Shell脚本实现。该方法可以实现远程访问Jenkins选择打包分支和其他可选参数,点击...

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

    Python自动化打包iOS应用的核心是使用`xcodebuild`命令行工具,它可以控制Xcode执行一系列任务,包括清理项目、归档、导出IPA(iOS应用程序包)等,以此实现无干扰的自动化打包流程。 **为什么要做这个?** 在日常...

    Python-Python实现iOS自动化打包

    在IT行业中,自动化打包是提高效率、减少人工错误的关键步骤,尤其在iOS应用开发中。本文将深入探讨如何使用Python来实现iOS应用的自动化打包流程。Python作为一种强大的脚本语言,因其灵活性和丰富的库支持,成为了...

    Node.js-一个使用node写的iOS自动打包的脚本并可以选择上传到蒲公英

    2. `index.js`或类似的主脚本文件:包含了实现自动化打包和上传功能的主要代码。 3. `.gitignore`:定义了版本控制中忽略的文件和目录,通常会包含Xcode的临时文件和缓存。 4. 可能存在的配置文件:如`.env`或`...

    自动化脚本打包苹果iap的Shell.zip

    标题中的“自动化脚本打包苹果iap的Shell.zip”指的是一个用于iOS应用自动化打包的Shell脚本,这个脚本特别针对苹果的In-App Purchase(IAP)服务进行了优化。IAP是苹果应用内购买功能,允许用户在应用程序内部购买...

    reactnative自动化打包工具

    React Native自动化打包工具是开发React Native应用时必不可少的利器,它可以帮助开发者高效、便捷地创建、测试和分发iOS和Android应用。React Native是Facebook推出的一款开源框架,它允许使用JavaScript来开发原生...

    python脚本实现自动化打包.zip

    这个名为“python脚本实现自动化打包.zip”的开源项目,显然旨在利用Python语言来自动化应用程序的打包过程,特别是针对iOS平台,因为压缩包内包含了名为“IOSAutoPage-master”的文件夹。下面将详细介绍这个项目...

    Jenkins项目实战之-xcode+jenkins自动化打iOS包.rar

    本篇将详细讲解如何使用Jenkins结合Xcode进行iOS应用的自动化打包流程,旨在帮助开发者实现高效的iOS项目构建和发布。 **一、Jenkins简介** Jenkins是一款开源的持续集成工具,广泛应用于自动化各种任务,如编译、...

    iOS自动打包上传蒲公英或fir

    "iOS自动打包上传蒲公英或fir"这个主题聚焦于如何利用自动化工具,如Python和Shell脚本,来简化iOS应用的打包和分发过程。自动打包可以极大地提高工作效率,减少手动操作的错误,使得开发者能够快速迭代并测试他们的...

    基于Python开发ios自动化打包脚本包括打包、重签名、自动上传及发邮件功能等+源码+开发文档(毕业设计&课程设计&项目开发)

    基于Python开发ios自动化打包脚本包括打包、重签名、自动上传及发邮件功能等+源码+开发文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于Python开发ios...

    Cordova打包ios平台

    在本主题中,我们将深入探讨如何使用 Cordova 将项目打包成适用于 iOS 平台的 Xcode 项目。 **一、Cordova 的基本概念** 1. **Cordova 框架**: Cordova 提供了一个原生的外壳,用于封装基于 Web 的应用,并使其...

    基于Python的iOS自动打包工具

    "基于Python的iOS自动打包工具"就是这样一个解决方案,它旨在帮助开发者实现iOS应用的自动化打包流程,从而将开发者从重复的手动操作中解脱出来,让他们有更多的时间专注于应用的核心功能和创新。 Python作为一门...

    jenkins部署ios打包机

    iOS 打包机器人是使用 Jenkins 部署的自动化打包工具,可以自动化构建和打包 iOS 项目。该工具可以根据项目的需要,自动化地构建和打包 iOS 项目,提高开发效率和质量。 3. Jenkins 部署 iOS 打包机器人步骤 (1)...

    IOS自动化wda打包

    本文将详细介绍如何进行iOS自动化测试中的WDA打包过程。 一、WebDriverAgent简介 WebDriverAgent是由Facebook开源的一个项目,它是iOS上的一个自动化测试代理,实现了Apple的XCTest框架。WDA的主要功能是作为Appium...

    IOS自动打包

    "iOS自动打包"是一种高效的方法,它利用shell脚本自动化整个过程,从而节省开发者的时间并提高工作效率。本文将深入探讨如何创建和使用shell脚本来实现iOS应用的自动打包。 首先,我们要了解IPA文件的构成。IPA是...

    linux-一个基于Jenkins的iOSAndroid自动构建系统

    "Linux-一个基于Jenkins的iOS/Android自动构建系统"是这样的一个解决方案,它利用Jenkins这一强大的持续集成工具,实现了跨平台的iOS和Android应用的自动化打包过程。 Jenkins是一款开源的持续集成服务器,支持多种...

    iOS自动打包脚本,具有打包、重签名、自动上传及发邮件功能.zip

    通过自动化打包,开发者可以更专注于代码编写和功能实现,而不用每次都手动进行耗时的打包工作。 总的来说,iOS自动打包脚本是iOS开发中的重要工具,它提高了开发效率,减少了重复劳动,并确保了打包过程的一致性和...

Global site tag (gtag.js) - Google Analytics