`

使用Bash脚本将build好的程序部署到iPhone上

阅读更多

伟大的boss说:要有iPhone程序,于是勇做小白鼠的我就“光荣的”踏上了学习iPhone的开发的尝试之路。

经历了若干次安装,四国,学习之后,目前的iPhone程序终于做得像模像样了。但由于并未付给水果公司99美刀,所以编译好的app程序还需要通过一些“技巧”才能部署到iPhone上。具体的方法是先用scp命令将编译好的app复制到iPhone的Applications目录,然后用ssh服务连到iPhone上,使用ldid命令给app签注,再杀掉SpringBoard进程刷新界面。

但每次编译后都要如此敲打命令实在是件烦人的事,据闻懒惰是程序员的美德,于是匆匆学习了一番BASH脚本后,终于写了个脚本,每次部署时只需使用脚本,以iPhone的IP地址作为参数即可(iPhone上要求先安装SSH服务)。

1. 生成名为rsa的密匙文件。输入 ssh-keygen -t rsa

2. 在iPhone上建立.ssh目录。输入 ssh root@iphoneipaddr 'mkdir -p .ssh'

3. 将id_rsa.pub文件拷贝到iPhone的目录上,这样使用ssh和scp命令连接iPhone时就不再需要每次输入alpine密码了。 输入 cat ~/.ssh/id_rsa.pub | ssh root@10.0.2.2 'cat >> .ssh/authorized_keys'

4. 建立installApp.sh文件, chomd +x installApp.sh,增加执行权限。

5. 在installApp.sh文件中输入以下内容

Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> 1 #!/bin/sh
 2 apppath=~/Documents/iPhone-source/foo-Project/build/Release-iphoneos/foo.app
 3 iphone="$1"
 4 
 5 # login iphone to remove old files first
 6 ssh -l "root" "$iphone" "rm -rf /Applications/foo.app"
 7 
 8 # copy app files to iPhone machine
 9 scp -r $apppath root@$iphone:/Applications
10 
11 # login iphone to resign app and kill SpringBoard to force refresh
12 ssh -l "root" "$iphone" "cd /Applications/foo.app; ldid -s foo; killall 9 SpringBoard"

 

 保存之后,你就可以以iPhone的IP地址为参数执行脚本(./installApp.sh 192.168.2.199)来将app部署到iPhone上了

 

分享到:
评论

相关推荐

    shell脚本打包ipa

    标题 "shell脚本打包ipa" 暗示我们要讨论的是如何使用shell脚本来构建iOS应用的IPA(iOS Application Package)文件。IPA是苹果用于分发iOS应用的标准格式,它包含了应用的二进制文件、资源文件、元数据等。在这个...

    IPhone 1.1.4开发环境配置说明

    3. **编译与运行**:使用 `Build` 命令编译工程,完成后代码会被自动部署到连接的 iPhone 设备上并运行,便于调试。 通过以上步骤,您可以成功配置好 IPhone 1.1.4 的开发环境,开始 iOS 应用的开发工作。

    iOS编译libel库脚本

    在iOS开发中,有时我们需要使用到SSL(Secure Socket Layer)库来实现安全的网络通信,例如HTTPS协议。libssl是OpenSSL项目中的一个关键组成部分,主要用于加密和安全传输数据。本教程将详细介绍如何通过编写shell...

    Xcode 免证书开发调试(总结)

    在使用Xcode进行iOS应用程序开发的过程中,经常会遇到需要与实际的iOS设备(如iPad、iPhone等)进行联机调试的情况。这种情况下,开发者通常会选择使用“Device/Release”模式来运行Xcode上的iOS程序。然而,在这个...

    Mac_Xcode_3.2.5免证书开发调试

    确保Xcode关闭,然后在命令行终端运行特定的bash脚本。这个脚本会替换Xcode中的某些文件,以允许它在没有正式证书的情况下编译和运行应用。 首先,将以下代码复制到终端: ``` #!/bin/bash cd /Developer/...

    Xcode 4.2 4.1 免证书开发

    cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS Build System Support of=working bs=500 count=255 ...

    ios使用cmake编译framework

    本文将深入探讨如何使用CMake来构建iOS平台上的Framework。 首先,理解CMake的基本概念至关重要。CMake是一个开源的、跨平台的自动化构建系统,它不直接进行编译,而是生成特定平台的构建工具(如Xcode或Makefile)...

    xcode 自动打包

    使用`xcrun`工具将构建好的.app文件打包成ipa格式,并嵌入指定的Provisioning Profile文件。 #### 四、注意事项 1. **证书与Provisioning Profile的匹配**:确保使用的证书与Provisioning Profile相匹配,否则...

    mac Jenkins iOS

    标题“mac Jenkins iOS”指的是在苹果Mac操作系统上使用Jenkins自动化构建iOS应用的过程。Jenkins是一个开源持续集成(CI)工具,它可以帮助开发者自动化软件构建、测试和部署流程。在这个场景中,我们主要关注如何在...

    Appium自动化测试——iOS

    'app': PATH('/Users/chenxiaolong/Library/Developer/Xcode/DerivedData/Demo3-hiloyebnrfvvvvekqqvpeptpaklm/Build/Products/Debug-iphoneos/Demo3.app'), 'platformName': 'iOS', 'platformVersion': '14.4', ...

    动态库x86架构脚本移除与恢复

    本文将深入探讨“动态库x86架构脚本移除与恢复”的主题,结合GitHub项目"RecheLi",我们将了解如何处理针对不同架构的动态库,特别是针对x86和i386架构的处理,以及如何进行自动化脚本操作。 首先,我们需要明白x86...

    libevent_build_for_ios

    本文将深入探讨如何在iOS平台上编译和使用`libevent`库,主要涉及的知识点包括`libevent`的基本概念、编译环境的搭建、Shell脚本的运用以及iOS平台的特定构建步骤。 **1. libevent基本概念** `libevent`是一个高度...

    11.3 iOS diskImage

    xcrun -sdk iphoneos build -configuration Release -target YourAppTargetName ``` 这个命令会根据项目的配置,为iOS 11.3设备生成一个未签名的.app文件。接着,如果需要在真实设备上安装,还需要进行签名处理。...

    IOS ffmpeg编译库

    然而,由于iOS系统的特殊性,直接在iOS设备上使用FFmpeg需要进行特定的编译和配置,以便使其与iOS的架构和权限机制相兼容。 首先,我们需要准备Xcode环境,这是iOS开发的基础。确保你的开发环境安装了最新的Xcode,...

Global site tag (gtag.js) - Google Analytics