Archive九月 2022

虚拟机的mac地址

虚拟世界的MAC地址

先看一下真实世界的MAC地址是如何分配,如何保证没有重复的。

每块网卡都有一个MAC地址,MAC地址是一个6字节、也即48bit的数据。前3字节称为OUI ,是由IEEE组织注册给网络设备生产商的;每个厂商拥有一个或多个OUI,彼此不同。后三字节则是由网络设备生产商分配给自己生产的每一个拥有MAC地址的设备,互不重复。

在VM的世界中,每一台拥有虚拟NIC(网卡)的设备当然也拥有MAC地址。这虚拟网卡的MAC地址,当然也是按照规定,前三字节为OUI,后三字节逐一分配给每个设备。

由于虚拟网卡的”制造商“是VMware,XenSource,微软 等虚拟平台软件的生产商,OUI当然就分配给了他们。

VMware VM所使用的OUI

按照VMware ESX 3的[Server Configuration Guide ]的说法,VMware的使用下面的三个OUI作为VM的MAC地址:

00:0C:29 – 用于自动生成的MAC地址
00:50:56 – 用于手动设置的MAC地址
00:05:69 – 曾经用于旧版本的VM(大约是在ESX 1.5的时代),在ESX 3中已经不再使用

但是在实际应用上,我发现00:50:56这一MAC地址段并不是完全用于手动设置的MAC地址:

00:50:56:00:00:00 – 00:50:56:3F:FF:FF
这一段MAC地址可以用于手动设置的MAC地址

00:50:56:40:00:00 – 00:50:56:FF:FF:FF
这一段(我的推测,不一定准确),则是用于ESX 3上的自动生成的MAC地址(包括VM和Service Console)

MAC地址的生成

OUI有了,后三字节如何生成呢?要知道虚拟机是经常被创建和销毁的,这一点不像实体PC。网卡生产商可以计算每年生产多少块网卡,从而为每块网卡分配不同的MAC地址; VMware却不可能计算出每年有多少台VM、有多少块虚拟网卡被创建。

VMware ESX Server的算法是,使用散列算法,通过VM的UUID来生成MAC地址。VM的UUID是每一台VM特有的、128bit的ID,是由ESX Server硬件SMBIOS的UUID、加上VM的路径生成的。因此,一台虚拟机的虚拟网卡的MAC地址就与下面四个因素有关:

VMware的OUI
Host (ESX Server)的SMBIOS中的UUID
VM在服务器上的路径
网卡的实体名 (Entity Name),用来确保同一VM上的不同网卡有不同的MAC地址

MAC地址冲突的检测与解决

MAC地址一旦生成,就不会再有变化,除非上面所述的四项因素发生改变(最可能发生的就是第三项,VM在服务器上的路径改变)。

尽管如此,由于散列算法本身的特征,还是有万一发生MAC地址冲突的可能(可能性极小,和年末ジャンボ中头彩的几率差不多)。ESX Server会不断跟踪和检测运行中和挂起(Suspend)的VM,以保证没有MAC地址冲突。但是已经关闭电源的VM是不在检查对象之内的。

因此,万一一台VM启动时ESX检测到MAC地址冲突,它会分配给VM的虚拟网卡一个新的MAC地址。所以从这个意义上说,VM的MAC地址是可能发生变化的——只是这个概率实在太小。

手动指定MAC地址

手动指定MAC地址仅用于一些极其特殊的情况,通常是进行P2V的时候。例如,某物理服务器上的软件,其License已经与该服务器的MAC地址绑定,如果MAC地址改变则软件无法运行;再如,某些底层网络软件以MAC地址来鉴别机器时,为了不做更改能够继续使用,在P2V的时候也要手动指定 MAC地址。
打开一个VM的.vmx文件,可以看到如下设置:(如果有多块NIC的话,那么就会有ethernet0、ethernet1、ethernet2……)

ethernet0.addressType = “generated”
ethernet0.generatedAddress = “00:0c:29:9b:fb:18”

