gpt4 book ai didi

iphone - 关于 iPhone/iPad 重新构建行为的非常棘手的问题

转载 作者:可可西里 更新时间:2023-11-01 04:19:38 24 4
gpt4 key购买 nike

事情是这样的..

场景:

我得到了一个 ipa 文件,这是我通过存档 + 共享过程得到的使用 XCode。 ipa 文件使用临时分发证书签名,并且它可以毫无问题地安装。

应用在keychain中保存了一些信息使用我刚刚制作的构建可以毫无问题地访问它。

之后,我使用 Enterprise 的 codesign 命令对应用程序重新签名在 applicaction.app 包中进行一些更改后分发证书。此更改包括更改应用程序的名称和包 IDinfo.plist 文件,当然,将嵌入式移动配置文件替换为与新证书匹配的证书。

问题:

辞职后一切似乎都很好,安装和功能似乎都正常......但是!当我输入信息时保存在钥匙串(keychain)中,数据似乎没有加载或被删除每次关闭应用程序时的钥匙串(keychain)。

为什么会这样?

最佳答案

我已经为这个问题搜索了几个小时...这就是解决方案,应用程序辞职是如何与我们的应用程序一起工作的。我们从客户那里得到了一份 IPA 文件,并用我们的证书将其辞职。访问钥匙串(keychain)有效。 bundle.id 在我们的例子中没有改变。

你需要哪些文件:

  • MyApp.ipa
  • MyApp_EnterpriseDistribution.mobileprovision(企业分发配置文件)
  • Entitlements.plist

所有文件都在同一目录中。如果文件位于不同的文件夹中,则必须更改代码中的路径

首先,我们创建一个“Entitlements.plist”。创建一个txt文件并输入以下代码。输入您的应用程序标识符。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>GBA9L2EABG.com.your.bundle.id.MyApp</string>
<key>get-task-allow</key>
<false/>
</dict>
</plist>

保存此文件并将其重命名为:“Entitlements.plist”

打开终端,移至文件夹并执行此代码,将“MyApp”替换为您的 Appname,将“NAME OF YOUR...”替换为您的证书名称,并将“MyApp_EnterpriseDistribution”替换为您的配置文件:

unzip MyApp.ipa

//we didn't used the following, maybe necessary...
//rm -r "Payload/MyApp.app/_CodeSignature" "Payload/MyApp.app/CodeResources" 2> /dev/null | true

cp MyApp_EnterpriseDistribution.mobileprovision Payload/MyApp.app/embedded.mobileprovision

codesign -f -s "iPhone Distribution: NAME OF YOUR DISTRIBUTION CERTIFICATE" --resource-rules Payload/MyApp.app/ResourceRules.plist --entitlements Entitlements.plist Payload/MyApp.app

zip -qr MyApp-resigned.ipa Payload/

现在您有了带有证书的 Ipa。

提示:具有此名称的证书在您的钥匙串(keychain)中应该是唯一的...

关于iphone - 关于 iPhone/iPad 重新构建行为的非常棘手的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com