【问题标题】:iOS how to replace my app icon in .app file and resign?iOS如何在.app文件中替换我的应用程序图标并辞职?
【发布时间】:2020-09-09 15:41:04
【问题描述】:

现在,我有一个项目必须根据内部分发分发 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。
所以我决定更改图标,这样我就不必多次重新归档。所以我将其替换为 else icon。他们有相同的名字。 之后,我使用此命令
xattr -cr $ipaPath/Payload/myproject.app codesign -f -s "xxxxxx" --entitlements $Entitlements $ipaPath/Payload/myproject.app 退出此 .app 文件。我上传到一个平台并从那里下载。图标没有改变(是第一个one 而不是second)。那么为什么会发生呢?我怎么能解决它。 对了,我也重写了plist文件改了DisplayName,就可以了。

【问题讨论】:

  • 这不是 Targets 解决的问题吗? appcoda.com/using-xcode-targets
  • 您可以使用xcodebuild 在命令行上构建和签署应用程序。你试过什么?你也可以看看使用 fastlane
  • 我没有测试它。但是你可以试试medium.com/ios-os-x-development/…。您可以检测应用程序的捆绑包 ID 以自动调用 changeIcon 函数
  • 使用 Fastlane 退出您的应用程序。使用 Fastlane 非常容易。
  • 您应该编辑您的问题以显示您正在使用的命令,并比“它不起作用”更清楚地描述您的问题

标签: ios objective-c


【解决方案1】:

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

我建议如下:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 2016-01-13
      • 2022-11-14
      相关资源
      最近更新 更多