这说明该NIC是自动生成的MAC地址。只需如下更改即可变为手动分配的MAC地址:

ethernet0.addressType = “static”
ethernet0.address = “00:50:56:00:00:01”

其中的00:50:56:00:00:01就是手动指定的MAC地址。

文章出处:https://www.cnblogs.com/Solomon-xm/articles/10253575.html

Win7下用虚拟机安装苹果MacOS Monterey

Win7配置

CPU:Intel (R) Core (TM) i5-3470 CPU @ 3.20GHz 3.20 GHz
内存:16.0GB
系统:Windows 7 旗舰版 64位

所需文件

1. VMware-workstation-full-15.5.7-17171714.exe
下载地址:https://customerconnect.vmware.com/en/downloads/details?downloadGroup=WKST-1557-WIN&productId=643
说明:下载时需注册登录

2. unlocker422.zip
下载地址:https://github.com/DrDonk/unlocker/releases/download/V4.2.2/unlocker422.zip
说明:用于解锁VMware软件,否则在VMware Workstation上无法安装macOS。

3. Install-macOS-Catalina-10.15.7_19H15.iso
获取地址:https://sysin.cn/blog/macOS-Catalina/(ISO 格式原版可引导镜像)
百度网盘链接:https://pan.baidu.com/s/1TTORJOjSbxqQRQB3z4A5hQ 提取码:6bwt
说明:macOS Catalina 10.15.7可引导镜像文件

一、安装VMware Workstation

运行VMware-workstation-full-15.5.7-17171714.exe,安装VMware Workstation Pro:

二、新建MacOS虚拟机

创建新的虚拟机

由于VMware Workstation尚未解锁,现在还不能创建macOS虚拟机,我们先退出VMware Workstation,用unlocker对它进行解锁。

解压unlocker422.zip内全部内容到unlocker422文件夹下,然后运行windows文件夹下的unlock.exe文件,会出现命令行窗口:

按回车键,关闭命令行窗口。

再次打开VMware Workstation,发现可以创建macOS虚拟机了,版本我们选最高版本macOS 10.16:

磁盘空间我们设成80GB,否则后续系统升级时空间会不够用,点“下一步”:

点“完成”按钮:

如果需要我们随时可以通过“编辑虚拟机设置”对虚拟机的配置进行修改,如下图:

三、配置MacOS虚拟机

下面通过“编辑虚拟机设置”来设置虚拟机的内存:

设置虚拟机的光驱,把它和我们下载的Install-macOS-Catalina-10.15.7_19H15.iso连接起来:

下面我们开始进入虚拟机系统的安装环节。

四、为MacOS虚拟机安装MacOS Catalina系统

开启虚拟机

选择语言“简体中文”:

选择磁盘工具:

选择虚拟机硬盘,点“抹掉”:

设置磁盘名称、格式、方案,点“抹掉”:

点“完成”,然后退出磁盘工具:

选“安装macOS”,点“继续”:

点“继续”:

点“同意”:

选磁盘,点“安装”:

安装中…

选择地区:

选择语言输入法:

点“继续”:

Apple ID稍后设置:

点“同意”:

设置好电脑账户,点“继续”:

点“继续”:

选桌面外观,点“继续”:

安装完成:

五、升级MacOS Catalina系统

点左上角苹果菜单中“关于本机”:

点“软件更新”:

点“立即升级”:

点“继续”:

点“同意”:

点“继续”:

输入用户名和密码:

重新启动:

输入用户名和密码:

升级完成:

Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect

上一篇我介绍了【如何为iTunes Connect准备应用】。最后在这篇文章里我会简单介绍下如何来上传IPA到iTunes Connect。

登陆iTunes Connect,进入Manage Your Applications页面后,点击你创建的应用图标,进入应用的主页。

如图,在应用的主页中可以看到应用的基本信息。通过右上方的按钮可以来管理付费方面的设置。在左下方图标旁边是应用的当前状态。上传应用之前必须确定应用的状态为Waiting for upload。

