如何不发布正式版即可测试App Clip到完整版App的跳转及参数传递?
可行测试方案
方案1:本地模拟跳转流程(无需上传任何版本到苹果后台)
核心需求的验证可以完全跳过SKOverlay跳转应用商店的环节,跳转本身是系统原生能力,你已经验证过弹出逻辑正常,只需重点测试参数传递逻辑即可:
- 步骤1:先通过Xcode把App Clip安装到测试设备上,运行一次确保App Clip已经把用户名写入到App Group对应的UserDefaults里
- 步骤2:直接通过Xcode把最新版的完整版App安装到同一台测试设备上,启动后即可验证是否能正常读取到App Group里存储的用户名
- 注意:测试前请确认App Clip和完整版App的签名团队一致,App Group配置完全相同,否则无法访问同一份共享UserDefaults
方案2:TestFlight双版本匹配测试(无需发布到正式应用商店)
你之前的问题是TestFlight中App Clip跳转的是正式商店的旧版本,调整测试逻辑即可解决:
- 步骤1:把你的最新版完整版App也上传到TestFlight,加入和App Clip同一个测试组
- 步骤2:从TestFlight打开App Clip运行一次,写入参数后直接返回桌面,打开同一设备上TestFlight安装的最新完整版App
- 步骤3:直接验证参数传递结果即可,不需要通过SKOverlay触发下载动作
代码问题修正
你当前的完整版App读取代码存在类型匹配错误,会导致即使配置正确也读不到用户名:
你在App Clip里存储的是String类型的username,但在完整版App里用url(forKey: "username")方法读取,类型不匹配,需要改为:
guard let sharedUserDefaults = UserDefaults(suiteName: "group.fruitapp.appClipToFullApp"), let username = sharedUserDefaults.string(forKey: "username") else { print("Could not find the App Group or the username from the app clip") return } print("username is \(username)") //Do more stuff
修正后即可正常读取到存储的用户名。
内容的提问来源于stack exchange,提问作者Oded Rinsky
相关产品推荐
相关产品推荐

