重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
配置Mac来让你的iOS应用程序运行在iOS Simulator上的步骤
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、虚拟空间、营销软件、网站建设、鹤峰网站维护、网站推广。
为了布署你的iOS应用程序到Mac的iOS Simulator上,你需要在Mac上安装下列工具:
Platform Assistant(PAServer)
为了测试目标,RAD Studio使用Platform Assistant,它必须安装并且运行在Mac上。
XCode
XCode是在Mac上的开发测试环境,并且提供Mac OS X和iOS应用程序需要的程序文件。
第一步:安装PlatformAssistant
刚才讲过,当你布署iOS App从PC到iOS Simulator或iOS Device时,Platform Assistant必须运行在Mac上。
Platform Assstant的Mac OS X安装包名为RADPAServerXE4.pkg,并且可以在两个地方可以找到:
在RAD Studio安装目录里的PAServer目录。
例如,C:\Program Files\Embarcadero\RADStudio\n.n\PAServer\RADPAServerXE4.pkg
第二步:运行PlatformAssistant
在Mac的Finder里,按下面的步骤激活这个.app文件(RAD PAServer XE4.app):
1. 定位到顶层的Applications目录。
2. 双击RAD PAServer XE4.app来启动Platform Assistant:
会出现一个终端窗口,显示Platform Assistant标识以及输入密码提示:
可以按Return键(回车键),或者输入一个PAServer的密码然后按Return键。
3. 接下来你会被提示要求输入Mac的用户密码来允许Platform Assistant来调试你的应用程序。输入你的密码,然后选择Take Control“允许”:
第三步:在Mac上安装XCode
XCode是在Mac上的开发测试环境,并且提供为Mac OS X和iOS应用程序所需要的开发文件。
你可以从下面这些地方安装XCode:
在你的“Mac OS X Install”DVD上,OptionsInstalls下面,双击XCode.mpkg来安装XCode。
在Mac App Store,免费下载Xcode。
作为一个注册的AppleDeveloper,你可以下载最新版本的Xcode包(.dmg)。注册然后下载Xcode:
接下来的步骤
你需要配置你的Mac来在iOS Simulator上运行iOS应用程序。
为了在iOSSimulator上运行iOS应用程序,请查看“iOS 教程:在Windows PC上准备你的开发环境”来完成RAD Studio IDE的配置。
为了在iOS Device上运行你的iOS应用程序,请使用下面这些步骤来完成Mac的配置。注意,你可以在在iOS Simulator上测试完应用程序之后执行这些步骤。
1:把它加到蓝牙的广播包里,但是这样的话对硬件来说负担很大 而且芯片会不稳定
2:有的设备可以通过 “180A”这个服务来发现特征,再来读取 “2A23”这个特征值,可以获得Mac地址(如果你的蓝牙设备不支持这样获取,你可以跟硬件工程师沟通,来获得Mac地址,添加一个获取地址命令或者增加一个含地址的特征值都可以很容易的获取)
1、在iOS7刚发布的时候,许多需要通过iOS的MacAddress做验证的App都失效,都在说Apple是否开始禁止开发者获得iOSDevice的MacAddress。最近Apple在开发者表示新的API让开发者可以再次取得iOSDevice的MacAddress。
2、在开发iOS应用时,每个开发者都会有一套属于自己的代码库,可能会需要在不同的项目下以复制粘贴的方式使用,对于团队开发这或许不是一套好的管理方式。Raywenderlich提供了一个建立静态连结代码库的教学,开发者可以建立一套自己常用的静态代码库,加快团队的开发速度。
苹果设备本来有个UDID号,可以实现这个目的。在iOS5.0以前,还有一uniqueIdentifier的API用来获得这个number。不过iOS5之后,这个API废除了。
一条路不通,换一条路走,于是MAC地址就成了一个不错的选择,苹果没有提供获得MAC地址的API,不过使用sysctl还是可以有点办法的,代码如下:
#include sys/types.h
#include sys/param.h
#include sys/ioctl.h
#include sys/socket.h
#include net/if.h
#include netinet/in.h
#include net/if_dl.h
#include sys/sysctl.h
void GetMACAddress(unsigned char *mac)
{
int mib[6];
size_t len;
char *buf;
unsigned char *ptr;
struct if_msghdr *ifm;
struct sockaddr_dl *sdl;
mib[0] = CTL_NET;
mib[1] = AF_ROUTE;
mib[2] = 0;
mib[3] = AF_LINK;
mib[4] = NET_RT_IFLIST;
if ((mib[5] = if_nametoindex("en0")) == 0) {
printf("Error: if_nametoindex error/n");
return ;
}
if (sysctl(mib, 6, NULL, len, NULL, 0) 0) {
printf("Error: sysctl, take 1/n");
return ;
}
if ((buf = malloc(len)) == NULL) {
printf("Could not allocate memory. error!/n");
return ;
}
if (sysctl(mib, 6, buf, len, NULL, 0) 0) {
printf("Error: sysctl, take 2");
free(buf);
return ;
}
ifm = (struct if_msghdr *)buf;
sdl = (struct sockaddr_dl *)(ifm + 1);
ptr = (unsigned char *)LLADDR(sdl);
memcpy(mac,ptr, 6);
free(buf);
}
段代码可以良好的工作,直到iOS7的出现。不知出于什么原因,苹果对于sysctl和ioctl进行了技术处理,让MAC地址返回02:00:00:00:00:00。官方文档上这样写的“Twolow-level networking APIs that used to return a MAC address now return thefixed value 02:00:00:00:00:00. The APIs in question are sysctl(NET_RT_IFLIST) andioctl(SIOCGIFCONF). Developers using the value of the MAC address should migrate toidentifiers such as -[UIDeviceidentifierForVendor].This change affects all apps running on iOS 7”
在设置里面查看,方法如下: 1.打开设置,找到通用点进去,找到关于本机上面的WiFi地址就是手机的mac地址