对于纯粹地抄这种行为是比较抵触的,别人已经写得挺好的东西没必要又去写一遍,但如果不写经验来看下次再做时自己又要重复百度筛选一遍,所以还是要记一记。

之前要获取IOS静态库的版本,但一直以来没有Mac没有iPhone更没做过IOS开发所以搞不定,所以就想弄个环境来看下IOS的开发和打包过程。

一、安装vmware workstation

vmware感觉和windows一个策略,对盗版是比较纵容的,自己都提供密钥;所以vmware workstation我们直接从官网下载,然后网上搜索个密钥即可。

下载链接:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

密钥比如:https://blog.csdn.net/felix__h/article/details/82853501

安装过程和一般windows程序一样下一步下一步就完了,就不多说了。

二、安装mac os x虚拟机

此处主要参考:https://blog.csdn.net/u011415782/article/details/78505422

2.1 解锁mac os x安装选项

vmware workstation安装的系统默认是没有mac os x选项的,但实质上又是支持的,我们需要用一个叫unlocker的小工具将该功能解锁出来。

下载链接: https://pan.baidu.com/s/1dG5jkuH (提取码: 19gv)

下载和解压到任意位置,然后在win-install.cmd文件上右键,选择“以管理员身份运行”即可,其他都不用管。

该工具虽然说是对vmware 14但对13和15等其他版本应该都是可用的。

2.2 安装mac os x

解锁出mac os x选项后,还要注意几个问题。

第一个,是mac os x是比较吃内存的,要想能没有明显卡顿地运行起来至少得要分配8G内存,对物理机而言就得有16G以上的内存。(我对网上为mac os x比windows还吃内存的辩解感到比较好笑,还“专业地”搬出unix-like的理念就是最大化利用内存能缓存就缓存windows理念是能释放就释放,我请问你我4G windows能跑ps你4Gmac os x自身都难跑难道还不是明显比windows吃内存吗,很多人没分清可使用内存和未使用内存的概念;从本质上unix-like内存管控是比windows好一些,但mac os x为了保证其显示的高分辨率及高分辨率的流畅性耗费了大量内存。天下没有免费的午餐,mac os x比windows流畅ios比安卓流畅,更多是建立在硬件的不对称对比上。)

第二个,mac应用和系统的文件都是.dmg但vmware无法使用.dmg进行安装,需要使用.cdr文件;而在windows下没有简便的方法能将.dmg转换成.cdr所以下系统时要直接从网上下.cdr(并且不是所有.cdr都能成功安装)。

第三个,xcode(至少是以swift为默认语言的xcode?)需要mac os x 10.13.6以后的版本才能安装,所以至少要下mac os x 10.13的版本,然后到app store把系统升级到mac os x 10.13.6。

Mac OS 10.13 High Sierra.cdr下载链接:https://pan.baidu.com/s/1LZ3v9gxg-oXfTXSA09atWw(提取码:p009)

安装mac虚拟机就和普通虚拟机一样操作即可,不过第一次启动时会报错:vmware workstation不可恢复错误:(vpu-0)

此时要到虚拟机存放目录下,使用notepad等打开.vmx在smc.present = "TRUE"后插入一行smc.version = 0(smc.version = "0"也没问题),再确定关闭虚拟机再启动即可。

安装操作系统过程和装其他unix-like类似都是那几个步骤就不细讲了,主要是注意在选好语言后首先要格式化磁盘,不然mac os x找不到

磁盘名自己随便定一下。格式化完后关闭该程序继续后续安装即可。

2.3 安装vmware tools

vmware tools也是支持mac os x的,先在安面弹出安装盘,然后一样vmware主菜单----虚拟机----安装VMware Tools (T)...

双击出现在桌面的“VMware Tools”,然后在弹出的对话框再双击“Install VMware Tools”即可。

三、安装xcode

安装xcode要先升级操作系统,升级操作系统和安装xcode都在app store中完成。

3.1 注册apple账号并开通免密支付

升级操作系统时不需要apple账号,但要装xcode需要登录apple账号,在操作中还看到得绑定好支付宝等账号并开启免密支付。(虽然xcode是不收费的,但通过xcode让你开好免密支付以后当你一冲动点装收费软件时就能轻松装上,好套路。但有些账号又似乎是不用绑定的,不是很清楚。)

没截图,不过怎么注册apple账号和开通免密支付不用担心,当你点击安装xcode,通道就会清晰的展现给你了自己随便点点就行。

3.2 升级系统到10.13.6

打开app store切换到“Updates”选项卡,看到可更新系统,点击其后的“UPDATE”即可。

3.3 安装xcode

注册好账号并开通好免密支付后登录app store,找到xcode点击安装即可。

主要的问题时xcode有6G多,然后网速比较慢,装个三四个小时是正常的。

四、第一个IOS程序

4.1 新建helloword项目

启动xcode,选择“Create a new Xcode Project”

选择“Single View App”

项目名称、开发团队等一些信息,随便填即可

项目存放位置,按自己喜好放即可,我这放在桌面

经过以上几步,一个IOS项目就创建好了,如下图所示。

Signing那里,如果是要打成.ipa(上传app store)那么要先弄好,证书似乎一定要到苹果网站去下载,而不能像android一样直接使用自签名证书。

苹果这种有的没的太麻烦,我们这里只要打包成.app在模拟器上运行起来,所以就先不管了。

4.2 编写第一个IOS程序