点击图标下方的View Details进入应用的详细信息页面。在页面上方中部有一个Binary Details按钮,点击后可以查看文件上传的情况。在这个页面还可以更改应用的状态。我目前遇到的状态有以下几种:

  • Waiting for upload 等待上传,只有这种状态下才可以上传IPA
  • Waiting for Review 等待审核,上传成功后开始排队等待审核
  • In Review 正在接受审核
  • Developer Reject 开发者撤回,开发者可能出于某种原因要撤回文件进行修改,在下次上传之前必须进入Binary Details页面修改应用状态为Waiting for upload,才可以进行下次上传。上传后会重新排队。

另外,由于我的应用正在接受审核,所以我不知道还有哪些状态,但至少有拒绝和通过这两种。

更新mobileprovision和p12

现在我来介绍一下,在上传应用之前还必须要做的一个重要事情。我在“如何使用iOS开发者授权和申请证书”这篇文章介绍了mobileprovision和p12这两个文件的生成方法,也提到了它们在开发阶段和发布阶段需要使用不同的文件。接下来我就简单介绍以下在哪里为准备发布的应用生成mobileprovision和p12文件。

回到开发者授权系统,进入Certificates页面后,点击Distribution标签。如下图,点击图中的链接可以下载一个AppleWWDRCA(Apple World Wide Developer Relations Certification Authority)证书文件到本地,如果是MAC,双击它就可以进入Keychain Access,这个证书文件会给所有你从Apple开发者网站下载的证书签名,包括前篇文章提到的证书。但是我怎么也找不到如何在Windows下使用AppleWWDRCA给证书签名的资料,所以除了建议使用MAC来签名之外,我无法提供一个可行的方法。如果你的证书没有经过AppleWWDRCA签名,它是无法正常上传到iTunes Connect的。

回到开发者授权系统证书页面,点击Request Certificate,按照我们之前介绍过的流程上传一个CSR文件,然后下载一个cer文件进行签名(需要用MAC),再导出p12供Flash发布。

mobileprovision文件的生成方式同之前的方法没有什么区别,只不过需要从Distribution标签下重新申请一个Profile,然后选择一个Distribution的签名证书,就可以导出provision文件了。

使用新的p12和mobileprovision文件重新打包发布一个IPA,这个文件就是我们即将上传到iTunes Connect上的Binary文件。

使用Application Loader上传应用

在Mac下使用Application Loader是上传Binary到iTunes Connect的唯一途径。如果你安装了Xcode 4,可以使用最新的Application Loader 1.4来上传,否则可以下载Application Loader 1.3.dmg,还可以参考Application Loader使用指南。

Application Loader使用方法非常的简单,使用你的开发者帐号登陆,然后按照提示一步一步操作就可以了。Application Loader提供的不仅是文件上传的功能,它还同时校验和检查IPA的证书与授权,所以如果你的文件在发布过程中没有经过合法的签名,或者没有使用正确的授权与证书,那么上传是不会成功的。

上传成功后就可以等着Review了,我目前的经验也只能分享到这里。希望有对流程更清楚的专家可以对我介绍有误的地方及时提出修改意见,谢谢!

Flash开发iOS应用全攻略(四)——如何为iTunes Connect准备应用

在上周我介绍了【如何在Flash里发布iOS应用】,以及【如何申请成为合法的iOS开发者】、【如何使用iOS开发者授权和申请证书】。今天我会给大家介绍一下如果你打算将应用发布到 Apple应用程序商店,都应该做些什么。

如果你已经成功注册了iOS开发者,那么现在就可以登陆iTunes Connect来管理应用程序。

如何申请合同

如果你打算在iTunes上出售应用,那么你需要申请一份与Apple的双方合同。如下图:

点进去之后就是申请合同的页面,你可以申请iOS Paid Applications (付费应用合同)和iAd Network(广告合同)。它们的申请流程基本是一样的。我们以iAd合同为例,点击列表右侧的Request按钮,在新的页面中仔细阅读签订前的协议后,点击同意并继续。

