事情是这样的..
设想:
我得到了一个 ipa 文件,这是存档 + 共享过程的结果
使用 XCode。 ipa 文件使用临时分发证书进行签名,并且
它可以毫无问题地安装。
应用程序在钥匙串中保存一些信息
使用我刚刚制作的构建可以毫无问题地访问它。
之后,我使用 Enterprise 的 codesign 命令重新签署应用程序
在 applicaction.app 包中进行一些更改后的分发证书。
此更改包括更改应用程序的名称和捆绑包 ID
info.plist 文件,当然,将嵌入式移动配置文件替换为
与新证书相匹配的证书。
问题:
辞职后一切似乎都很好,安装和功能似乎工作正常......但是!当我输入信息时
保存在钥匙串中,数据似乎无法加载或擦除
每次我关闭应用程序时的钥匙串。
为什么会发生这种情况?
我已经搜索了几个小时来解决这个问题...这就是解决方案,应用程序辞职如何与我们的应用程序一起工作。我们从客户那里得到了一个 IPA 文件,并用我们的证书签署了它。访问钥匙串有效。在我们的例子中,bundle.id 没有改变。
您需要哪些文件:
- 我的应用程序.ipa
- 应用程序 Enterprise Distribution.mobileprovision(企业分发配置文件)
- 权利.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”替换为您的应用程序名称,将“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。
提示:具有此名称的证书在您的钥匙串中应该是唯一的...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)