检测app是否是临时的

时间:2014-04-18 19:53:28

标签: ios ad-hoc-distribution

我的服务器中有用于测试的URL和另一个用于生产的URL。

在我的代码的某些时候,我做到了这一点:

#ifdef DEBUG
  static NSString * const url = "http://sandbox.myserver.com";
#else
  static NSString * const url = "http://live.myserver.com";
#endif

这在我在Xcode上调试应用程序时工作正常,但如果我将我的应用程序的临时版本发送给beta测试人员,它将失败。临时应用程序将使用生产URL而不是沙箱。

进行此测试的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

简而言之:

var data = String($.NSString.stringWithContentsOfFileEncodingError($.NSBundle.mainBundle.pathForResourceOfType('embedded', 'mobileprovision'), $.NSISOLatin1StringEncoding, null));
data = data.slice(data.indexOf('<plist'));
data = data.slice(0, data.indexOf('</plist>')+8);
data = $.NSString.stringWithString(data).dataUsingEncoding($.NSISOLatin1StringEncoding);
var mobileProvision = $.NSPropertyListSerialization.propertyListWithDataOptionsFormatError(data, $.NSPropertyListImmutable, null, null);
if (mobileProvision.valueForKey('ProvisionedDevices')) {
    res.debug = 'adhoc';
} else {
    res.debug = false;
}