【问题标题】:Firebase dynamic link not open in development app while app is not in appstore当应用不在应用商店中时,Firebase 动态链接未在开发应用中打开
【发布时间】:2020-02-14 11:52:54
【问题描述】:

我担心的是我没有上传到应用商店,但是当我点击深度链接 url 调试模式应用程序没有在 Appstore 上打开它的重定向

我是 ABLR 来重定向我的调试应用程序。

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

正如我测试过的,我的应用在 firebase 中配置良好

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

每次我必须将链接和过去复制到 chrome 中,并且在这里弹出你就像你的应用程序打开另一个应用程序然后重定向到应用程序一样......

我希望当我点击链接时,它会直接在应用程序上重定向,而不是在 Safari 中或手动复制该链接,然后打开应用程序

注意:应用程序未运行我想打开我的调试应用程序的 url。

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

-(BOOL)应用程序:(UIApplication *)应用程序 continueUserActivity:(NSUserActivity *)userActivity 恢复处理程序:

我的链接不能在 safari 中工作,但它在 chrome 上工作,如何设法在 safari 上工作......

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    以下选项假定您在任何计划中都创建了 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 记录,因此我需要将 Proxy Status 更改为 DNS Only 以进行所有权检查。 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

    建议使用此选项,但您需要拥有受 2 因素身份验证保护的 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 并开始填写文书工作。

    重要提示:如果以个人身份注册,请先与您组织的法律部门或您的律师一起阅读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 设备是否是最新的。如果问题出在操作系统本身,请检查应用代码并进行调试。
    • 再次测试应用程序。如果不起作用,请重复上述步骤,直到问题解决。

    【讨论】:

    • 您好,我已经编辑了我的问题,如果可以的话,请帮助我重定向到我的应用程序现在我想使用 safari 重定向到我的应用程序也如何做到这一点....
    • 嗨,@AkashRaghani!为此答案提供了 Objective-C 代码。也许你错过了或忘记阅读全文,是吗?
    • 嗨,安德烈,我已经像以前一样编辑了我的问题,我无法在应用程序上重定向,但现在我可以在单击链接时重定向应用程序,但它在 safari 上重定向并且不起作用。所以每次我必须复制该链接并打开谷歌浏览器.....所以我的问题是为什么它不能直接在 safari 中工作???
    【解决方案2】:

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

    我找不到原文,但我记得 Firebase 告诉您需要插入 Team 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;

    【讨论】:

    • 我担心的是 continueUserActivity 方法没有被调用,你能帮我解决我的问题吗
    • @AkashRaghani 您是否将GoogleService-Info.plist 添加到您的项目中?您是否在 Info.plist 的 CFBundleURLSchemes 中添加了 Firebase 网址?
    • 是的 google info.plist CFBundleURLSchemes 我没听明白
    • @AkashRaghani 你有 SceneDelegate 吗?尝试调用这里提到的新方法:link。只有当应用程序已经在后台运行时才会被调用。
    • “我记得 Firebase 告诉你需要插入 Team ID 和 AppStore ID 才能使动态链接生效”——你很可能指的是this
    【解决方案3】:

    我曾研究过 Firebase 动态链接,这对我有帮助。

    解决方案:

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

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

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

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

    【讨论】:

    • 请给iOS应用选项
    • 我已经更新了我的问题添加截图请检查
    • 是的,我只想要这个,我现在累了一个调试应用程序(这就是你想要的)。
    • 在你选择com.pdd的选项里,有多少个选项?
    • 我添加了屏幕截图,请检查,因为这是唯一的选项。
    猜你喜欢
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多