查看你的注册邮箱,会收到一封来自do_not_reply@apple.com的邮件,邮件附件中是一份含有合同条款的PDF,仔细阅读后,可以回到iTunes Connect的合同页面继续完成申请流程。

如图,列表中最右侧的Status是当前的合同状态,如图中显示为Pending Tax, Contact,意思是税率信息和联系方式信息没有填写。因为我在此之前已经申请过了付费应用合同,已经填写过了一次银行信息,否则这里显示的状态应该是Pending Tax, Bank, Contact。

银行信息的填写

点击列表中Bank对应的Setup按钮,进入银行信息的编辑页面。

首先在下拉列表中选择China,然后点Next

新的页面中需要输入银行的CNAPS(China National Automatic Payment System)Code,这是中国的银行联网付费系统号码,每一个银行都有这样的一个号码。如下图,点击Look up your bank,可以查询你的银行信息。

在接下来的银行查询系统中,可以通过Bank Name(银行名字)、City(城市)和Post Code(邮政编码)来检索你的开户行信息,每一个查询条件都可以指定start with(以关键字开始)或者contains(包含)。比如要查询中国银行(Bank of China)在北京的某个支行,那么在Bank Name里选择start with,然后填写”Bank“;在City里填写”Beijing“,就可以列出北京市所有名字以”Bank“开头的银行名字。

从列表中选择你的开户行,然后点击Next就可以了。这样CNAPS Code就会被自动填写,你只需要在接下来的页面填入帐号信息。

如图,分别在Bank Account Number与Confirm Bank Account Number里输入一遍帐号,在Account Holder Name里输入帐号持有人的姓名(汉语拼音),注意要用汉语拼音,而且必须是存折或者银行卡持有人的名字;最后在Bank Account Currency里填写银行帐号的货币单位。这样就可以完成银行信息的填写。

联系人的填写

在合同列表中点击Contact Information对应的Setup按钮进入联系人填写页面。联系人的填写比较简单,点击Create New Person可以创建一个联系人,然后指定这个联系人是什么身份,如图,可以指定为高管(Senior Manager)、Finace(财务)、Technical(技术支持)、Legal(法律部门)、Promotions(市场推广)等。如果你是个人帐号,那么就全部使用自己。

赋税信息的填写

在合同列表中点击Tax对应的Setup来填写的是赋税信息(我最头疼考虑的东西),不过对于一般中国大陆的开发者这几步也不用怎么费脑筋。

先在第一页选择缴税的类型。如图:

如果你是加拿大的开发者,点击Canada Tax Forms下面的Setup;或者你想在日本的应用商店出售应用,那么注意页面下面有一排小字For developers residing outside of Japan who want to sell apps on the Japan App Store, learn more about optional Japanese tax forms. 点击learn more来了解跟日本应用商店相关的赋税信息。如果你两者都不是,那么点击 U.S Tax Forms下面的Setup按钮进入下一页。

下一页是一个选择题,问你是不是美国纳税人。问题下面的一段文字介绍了两种被认为是美国纳税人的条件:

1. 你目前是一个合法的永久的美国公民。

2. 你今年人在美国境内居住满了31天,并且在今年、去年和前年这三年里一共在美国境内住满了183天。

符合这两个条件之一,选择Yes,否则选择No。然后继续。

下页仍然是一个选择题,问你在美国有没有业务活动。如果你在美国有雇员,或者你有通过网络盈利的设备(或者出租的设备)在美国,那么你就选择Yes,否则选择No,继续。

最后一页比较Easy,选择了你是那种受益人(如果是个人就选择Individual/Sole Proprietor),最后确认你的名字和称呼(先生、女士、或者职位),就可以点击完成赋税信息的填写。

这样,申请合同的流程就完成了,接下来等1-3天可以再次登陆页面来查看(我没有收到Email的通知),如果申请成功,合同会移动到Contracts In Effect列表中,这样你的合同就生效了。

