iOS多target需要注意的事情

1. 每个target对应的是一个新的APP。假设两个APP叫做:APP_DisAPP_Dev

2. 每个APP都有Debug模式和Release模式。所以根据 DEBUG来做判断就需要注意了。你到底是想区分APP_Dis和APP_Dev,还是想区分Debug和Release。

#####3. 一般来说,默认的scheme中的配置是Run:Debug,Archive: Release。所以,我们在Xcode中run出来的APP都是Debug版本,而发布到TestFlight和App Store中的都是Release版本。

#####4. 在做推送时需要注意的事情。这里以JPush极光推送为例。

我们需要准备四套证书,每个target都对应一个开发证书和一个发布证书。


其客户端api中的方法中有一个参数:apsForProduction,传值为YES或者NO。这里的YES和NO对应的是:Debug为NO,Release为YES。而并非APP_Dev为NO,APP_Dis为YES。


服务端也要注意这个问题:其api中也有一个apns_production字段,传YES还是NO由客户端决定,然后传值给服务端,而不是简单的APP_Dev为NO,APP_Dis为YES。如果这样设置会出现:用Xcode run出来的两个APP中,APP_Dev可以收到推送,而APP_Dis收不到。而发布到TestFlight和App Store的APP中只有APP_Dis可以收到通知。