iOS如何替换.app文件中的我的应用程序图标并辞职?

时间:2018-10-23 07:07:52

标签: ios objective-c

现在,我有一个项目,必须根据内部分发以20或更多的“ ipa”文件分发。但是,这些文件完全相同。它们通过不同的图标和不同的名称分为不同的“ ipa”文件。 我的问题是我将图标文件重命名为与Xcode项目中的图标文件相同的名称。并将其构建为.app文件,在我替换此.app文件中的其他图标后将其辞职。但这是行不通的。所以我该怎么做? 我不想将其存档超过20次以获取ipa文件!这既痛苦又无聊。

详细信息: 首先,我使用命令xcodebuild来获取.app文件。
xcodebuild -workspace ${projectDir}/xxxxx.xcworkspace -scheme ${schemeName} -configuration Release clean -sdk iphoneos build CODE_SIGN_IDENTITY="${CODE_SIGN_IDENTITY}" PROVISIONING_PROFILE="${PROVISIONING_PROFILE}" SYMROOT="${projectDir}/build" 在执行此操作之前,我已经在Xcode中设置了this。 然后,我打开应用程序文件,发现this
因此,我决定更改图标,从而不必重新存档很多次。因此,我将其替换为其他icon。他们有相同的名字。 在那之后,我使用以下命令将该.app文件辞职
xattr -cr $ipaPath/Payload/myproject.app codesign -f -s "xxxxxx" --entitlements $Entitlements $ipaPath/Payload/myproject.app。然后,我上传到平台并从那里下载。图标未更改(是第一个one而不是second)。那么为什么会发生呢?以及我该如何解决。 顺便说一下,我还重写了plist文件以更改DisplayName,它可以工作。

2 个答案:

答案 0 :(得分:0)

您必须重新构建应用程序才能将图标放入捆绑包中。重新签名是不够的。

我建议以下内容:

  1. 在资产目录中,您为每个目标创建App Icon资产,并为它们指定一个单独的名称,例如AppIconTaget1
  2. 在每个目标的构建设置中,创建一个变量,例如TargetAppIconName并相应地将其分配给AppIconTarget1,依此类推(因此在第二个目标TargetAppIconName == AppIconTarget2中)
  3. Info.plist 文件中,将CFBundleIconName条目分配给该变量的,例如$(TargetAppIconName)

然后,无需进行任何前/后复制等操作,在构建每个目标之后,您应该获得单独的图标。

答案 1 :(得分:-1)

似乎必须存档20次 在您的项目=>常规=>目标中,您可以使用创建20个目标, 将目标设置为不同的图标和不同的名称。 然后使用自动脚本将其存档(使用xcodebuild)