我们想要的效果是在界面上放一个文本框和一个按钮,然后点击按钮文本框的文字会变化。

首先把两个控件放上去。双击“Main.storyboard”,点击右上角的控件按钮弹出控件窗口,然后在控件窗口上找到label和button,拖动到设计面版上。如下图所示

然后编写关联代码。当前label和button只是出现在设计面版上,还没有相应的实例代码。

android上我们通过设置好控件的id,然后通过getElementById等函数获控件实例。xcode通过拖动的形式。

先点击左上角的双环,同时呈现设计窗口和代码窗口,选中设计窗口中的label按下ctrl键,移动光标就会出现一条连接线,将该连接线终点放到代码窗口的已有函数下,设置好实例名点出“connect”即可。

对button进行类似操作,设置好函数名。(可通过修改Event值处理不同的事件,默认“Touch Up Inside”表示单击事件)

最后,实现点击按钮改变标签文字。标签实例和按钮点击事件响应函数我们都已创建好了,要实现功能其实只需要在该函数里对标签文字重新赋值即可。

4.3 在模拟器中运行程序

点击右上角的运行按钮,xcode即会自动运行模拟器、部署和运行程序。启动一样有点慢稍等一下即可。

点击按钮可见文字成功改变。构建成的.app在Products文件夹下

参考:

https://blog.csdn.net/mitu405687908/article/details/44701573

从安装Mac OS X虚拟机到第一个IOS程序的更多相关文章

  1. Ubuntu 16.04安装Mac OS 12虚拟机资源(没成功,但资源还是可以用)

    整理的Mac OS 12虚拟机资源.装虚拟机基本是按这样的套路: 1.先装VM 2.破解VM使其支持Mac OS 12,这个脚本基本是全平台支持,可以看里面的教程文档. 3.用镜像安装系统. 资源: ...

  2. 虚拟机安装Mac OS X ----- VM12安装Mac OS X

    Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...

  3. Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11

    Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...

  4. 在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结

    在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结 一.资料来源:    网上一共找到两个方法,一个是视频上的教程,一个是网页资料. 二.视频资料方法内容:1.install qe ...

  5. VMware 虚拟机安装 Mac OS X Mountain Lion 苹果系统

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. VMware10虚拟机安装mac os x 10.9

    身边越来越多盆友们购进mac本子,不断地诱惑着小编,近日一直想着买一台mac本子装逼,后来想想用来开发(非ios)可能会遇着各种问题,就先在虚拟机上玩玩看,毕竟1,2万RMB不是小数. 在mac os ...

  7. 使用VMware Workstation Pro 12 虚拟机安装Mac OS系统教程 全程图解

    导读:使用虚拟机安装Windows.Linux或者Ubuntu系统大家或许看了很多,但如何使用VMware Workstation Pro 12安装Mac OS,的确需要好好研究一番:否则无法下手,因 ...

  8. VirtualBox虚拟机安装Mac OS 10.12

    注:本文作者  (QQ:85805214) 本博主只是转载发布而已. VMware 安装Mac OS 方法 由于Virtual Box拷贝文件比较麻烦,有时候经常出现拷贝失败的情况,故使用VMware ...

  9. Windows下虚拟机安装Mac OS X —– VM12安装Mac OS X 10.11

    ____________________________________________________________________________________________________ ...

随机推荐

  1. Spring的事务

    事务:事务指的是逻辑上的一组操作,这组操作要么都成功,要么都失败. Transaction事务的四大特性ACID: 1.Atomicity原子性 事务的操作要么都成功,要么都不做,只要有一个失败,就会 ...

  2. CCF后感

    3.21,昨天天梯训练赛完后查CCF成绩,300!小开心~~~我是合格的程序员啦~~~ 问题:第四题,如果输入数据有对于1本身来说 S 1 ,R 1有这个我就gg了,考完一直在担心这个反复看题也看不出 ...

  3. js中的排序方法

    一.冒泡排序 var  arr=[22,1,33,19,77]; function  bubbleSort(arr){ for(var i=0;i<arr.length-1;i++){ for( ...

  4. python dict字典和set集合用法

    创建字典:键  值  key  value c = {'张三':59, '李四':60, '王五':100} #查 print(c['张三'])  #打印张三的成绩 #改 c['张三'] = 60 # ...

  5. Maven Webapp项目web.xml版本记录

    web.xml 2.0版本 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...

  6. 【题解】Luogu P4121 [WC2005]双面棋盘

    原题传送门 这道题肥肠毒瘤qwqwq,我被卡了qwqwq 这题的正解好像是线段树+并查集,但由于我人丑常数大被卡成了70 #include <bits/stdc++.h> #define ...

  7. [ERROR] --gtid-mode=ON or UPGRADE_STEP_1 or UPGRADE_STEP_2 requires --log-bin and --log-slave-updates

    centos7.5 做基于GTID的主从重启从库报错 问题: [root@db01-51 ~]# tail -50 /application/mysql/data/db01-51.err 2019-0 ...

  8. d3-tip中show在自己调用时需要改变this值

    <script src="https://d3js.org/d3.v4.min.js"></script><script src="http ...

  9. 论文笔记:Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation2019-03-18 14:4 ...

  10. Python中4位1进制数与float浮点数互相转换

    import struct s = 'F4CEF042' print(s) #<是小端,>是大端,f代表浮点数 print(struct.unpack('<f', bytes.fro ...