是否可以为 iOS/Android 生成具有不同图标的应用程序

Is it possible to generate an app with different icons for iOS/Android

我正在使用 Codename One 构建应用程序,应用程序图标包含在项目根目录中定义的单个 500x500 icon.png 文件中。

这很方便,但我希望我的图标样式因各种 OS(Android 和 iOS 构建目标)而不同。例如。我想 iOS 使用一个图标文件,Android 使用另一个图标文件。

我该如何实现?

您需要编辑 build.xml 文件并替换发送每个平台构建的相关任务中的 icon.png 文件。

例如对于 iOS 目标,您将在文件中看到类似这样的内容:

<target name="build-for-ios-device" depends="clean,copy-ios-override,copy-libs,jar,clean-override">
    <codeNameOne
        jarFile="${dist.jar}"
        displayName="${codename1.displayName}"
        packageName = "${codename1.packageName}"
        mainClassName = "${codename1.mainName}"
        version="${codename1.version}"
        icon="${codename1.icon}"
        vendor="${codename1.vendor}"
        subtitle="${codename1.secondaryTitle}"

        targetType="iphone"
        certificate="${codename1.ios.debug.certificate}"
        certPassword="${codename1.ios.debug.certificatePassword}"
        provisioningProfile="${codename1.ios.debug.provision}"
        appid="${codename1.ios.appid}"
        />
</target>

只需编辑它以首先复制 iOS 特定文件(假设其名为 icon-ios.png):

<target name="build-for-ios-device" depends="clean,copy-ios-override,copy-libs,jar,clean-override">
    <copy file="icon-ios.png" tofile="icon.png" />
    <codeNameOne
        jarFile="${dist.jar}"
        displayName="${codename1.displayName}"
        packageName = "${codename1.packageName}"
        mainClassName = "${codename1.mainName}"
        version="${codename1.version}"
        icon="${codename1.icon}"
        vendor="${codename1.vendor}"
        subtitle="${codename1.secondaryTitle}"

        targetType="iphone"
        certificate="${codename1.ios.debug.certificate}"
        certPassword="${codename1.ios.debug.certificatePassword}"
        provisioningProfile="${codename1.ios.debug.provision}"
        appid="${codename1.ios.appid}"
        />
</target>

当然,您需要为 Android 和其他目标做另一面的工作。