• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

bytesking/AutoPacking-iOS: iOS自动打包脚本 多项选择 一行上传指定位置 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

bytesking/AutoPacking-iOS

开源软件地址:

https://github.com/bytesking/AutoPacking-iOS

开源编程语言:

Shell 74.2%

开源软件介绍:

一、背景

在实际多业务迭代开发中,持续打包是必须的工作,自动化实现是必须实现的功能,编辑脚本实现自动化打包上传指定位置。

1.1、知识储备

需要了解打包命令 xcodebuild 的基本知识

二、预览效果图

2.1 执行脚本 和 选项配置

2.2 开始构建

2.3 构建成功并开始导出ipa 并上传到指定位置

二、脚本环境

基于 Xcode 10+ 设计,注意Xcode 8和9有所区别,请参考作者的另一篇:http://www.jianshu.com/p/ba179c731e3f , 如有问题,欢迎指正。

三、功能

  • 支持 xcworkspace 和 xcodeproj 两种类型的工程;
  • 可以自动化清理、编译、构建工程导出ipa;
  • 支持Debug 和 Release;
  • 支持导出app-store, ad-hoc, enterprise, development的包;
  • 支持自动上传到蒲公英或者Fir等内测网站

四、实现

4.1 更新RVM

curl -L get.rvm.io | bash -s stable

4.2 所需知识点

xcodebuild clean 			// 等同于Xcode下点击Product -> Clean
xcodebuild -xcworkspace  	// 等同于xcworkspace工程 command+B
xcodebuild -xcodeproj 		// 等同于xcworkspace工程 command+B
xcodebuild archive 			// 等同于Xcode下点击Product -> Archive
xcodebuild -exportArchive	// 等同于点击 export

五、脚本

配置完项目结构(可以根据自己喜好自由定义)

可以仿照Demo调整

测试体验Demo的话,

需要更换的地方:

    1. 你的Bundle identifier
  • 2.还有Plist里面的相应plist文件
  • 3、上传蒲公英或者Fir的相关APPID和Key,
  • 4.(可选) 如果是多个证书的话,需要指定证书,并打开下面的注释

六、注意事项

注意ExportOptions.plist配置,如下所示:

<?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>compileBitcode</key>
    <false/>
    <key>method</key>
    <string>enterprise</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>com.houmanager.enterprise.test</key>
        <string>com.houmanager.enterprise.test</string>
    </dict>
    <key>signingCertificate</key>
    <string>iPhone Distribution</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>5XXXXXXXXXXXHM</string>
    <key>thinning</key>
    <string><none></string>
</dict>
</plist>

如果不知道怎么填写,手动用Xcode打包,导出文件中会有ExportOptions.plist

直接复制到指定路径或者手动copy即可。


FAQ

1.脚本支持多个target打包吗?

答:支持的,将您的所有target 写在 __SELECT_TARGET_OPTIONS=("1.AutoPackingDemo") 这个集合里面,比如:``__SELECT_TARGET_OPTIONS=("1.Tatget1" "2.Target2" "3.Target3")`, 同时修改下面的if else 判断。还有就是如果您是多个Target 对应多个Info.plist,请自行处理对应关系. so easy~

2. 编译报错,报 Print: Entry, "CFBundleVersion", Does Not Exist 类似错误怎么解决?

答:报这样的错误多半是Info.plist对应的路径不对 或者 Info.plist名称被修改,脚本 __CURRENT_INFO_PLIST_NAME="Info.plist" 处Info.plist 名称和你项目里的相对路径要对。如果是多个Targget对应多个Info.plist,请自行处理对应关系。




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
taitems/iOS-Overlay: iOS Overlay/Notification Plugin for the Web!发布时间:2022-06-21
下一篇:
singro/v2ex: An iOS client for v2ex.com发布时间:2022-06-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap