我被命令提供 2 个版本的应用程序:一个演示/轻型(有限功能),另一个完整(所有功能)。我的代码中有一个布尔值,它告诉我哪个正在运行。它们都在模拟器或测试设备(iOS 和 Android)上按预期运行。
现在我想分发它们。所以我读到这是可能的使用XCode定义不同的目标 https://www.raywenderlich.com/68613/create-paid-lite-version-iphone-app对应于轻型/完整版本并带有Eclipse https://stackoverflow.com/questions/12963369/creating-demo-and-full-version-app-based-on-one-code-base-project可以将基础项目定义为库,然后创建 2 个也对应于精简/完整版本的项目。
在我开始搞乱我的应用程序项目之前,是否有推荐的方法可以通过 CodenameOne 实现我的目标,也许通过构建提示来根据构建提示值更改应用程序名称和代码内的布尔值?
编辑 2016 年 9 月 19 日(工作方法)
遵循 Shai 的建议,我按照以下步骤在完整版本的基础上生成了一个精简版本(以防有人遇到相同的情况):
- 在您的 IDE(Eclipse 或其他)下,将基础包复制并粘贴到 src 文件夹中,并将其重命名为 com.packageLIGHT.appName(只需将 LIGHT 附加到包名称中,不要使用下划线或空格,因为苹果稍后会将其视为非法字符)
=> 所以现在在 src 文件夹中你应该有
src
|- com.packageLIGHT.appName
|- com.package.appName
-
然后在 com.packageLIGHT.appName 中删除除 MyApp.java(也称为主文件)之外的所有文件。在此文件中添加import com.package.myApp.*;
3.1. (ECLIPSE) 在“运行/运行配置”菜单中,复制现有配置并将其粘贴为 Simulator_MyAppLIGHT,并在参数中将其更改为“com.packageLIGHT.myApp.MyApp”。
3.2. (NETBEANS)“运行/设置项目配置”似乎没有按预期工作,因为可能选择的任何配置都会导致相同的默认行为。然而,应用步骤 6. 并随后在模拟器中运行该项目会得到预期的结果。
现在您应该能够通过运行不同的配置来运行这两个版本。
对于 iOS(不确定 Android 是否也需要),您必须生成另一对配置文件。因此,移动 iosCerts/FULL 中的现有文件并使用 CN1 向导生成“轻”版本配置文件,您将在其中调整包名称以匹配“com.packageLIGHT.myApp”。将生成的文件存储在 iosCerts/LIGHT 中。无需覆盖现有证书(更多关于证书的信息请点击这里) http://escoz.com/blog/demystifying-ios-certificates-and-provisioning-files/.
最后将“codenameone_settings.properties”中的原始包名称替换为“light”行codename1.ios.appid
and codename1.packageName
。另外,根据您想要构建的内容,将 iOS 配置文件更改为 iosCerts/LIGHT 或 FULL。
现在,当您将 Android / iOS 版本发送到 CN1 服务器时,它将构建“轻型”版本或完整版本,具体取决于“codenameone_settings.properties”中写入的包。
请注意:如果在第 6 步,您在 build.xml 的第 469 行(android 构建)或 344(iOS 构建)上收到 NullPointerException,该异常处理certPassword="${codename1.android.keystorePassword}
(安卓版本)或appid="${codename1.ios.appid}"
(iOS 版本)并且您在 Eclipse 下使用 CN1 插件版本 1.0.0 20160812下面是Shai的评论 https://stackoverflow.com/questions/39505331/managing-demo-full-version-of-my-app-in-codename-one/39523668?noredirect=1#comment66442166_39523668可能值得
如果您想要同一应用程序的 2 个不同版本,那么您需要 2 个不同的包,因为在商店中唯一定义应用程序的是应用程序包。有两种常见的方法可以做到这一点:
- 将功能放入 cn1lib 并构建两个应用程序
- 构建一个应用程序并只需交换
codenameone_settings.properties
file
第一个应该非常清楚,但使用起来可能有点痛苦,因为您无法运行 cn1lib 并且可能会遇到调试问题。
第二个其实很简单。创建应用程序的主版本,然后将包添加到演示版本并将主文件复制到那里。
要运行演示版本,只需在 IDE“运行设置”中更改包即可。
复制你的codenameone_settings.properties
到一个单独的文件,只需将所有常规包名称替换为演示包名称。当您想要构建“演示”版本时,请替换codenameone_settings.propeties
文件之间存在相互关联的情况,显然您可以使用脚本将其自动化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)