ios - 是否可以修改 iOS 应用程序的主包?
<p><p>我想提供两个版本的 iOS 应用:付费版和免费版。我的目标是保持代码库不变,只更改一个标志来指示我要构建的版本。</p>
<p>我为我的应用准备了两个构建目标来支持这种分离,如 <a href="https://stackoverflow.com/questions/792170/iphone-xcode-can-different-project-targets-have-different-bundle-identifiers" rel="noreferrer noopener nofollow">here</a> 所述.这些目标的 Bundle ID 不同。</p>
<p>现在,我想根据给定的 Bundle ID 更改标志。我试图阅读主捆绑标识符,它工作得很好。我的问题从这里开始。</p>
<p>是否可以在下载免费应用程序后更改主 bundleID 以获得对付费版本的未经授权的访问?我找到了<a href="https://stackoverflow.com/questions/5976846/modify-the-value-in-settings-bundle-in-iphone" rel="noreferrer noopener nofollow">here</a> , <a href="https://stackoverflow.com/questions/5045937/objective-c-write-a-file-programmatically-to-the-main-bundle" rel="noreferrer noopener nofollow">here</a>和 <a href="https://stackoverflow.com/questions/5854795/is-it-possible-to-write-new-file-to-bundle-resource-directory-in-ios-app" rel="noreferrer noopener nofollow">here</a>事实并非如此。 </p>
<p>但是...<em>越狱</em>手机呢?我看过一些评论,是的。</p>
<p>如果是这样,我该如何<em>保护</em>我的应用?</p>
<p>我也在考虑定义像 <code>#define FREE_APP</code> 这样的预处理器指令。然后我会检查:</p>
<pre><code>#ifdef FREE_APP
//show ads
#endif
</code></pre>
<p>但是这个解决方案不能仅仅通过选择构建来完全自动化——我仍然需要手动更改这个值——所以它不是最好的。将不胜感激。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>直接回答您的问题,几乎可以肯定。但我认为这并不重要。</p>
<p>想要盗版您的应用程序的人可能会等到有人购买并破解您的付费应用程序;我怀疑他们会经历破解您的免费版本的麻烦。</p>
<p>就我个人而言,我的项目中有两个目标。这两个应用程序有不同的 <code>Info.plist</code>,免费版在build设置中有一个 <code>#define</code>。正如你所建议的,在我的代码中,我有很多 <code>#ifdef</code>。可以实现自动化(但有时会有点困惑)。</p>
<p>当然,您的另一个选择是通过 InAppPurchase 升级到完整版的单个应用程序。小心专利流氓。</p></p>
<p style="font-size: 20px;">关于ios - 是否可以修改 iOS 应用程序的主包?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/6265951/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/6265951/
</a>
</p>
页:
[1]