介绍
移动互联网时代,掌握 iOS 开发和安卓开发 还是很有好处的,小编最近在学习移动端开发的时候,最先遇到的问题就是环境安装问题了。
虽说网络上的教程已经很丰富了,但是也不是每次都很顺利,总是避免不了踩坑。这里就做一个 iOS 开发的踩坑笔记,不一定没个人都会遇到这些坑,但是如果你也恰巧遇到的话,希望能对你有一些帮助和启发。
踩坑
设备
首先声明一点,要本地打包 iOS 或者 macOS 的 APP,必须要 Mac 电脑,因为 iOS 软件必须用 Xcode 来打包。Xcode 是苹果设备专用的开发工具,苹果做的这是一整套工具链,不跨平台。如果开发安卓 APP 的话无所谓 Windows 还是 Mac,开发安卓用的 Android Studio 是跨平台的,Mac 和 Windows 都可以安装使用。
再提一个小知识,现代 Web 开发迅速发展,一些跨平台框架如 React Native、Ionic,可以做到一次开发,跨平台部署。这样的框架带来一个优势,你在开发阶段其实可以不用 Mac,只需要有 iPhone 手机就可以,比如使用expo的服务,可以联网用自己的 iPhone 真机调试,使用官方提供的云部署来打包 iOS APP。同样的 Ionic 也提供这样的服务,但是这类服务售价太高,可能不太适合个人开发者,而且没有 iOS 本地模拟器调试,可能还不太方便查问题,有兴趣的朋友可以深入了解下。
简单总结来说,一般情况下想要做 iOS 的开发,需要先备好 Mac 电脑。
安装工具
小编发现了两个不错的移动端 APP 开发环境安装指南
Capacitor 构建 APP 开发环境文档:Environment Setup
React Native 构建 APP 开发环境文档:Setting up the development environment
我们依照 Capacitor 文档来搭建环境,Capacitor 是 Ionic 团队推出的打包原生 APP 的工具
- 第一步,安装 Xcode,通过官网链接 Xcode 介绍页点进去,底部有下载按钮
Download Xcode
,下载之前需要登陆,但是之后下载就提示No Operating Systems available for download
于是我就只能在 Apple Store 上安装 Xcode 了,这个比较简单点,直接在 Apple Store 上搜索 Xcode 就行了。
- 然后继使用以下命令安装 Swift and Objective-C 的依赖管理 CocoaPods
sudo gem install cocoapods
这一步我这报错
You might have to install separate package for the ruby development environment, ruby-dev or ruby-devel for example.
报错信息大致说我需要 Ruby 开发环境,用以下两条命令安装 Xcode 命令行工具
xcode-select --install
sudo xcodebuild -license
然后又报出了新的错,提示我命令行工具已经安装过了,需要更新
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
先把旧的删除,再重新安装即可,所以这一步安装 CocoaPods 我需要以下 4 条命令
sudo rm -rf /Library/Developer/CommandLineTools
# 安装时会弹出安装窗口,根据提示点击确认即可
xcode-select --install
# 这一步同意证书,一定要注意最后要输入“agree”才能生效,不能一路“Enter”到底
sudo xcodebuild -license
sudo gem install cocoapods
- 小编注意到官方教程有一个在 Xcode 中选择命令行工具的动作,打开
Xcode -> Preferences -> Locations
并在下拉列表中选择最新版本来安装 Xcode 命令行工具。我可能是已经安装好命令行工具了,这里并没有什么问题。
总结
以上就是小编在搭建 iOS/macOS APP 开发环境的时候遇到的坑,作为一个笔记供大家参考。如果大家有更好的经验也欢迎分享出来。
参考
- Capacitor Environment Setup
- Setting up the development environment
- I have some problem cocoapods installation
- How to update Xcode from command line