如何让TestFlight应用支持Instruments/Logger调试并解决权限问题?
TestFlight构建应用调试权限问题解决办法
1. 让TestFlight构建具备可调试性
苹果不允许Debug构建上传TestFlight,你得基于Release配置修改调试相关选项:
- 打开Xcode项目的Build Settings,选中目标应用
- 搜索
Debug Information Format,设置为DWARF with dSYM File(确保调试时能获取完整的代码符号信息) - 搜索
Enable Debugging,将Release配置下的默认值NO改为YES - 归档时选择修改后的Release Scheme,不要用Debug Scheme
2. 为TestFlight构建添加get-task-allow签名
get-task-allow是控制应用是否允许被调试器附加的关键权限,配置步骤如下:
- 没有Entitlements文件就新建一个:
File > New > File > iOS > Resource > Property List,命名为你的应用名.entitlements - 在文件中添加新键,键名填
get-task-allow,类型选择Boolean,值设为YES - 回到Build Settings,搜索
Code Signing Entitlements,填入这个entitlements文件的路径 - 注意:带这个权限的构建只能用于TestFlight内部测试组(团队成员),外部测试组无法安装这类构建
3. 是否必须使用开发者分发.ipa而非TestFlight构建?
不一定,但两种方式有明显区别:
- 开发者分发的Ad Hoc/Development包,默认自带调试权限,直接就能用Instruments/Logger调试,无需额外配置
- 按上述步骤配置后的TestFlight构建也能调试,但仅限内部测试团队成员安装的版本
- 如果觉得TestFlight配置流程繁琐,优先用Ad Hoc分发的ipa调试,限制更少、流程更顺畅
内容的提问来源于stack exchange,提问作者Piepants
相关产品推荐
相关产品推荐