如何管理应用

在iTunes Connect里可以管理你所创建的所有应用,包括给应用命名、添加缩略图、添加描述文字已经指定价格等等操作。

首先在iTunes Connect里点击中间部分的Manage Your Applications可以进入应用程序的管理界面。

创建应用

如果你创建一个新的应用,点击页面左上角的Add New App按钮,进入创建页面,如图。

注意:这里所有的信息都要用英文填写。

App Name:应用的名称

SKU Number:Stock Keeping Unit,货号。如果你有很多应用,给每一个应用指定一个唯一的货号会方便你管理应用库。你可以用数字或者字母随便指定你的货号。

Bundle ID:这个是非常关键的一项设置,关系到你的应用能否被正常发布到商店。 在这里你会看到一个下拉列表,列表里是在开发者授权系统里创建的所有App ID的Description。选择你想要添加的App ID,然后在展开的Bundle ID Suffix里填入那个域名格式的Bundle ID(如com.jamesli.stanley2),注意:这个Bundle ID Suffix与在开发者授权系统里创建的Bundle ID必须完全相同,否则应用文件无法正确上传。 确认无误后再点击Continue按钮,否则应用保存后就无法回过头来修改这个值,只有删除App重新添加了。

给应用标价

接下来是给应用标价。如图,在Availabilities Date里选择应用的生效时间,然后在下面的下拉列表中选择你打算出售的价位,点击See pricing matrix可以看到所有的标价标准。如果你选择的不是Free,那么你必须要有一个生效的iOS Paid App合同,否则需要按照本文章上半部分来申请一个合同。

填写应用信息

下一步是一张表单,具体内容如下,注意全部用英文填写

  • Version Number 版本号,如1.0.0.1
  • Description 应用描述,4000字以内
  • Primary/Secondary Category 应用归类,在这里可以给应用选择一主一次两个归类,次要归类是可选项。
  • Keywords 检索关键字, 逗号分隔,总长度不能超过100字节。
  • Copyright 版权信息,如2012 Noah Boat Inc.
  • Contact Email Address 联系人信箱
  • Support URL 支持站点,填入客服以及支持站点
  • App URL 应用信息站点,(可选)填入应用的详细信息介绍站点。
  • Privacy Policy URL 隐私政策站点,如果在应用中采用了付费购买功能,则这一项为必填项,否则可选。
  • Review Notes 审核备注,这是给审核App的人看的,可以填入一些测试应用的相关信息(比如测试用的帐号密码等),这项不能超过4000字节。

接下来是应用的Rating,是指应用内对敏感内容的出现级别;None为不出现;Infrequent/Mild为不经常,轻微出现;Frequent/Intense为频繁出现。

下面是敏感内容的解释:

  • Cartoon or Fantasy Violence 指卡通化的的暴力场面。比如格斗游戏或者闯关游戏里的厮杀。
  • Realistic Violence 真实的暴力场面。比如逼真的3D游戏或者电影片段中的暴力。
  • Sexual Content or Nudity 色情或者裸露的内容(注意,是内容而并非画面,画面在最后一条)
  • Profanity or Crude Humor 亵渎或粗俗幽默。比如对宗教对人种的亵渎歧视等等。
  • Alcohol, Tobacco, or Drug Use or References 与烟酒、毒品有关的内容。
  • Mature/Suggestive Themes 成人或者限制级场景
  • Simulated Gambling 虚拟的赌博
  • Horror/Fear Themes 恐怖、惊悚的场面

下面的这两项据说即使是轻微出现,通过审核的可能性也不大。

  • Prolonged Graphic or Sadistic Realistic Violence 长篇幅地直白展现暴力或者虐待场面。
  • Graphic Sexual Content and Nudity 色情或者裸露的画面

关于EULA(最终用户协议)和Icon的上传我就不一一介绍,保存后,你就可以为应用上传文件了。

请继续浏览【如何上传应用到iTunes Connect