使用Xcode编译Swift App并分发到iPhone或iPad上


前言

这学期成功选上了Swift程序设计这门课。虽然我还只会写Hello World,但是已经非常好奇如何将自己写的程序放在自己的iPhone中运行了,因此我们今天就来尝试一次。

代码

Mac上的Xcode和iPad上的Playground差距还是有些大的。但是因为我的Mac是虚拟机,运行缓慢,所以我打算现在iPad上编写程序并测试运行。

由于我对Swift的了解还很少,所以我在网上下载了一个简单的程序作为测试。测试软件下载链接[1]

下载好后,在iPad的Playground中尝试导入,几乎都失败了。遂怀疑是版本问题。于是准备重新创建项目后复制粘贴源代码。粘贴好后会提示SwiftyJSONAlamofire找不到,遂前往GitHub搜索,并在Playground的添加Swift软件包中粘贴链接导入软件包即可。
省流:链接分别是https://github.com/SwiftyJSON/SwiftyJSONhttps://github.com/Alamofire/Alamofire

点击运行,就能看到软件运行成功了。

分发

由于iPad的Playground只能将应用发布到App Store,而这个需要用户成为Apple Developer Member,不仅需要验证和审核,还需要688元/年的会费,对学生来说没有必要,邃转向Xcode。

首先在Playground中将刚刚的App导出并存放在iCloud中(存什么地方不重要,方便导入电脑即可,也可以直接AirDrop)。随后打开Mac上的Xcode,打开项目,选择我们刚刚的导出的软件。项目导入后,Xcode会提示正在fetch SwiftyJSON和Alamofire,fetch结束后就可以command+R运行了。可见App在Simulator中运行状态也是正常的。

之后点击Xcode-Preferences或者使用快捷键command+,打开偏好设置,在Accounts中添加自己的AppleID,添加成功后关闭偏好设置。

在左侧视图中点击App的名称,选中signing & Capabilities,在Signing栏的Development Team中选中自己AppleID的名字,在Bundle Identifier中填入应用唯一标识符,命名规范一般是com.AppName.DeveloperName

随后鼠标悬停在中间正上方,会出现为什么构建应用程序,选中Any iOS Device,然后点击菜单栏Product-Archive,编译成功后在Finder中打开文件夹,文件夹位置默认在~/Library/Developer/Xcode/Archives下的今天日期文件夹中(可在偏好设置的Location栏更改)。此可以看见一个扩展名为xcarchive的文件即说明编译成功。

最后,打开终端,cd到.xcarchive文件所在文件夹,输入以下命令:[2]

xcodebuild -exportArchive -exportOptionsPlist Info.plist -archivePath *.xcarchive -exportPath myApp.ipa

其中Info.plist需要随便准备一个(如果你是直接在Xcode中创建的项目会附赠一个,你在项目文件中找到即可,如果是Playground创建的,则需要借用其他项目的),*.xcarchive为你的应用名称。在看到** EXPORT SUCCEEDED **后说明导出ipa成功。

会在当前文件夹下产生一个叫做myApp.ipa的文件夹,将其中的myApp.ipa文件拿出来,使用爱思助手就可以直接安装在iPad/iPhone中使用。[3]

注意:根据Apple官方的规定,免费用户只能将同一个程序分发给至多3个设备,且一次签名最多持续7天。

参考链接或注释

  1. 参考链接:https://sspai.com/post/70655
  2. 参考链接:https://www.jianshu.com/p/0171d6b49771
  3. 注释:由于Info.plist不匹配和免费签名的缘故,不能使用iTunes进行安装,只能使用第三方助手

–153f13f77972d3846a86655a0d8ccc44–


评论
  目录