iOS脚本打包 ipa(.app转.ipa)

Published 2018-04-18 05:08 280 words 2 min read

前端项目通过bridge获取客户端资源,客户端直接返回response对象为 UIControl 实现线程安全的 Block 事件扩展:原理与实践高数概念、公式、定理常用代码模板2——数据结构常用代码模板1——基础算法iOS:特殊符号大全SwiftUI基本控件《什么是数学 》习题 第一章 补充《什么是数学 》习题 第一章 2 数系的无限性 数学归纳法《什么是数学 》习题 第一章 1 整数的计算LeetCode 70 爬楼梯(青蛙跳台阶)Swift Module 如何被全局引用LeetCode 398 随机数索引Vue 的一些指令和缩写LeetCode 486 Predict the Winner(预测赢家)浅谈iOS中的weakCocoaPods组件化——OC/Swift动静态库混用当对象接收到不能处理的消息时调用的方法iOS:如何在UITableView调用reloadData刷新结束后再同步执行后续操作统计iOS工程代码行数LeetCode 6 ZigZag Conversion(Z字转换)LeetCode 106 Construct Binary Tree from Inorder and Postorder Traversal(由中序和后序遍历建立二叉树)LeetCode 5 Longest Palindromic Substring(最长回文字串)LeetCode 8 String to Integer (atoi)Objective-C Type EncodingsObjective-C:为什么分类中不能直接添加属性数据结构与算法解析习题2.23数据结构与算法解析习题2.19数据结构与算法解析习题2.16数据结构与算法解析习题2.14数据结构与算法解析习题2.13数据结构与算法解析习题2.12数据结构与算法解析习题2.11:二分查找数据结构与算法解析习题2.10:霍纳法则(Horner's rule)数据结构与算法解析习题2.7数据结构与算法解析习题1.3数据结构与算法解析习题1.2数据结构与算法解析习题1.1UIButton扩大点击范围以及关于响应者链条的思考UILabel中文带行间距的处理,限制行数,计算高度等UITableview调用reload方法时抖动问题iOS 截取整个 scrollview 图片objc源码分析-runtime-classiOS自动化埋点的实现iOS平台编译Ogre游戏引擎库iPhone 刘海机型UI适配(X、Xs、Xs Max、Xr)iOS 沙盒与 BundleCOCOAPODS技巧-创建私有仓库iOS脚本打包 ipa(.app转.ipa)Objective-C 中禁止调用指定的方法iOS 关于 UITextField 的字数限制iOS 框架学习-AsyncSocketOC优缺点以及常见bugUIViewController 的生命周期runtime——运行时简单使用iPhone6 Plus上面神秘的缝隙UIApplicationiOS 网络小结NSString的各种处理OC中nil 、NULL、 Nil 、NSNull的区别iOS常用数据类型转换关于NSNotificationCenterDescription方法和NSLog函数OC单例宏Block in Objective-CObjective-C 语法 3Objective-C 语法 2Objective-C 语法 1
This post is not yet available in English. Showing the original.
Mac OS 升级到10.13后,iTunes 没有了应用程序,导致不能把 build 出来的 .app 文件通过拖动到 iTunes 的方式转成 .ipa 包了,后来找到了一个更简单的方法,直接跑一个脚本即可。 创建一个名字叫 convertToIpa.sh 的脚本,脚本内容如下

Mac OS 升级到10.13后,iTunes 没有了应用程序,导致不能把 build 出来的 .app 文件通过拖动到 iTunes 的方式转成 .ipa 包了,后来找到了一个更简单的方法,直接跑一个脚本即可。

创建一个名字叫 convertToIpa.sh 的脚本,脚本内容如下

#!/bin/bash

# 检查参数是否为空
if [ -z "$1" ]; then
  echo "Usage: $0 <name>"
  exit 1
fi

# 获取参数
nameTemp="$1"

# 检查是否以 .app 结尾
if [[ "$nameTemp" == *.app ]]; then
  # 删除 .app 后缀
  name="${nameTemp%.app}"
  echo "Removed .app suffix: $name"
elif [[ "$nameTemp" == *.app/ ]]; then
  # 删除 .app 后缀
  name="${nameTemp%.app/}"
  echo "Removed .app/ suffix: $name"
else 
  name="$nameTemp"
fi

echo $name

rm -rf $name
mkdir $name
mkdir $name/Payload
cp -r $name.app $name/Payload/$name.app
cp Icon.png $name/iTunesArtwork
cd $name
zip -r $name.ipa Payload iTunesArtwork

exit 0

将要转化的.app文件放到 convertToIpa.sh 同目录之中

运行 convertToIpa.sh 脚本

打开 Terminal,cd 到 convertToIpa.sh 的目录,执行

./convertToIpa.sh appName(.app 的名字)

如果提示 permission denied,则用 chmod 777 convertToIpa.sh

命令赋予权限后,再执行一次。

等脚本之行结束后,会在当前文件夹下生成 appName 文件夹,里面的 appName.ipa 就是我们最终想要的包。