当应用不在应用商店中时,Firebase动态链接无法在开发应用中打开

时间:2019-10-17 14:11:31

标签: ios objective-c firebase firebase-authentication firebase-dynamic-links

我担心的是,我还没有上传到应用商店,但是当我单击Deeplink url调试模式时,应用未在Appstore上打开其重定向

我是ABLR,可以重定向到调试应用程序。

我正在研究动态链接目标c

我已经测试过,我的应用在Firebase中配置良好

但是当我与其他用户共享我的产品时,他们在safari上点击url的重定向,并且链接不起作用

每次我必须将链接和过去复制到chrome中时,也会弹出Poup,就像您的应用程序打开了另一个应用程序,然后重定向到该应用程序一样。

当我单击链接时,我会直接指向应用程序,然后再进行安全处理,或者手动复制该链接然后打开OPENAPP

注意:应用程序未启用,我想打开调试应用程序的网址。

我已经配置了用于获取appstoreid和teamid的应用程序

-(BOOL)应用程序:(UIApplication *)应用程序     continueUserActivity:(NSUserActivity *)userActivity       restoreHandler:

我的链接在safari中不起作用,但在chrome上也起作用,如何也能在safari中起作用...

谢谢。

3 个答案:

答案 0 :(得分:0)

以下选项假定您在任何计划中都创建了Firebase项目。如果没有,请检查文档

选项1:在浏览器中打开网站(see source guide

  

如果您使用Cloudflare进行DNS记录管理,请请勿将原始IP地址代理到您希望使用动态链接的域(或子域)您的域,因为Google不会像GitLab Pages那样使用TXT验证,因此可能不会验证您的域。

  1. Set up Firebase Hosting if you haven't done this after project creation
  2. 设置后,打开Dynamic Links
    • 动态链接的新手?点击开始使用。否则,请点击添加URL前缀。每个项目最多只能添加5个URL前缀。
        

      如果将域/子域用于托管或动态链接,则不能再次将其用于动态链接,反之亦然。尝试使用链接前缀(例如demofirebaseproject.devhubcentral.ml/launchapp/insert-link-suffix-here)或特殊的子域(例如demofirebaseproject.devhubcentral.ml/insert-link-suffix-here)。

    • 弹出安装向导。输入您要使用的域名,Google会根据您输入的内容为您显示建议。明智地选择,然后单击下一步。在示例项目ID nomadic-bedrock-257008中,本教程使用demofirebaseproject.devhubcentral.ml
    • 现在,为要使用的域配置选项。我用于演示项目的路径前缀为/launchapp,因为Pins团队的开发人员希望使用demofirebaseporject.devhubcentral.ml/launchapp在Pins的官方应用程序中启动,但可以肯定的是,此应用程序将在App Store中提供不久。目前,我们将用户重定向到contributors-program.recaptime.tk。准备就绪后,点击下一步
    • 然后,启动您的DNS提供商,并将151.101.1.195151.101.65.195添加为您所使用的域/子域的A记录。在我们的演示项目中,我正在使用Cloudflare管理devhubcentral.ml的DNS记录,因此我需要将代理状态更改为仅DNS 进行所有权检查。 See the screenshot看我如何配置它。完成后,点击完成并创建您的第一个动态链接。
        

      DNS传播通常需要24小时或更长时间,但是某些DNS提供商/域注册商会更快地传播DNS记录。

  3. 仅适用于iOS :在Xcode项目中打开Info.plist文件,并在下面添加以下代码。将示例字符串替换为项目中的示例字符串,并根据需要添加更多字符串。
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
  <string>demofirebaseproject.devhubcentral.ml/launchapp</string>
</array>
  

每个Firebase项目最多可以添加10个前缀。如果需要更多,请删除不使用的前缀。

选项2:尝试使用调试应用(并与其他开发人员共享进行测试)

  1. 打开Firebase项目概述和Xcode项目。
  2. 单击加号图标,然后选择一个iOS图标。
  3. 注册您应用的基本信息。
  4. GoogleService-Info.plist文件下载到Xcode项目的根文件夹中。
  5. 打开终端,如果没有Podfile,请使用pod init。编辑它以添加以下内容。保存它,然后运行pod install为您的项目生成一个.xcworkspace。使用此文件进行应用程序的所有将来开发。
# add the Firebase pod for Google Analytics
pod 'Firebase/Analytics'
# add pods for any other desired Firebase products
# https://firebase.google.com/docs/ios/setup#available-pods
  1. 使用下面的Swift代码将初始化代码添加到您的应用代码库中。
import UIKit
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
      [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseApp.configure()
    return true
  }
}
  

