我正在开发一些iPhone应用程序,这些应用程序与基于HTTP服务器(碰巧是Rails,但这里不相关)通信,而且经常会被从iPhone设备到我的MacBook Pro的IP (Un)可达性所咬伤-- iPhone设备必须击中MBP上的URL。
现在,我在Config.h:
#if (TARGET_IPHONE_SIMULATOR)
// for iPhone Simulator
#define API_BASE @"http://127.0.0.1:3000/api"
#else
// for iPhone Device
#define API_BASE @"http://10.0.0.1:3000/api"
#endif只要: 1.您自己工作,2.您可以完全控制DHCP服务器,3.或者您只能使用iPhone模拟器并使用回送地址(即,不需要推送通知或应用程序内购买)。
但我经常与其他人在远程工作,经常来自咖啡馆或图书馆,所以这让我很困扰--现在我必须手动查找MBP分配的IP地址,将上述常量API_BASE从"10.0.0.1“重写到新地址,并且在提交git或svn之前不要忘记恢复到原来的位置。
有没有任何方法可以从Xcode内部以编程方式获取开发机器的IP地址,并在每次构建的基础上将其发送到iPhone设备?
更新
仅仅使用Bonjour是不够的,因为团队中的每台机器都有不同的名称。
发布于 2010-10-01 04:51:21
因为它已经是一个URL,所以您可以使用主机名而不是IP,并且可以用Bonjour解析它。例如,我正在编写的笔记本名为Jura,这意味着它有一个jura.local的Bonjour主机名。
您可以通过标题到“共享首选项”窗格查找计算机的Bonjour DNS名称。在计算机名下,有句话开头,“计算机在你的本地网络.”并以您想要使用的名称结尾。
然后可以将上述代码更改为:
#define API_BASE @"http://my-macbook-pro.local:3000/api"因为相同的机制将解析模拟器中和设备上的URL。
https://stackoverflow.com/questions/3836488
复制相似问题