我的客户有一个iOS应用程序,启用了应用程序内购买,游戏套件和推送通知,它目前在应用程序商店中。我想使用内部企业分发证书来退出应用程序,以便在内部进行测试,但仍能够测试与原始配置文件绑定的服务。这可能吗?辞职iOS配置文件
回答
我终于实现了这一点,这是一个组合: -
和
1)创建权利的plist,防止问题与钥匙扣等
<?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>
2)解压缩IPA
unzip Application.ipa
3)拆下旧的代码签名
rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true
4)更换嵌入式移动的provisioning profile
cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision"
5)辞职
/usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/Application.app"
6)重新包装
zip -qr "Application.resigned.ipa" Payload
只是一点点增加科科卡尔的回应,如果你运行与codesign_allocate问题,当你到了第5步(Resign),请尝试导出一个shell变量CODESIGN_ALLOCATE,并为其指定一个iPhone SDK中代码分配的路径。要做到这一点,请确保您有安装(在Xcode首选项/更新)
例如Xcode的命令行工具,我得到的错误:
me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app"
输出:
Payload/MyApp.app: replacing existing signature
codesign_allocate: object: /Users/mimio/Downloads/Payload/MyApp.app/MyApp malformed object (unknown load command 33)
Payload/MyApp.app: object file format unrecognized, invalid, or unsuitable
为了解决这个问题,我这样设置变量:
me$ export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
然后再次运行我的命令:
me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app"
瞧!一切正常工作与新codign_allocate
要辞去一个应用程序比@Koko卡尔说的更容易一点,我们已经适应了浮动脚本,它可以在https://gist.github.com/Weptun/5406993找到。 使这个过程非常简单:
sh floatsign.sh ~/Downloads/File.ipa "iPhone Distribution: CertificateName" -b new.bundle.id -p /Path/To/Profile/Appstore.mobileprovision App-resigned.ipa
警告: - 在Mac OS X> = 10.10中不推荐使用--resource-rules! temp/Payload/Application.app/ResourceRules.plist:无法读取资源 发生错误,正在中止! – 2016-07-28 12:55:35
当搜索这是stackover流的第一个问题shownup。所以想要用最新的iResign mac应用程序进行更新,这使得使用GUI而非终端中的命令变得非常容易。
iReSign
iReSign允许的iDevice的应用程序包(的.ipa)文件进行签名或与苹果公司的数字证书进行分发辞职。它还可以从.xcarchive文件创建签名的iDevice应用程序包(.ipa)文件。此工具针对企业用户,企业部署时签名应用程序的人员与开发应用程序的人员不同。
如何使用
iReSign让你重新签署任何未加密的ipa文件与您持有对应私钥的任何证书。 iResign也可以从xcarchive文件创建一个签名的ipa文件。
将未签名的.ipa或.xcarchive文件拖动到顶部框中,或使用浏览按钮。
从Keychain Access输入您的完整证书名称,例如底部框中的“iPhone Developer:Firstname Lastname(XXXXXXXXXX)”。
点击ReSign!并等待。辞职的文件将保存在与原始文件相同的文件夹中。
对4个不同的问题你有同样的答案。如果问题可以用相同的答案回答,那么你应该标记它是重复的,而不是重复的答案。 – NathanOliver 2016-01-08 13:37:43
完美重新签署发送给AppStore的ipa。只需要找到正确的配置文件和证书(如果你有多个)。我将entitlement.plist留空,似乎创建了一个节奏,如果没有找到。然后我使用iMazing安装了我的辞职ipa。现在我可以仔细检查一下,我提交的应用程序在到达商店和/或等待批准之前会按预期工作。 – 2016-04-11 15:06:01
- 1. 键盘不辞职辞职后,它在ios 8.3
- 2. 用adhoc配置文件辞职解密的ipa
- 3. 的UITableViewCell辞职FirstResponder
- 4. 如何辞职SWRevealViewController?
- 5. 辞职文本字段 - 代码重用
- 6. 辞职textview的响应者
- 7. 的iOS,而不是当应用程序被辞职
- 8. iOS配置配置文件错误
- 9. NSTextField辞职第一响应者
- 10. 键盘辞职减少弹跳高度
- 11. UITextField辞职第一响应者iOS4
- 12. 正常配置文件和配置配置文件之间的区别iOS
- 13. 辞职当前文本框的键盘alertview
- 14. 如何辞职或破解一个保护免受辞职的Android应用程序
- 15. 使用Ipa的代码辞职不会因安装错误而失败-IOS
- 16. iOS - 查看配置文件内部?
- 17. 分享iOS开发配置文件
- 18. ios提供配置文件错误
- 19. Ios配置文件即将到期
- 20. iOS应用程序配置文件
- 21. IOS:辞退2的viewController
- 22. 通过配置文件管理器在内部安装iOS配置文件配置文件
- 23. iOS即将到期分销配置配置文件问题
- 24. iOS获取已安装的配置配置文件
- 25. iOS配置配置文件验证错误
- 26. Xcode 7.1抱怨iOS的adHoc配置配置文件
- 27. 用xcrun辞职ipa PackageApplication阻止IPA安装
- 28. 每当我做出改变时,我是否需要辞职APK?
- 29. 辞职ipa并将其提交给苹果
一个命令,如果你辞职.app文件可以这样做:'xcrun -sdk的iPhoneOS PackageApplication -v “建设/ YourProject-的iPhoneOS/youAppName.app” -o“output_folder/yourAppName.ipa “ - 签名”yourCertificateName“ - 嵌入”your.mobileprovision“' – Xiao 2014-02-27 03:00:01
”GBA9L2EABG.com.your.bundle.id.MyApp“ - 这是您创建的捆绑ID,还是原始的捆绑ID IPA? 如果您更改原始应用的捆绑ID,是否也推送通知? – Leonti 2014-11-14 14:34:08
当我尝试安装应用程序获取错误作为appName的CFBundleExecutable,这是不可执行的。我尝试了chmod + x命令来appName.app仍然是相同的错误。 – Raghav 2015-05-29 07:04:40