有Objective-C项目吗?也许改用这段代码

     
@import UIKit;
@import Firebase;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
   didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 [FIRApp configure];
 return YES;
}
  1. 运行您的应用以验证安装。如果您还没有项目,请跳过此步骤,然后重试。
  2. 尝试上面的选项1,但是这次,我们正在使用您的iOS应用。

选项3:将可用于生产环境的应用发布到App Store

  

请勿继续,如果您不遵守许可协议,或者无法支付年度会员费

     

警告:仅在生产就绪时将您的应用发布到App Store。如果还没有,请先尝试部署到TestFlight

建议使用此选项,但是您需要具有受两要素身份验证保护的Apple ID,并且:

  • 如果以个人身份注册,则提供有关您自己的基本个人信息
  • 如果要注册为组织,则需要:
    • 您组织的D-U-N-S号码(D-U-N-S号码是新的吗?请参阅this help center article以开始使用)
    • 具有法人身份(不适用于DBA,虚拟企业,商品名称或分支机构)
    • 注册组织的人必须具有与Apple和其他公司签订和签署协议的合法权限。
    • 与您的组织相关联的公共可见网站
  • 准备99美元(或转换后您所在国家/地区的等值货币)作为年度会费。

有关注册Apple Developer Program的常见问题解答,请参见https://developer.apple.com/support/enrollment。要开始使用,请访问enrollment page,在完成合规性检查(即您满足上述要求时)后,点击开始注册,登录Apple ID并开始填写文件。< / p>

  

重要:如果您是个人注册,请首先与您组织的法律部门或您的律师阅读license agreement。您不仅必须阅读它,而且还必须了解它。

发布应用程序后,然后添加您的应用程序并像往常一样对其进行配置。

故障排除链接在Safari中不起作用

  

快速提示:与this answer中一样,您需要将此代码添加到配置文件中,如下所示:

     
{"applinks": {
  "apps":[],
  "details":[{
      "appID":"495878282985.madebythepinsteam.publicofficialapp", // Change it with your Apple Store ID.
      "paths":["NOT /_/*","/*"]}
  ]}
}
     

如果上面的代码错误,请随时进行测试和编辑。

  • 检查是否遵循此处设置的指示。
  • 如果我给的指示不够,请查看around the internet for troubleshooting。也许您阅读了一些文档作为复习。该文档是查找答案的第一个地方。
  • 检查您的iOS设备是否为最新。如果问题出在操作系统本身,请检查应用代码并进行调试。
  • 再次测试应用。如果不起作用,请重复上述步骤,直到问题解决。

答案 1 :(得分:0)

我认为您忘记了在Firebase中进行一些配置。在开发过程中,我只是在Firebase项目中放置了一个占位符AppStore ID。例如。 1234567890和我的团队ID,这使调试构建中的动态链接成为可能。

我找不到原始文本,但是我记得Firebase告诉您需要插入团队ID和AppStore ID才能使动态链接正常工作。

创建动态链接后,需要检查动态链接的apple-app-site-association端点。例如

https://yourveryown.page.link/apple-app-site-association

结果必须是这样的(刷新可能需要一些时间):

{"applinks":{"apps":[],"details":[{"appID":"YOURTEAMID.com.yourcompany.app","paths":["NOT /_/*","/*"]}]}}

所以总结一下:

  • 确保您已插入一些Appstore ID;
  • 确保正确设置了团队ID,并且在编译应用时使用了相同的ID;

enter image description here

答案 2 :(得分:-1)

我从事Firebase动态链接的工作,这对我有所帮助。

解决方案:

由于您在应用商店上没有发布应用,这意味着您可以重定向到

  1. 网页或
  2. 调试应用程序(这是您想要的)。

对于第二个选项, 您需要将调试应用程序添加到Firebase控制台,以便在单击如下所示的动态链接时可以选择要打开的调试应用程序:

Firebase Dynamic links

如果您想知道如何在Firebase控制台中添加其他应用,请单击此处:https://firebase.google.com/docs/ios/setup

enter image description here

相关问题