在C/C++/Objective-C中,您可以使用编译器预处理器定义宏.此外,您可以使用编译器预处理器包含/排除代码的某些部分.
#ifdef DEBUG
// Debug-only code
#endif
Run Code Online (Sandbox Code Playgroud)
Swift中有类似的解决方案吗?
在快速之前,我将为alpha,beta和分发版本定义一组方案.这些方案中的每一个都有一组宏,这些宏被定义为在项目级别处理某些行为.最简单的示例是DEBUG = 1宏,默认情况下为Run构建的默认方案中的所有Xcode项目定义.人们可以查询#ifdef DEBUG ...并相应地在代码中做出决定,甚至编译出非必要的代码.
看起来这种类型的配置选通并不像使用swift那么容易,因为不支持宏.有人可以建议一个类似的方法,我不在乎代码是否编译出来,本身.不过,我想基于构建方案来构建功能.
在过去,我已经为生产提供了单独的构建配置,并通过TestFlight分发了beta版本.这样可以轻松地对beta版本进行修改,例如公开应用程序的其他设置,让测试人员更彻底地测试内容,并查看有关应用程序状态的更多技术信息.
有没有办法检查是否已通过Apple的TestFlight分发应用程序以更改应用程序的运行方式?编译器指令不再有意义,因为相同的构建可以分发给beta测试人员并提交给商店,但也许有一种方法可以在运行时进行检查.
是否有可能以某种方式在iOS应用程序中编码如下?
if(app is live in app store)
{
//Do something
}
else
{
//Do other thing
}
Run Code Online (Sandbox Code Playgroud)
我想避免我们的QE/Dev团队使用app进行测试的情况.有没有办法可以检测应用程序代码的签名方式(Developer/Adhoc/Distribution)?即使有可能,也不会消除Apple在审核时使用我们的应用进行测试的情况.在我们的应用程序在App Store上线之前,我们记录了Apple的许多内容下载.
我更喜欢使用与TestFlight和App Store相同的构建配置.有没有办法在运行时检测应用程序是否已通过TestFlight或App Store安装?(我的想法是,takeOff如果没有通过App Store安装,我只会打电话.)
我想避免在App Store版本中使用TestFlight来保护我的用户的隐私,并避免这里讨论的网络的潜在脱轨.
我需要在运行时检测我的应用程序副本是否为生产/开发版本.有没有什么方法可以实现同样的目标.
我期待开发推送通知API,它将相应地向服务器发送APNS消息(即沙箱或没有沙箱).
有帮助吗?提前.
在先前的测试飞行系统中,我们推出了AdHoc版本,我们使用编译器常量来确定要为Beta测试人员打开/关闭功能。现在,有了Apple的Beta测试飞行系统,我们必须为App Store构建而不是AdHoc,这很好,就好像它测试良好一样,我们可以使用相同的构建进行生产审查。
iOS内是否有任何方法可以检测到该构建是Test Flight交付的构建,因此我们知道“这是beta”,并且对AdHoc编译器常量所做的操作与以前相同?
谢谢
我想知道如何检查用户安装的应用程序是通过Testflight或安装的AppStore。因此,基于此,我想在整个应用程序中进行一些环境更改。
无论如何通过编码找到它。苹果是否API为此提供任何服务?
任何帮助将不胜感激。
ios ×6
testflight ×4
swift ×3
app-store ×2
cocoa-touch ×1
ios5 ×1
itunes ×1
itunes-sdk ×1
objective-c ×1
preprocessor ×1
xcode ×1