要使此模板工作,您需要将Discord作为OAuth提供商启用。您可以在店员仪表板中找到User & Authentication / Social Providers的社交选项
如果在添加Discord之外更改此处的任何设置,则可能需要更新世博代码以处理您更改的任何要求。
它使用turborepo并包含:
.github
└─ workflows
└─ CI with pnpm cache setup
.vscode
└─ Recommended extensions and settings for VSCode users
apps
├─ expo
└─ next.js
├─ Next.js 13
├─ React 18
└─ E2E Typesafe API Server & Client
packages
├─ api
| └─ tRPC v10 router definition
└─ db
└─ typesafe db-calls using Prisma
要使它运行,请按照以下步骤操作:
# Install dependencies
pnpm i
# Configure environment variables.
# There is an `.env.example` in the root directory you can use for reference
cp .env.example .env
# Push the Prisma schema to your database
pnpm db-pushExpo不将.ENV用于发布键,因此您需要转到apps/expo/app.config.ts并在此处添加。
const CLERK_PUBLISHABLE_KEY = "your-clerk-publishable-key";
dev -script注意:如果您想将实体手机与Expo GO一起使用,只需运行
pnpm dev并扫描QR代码即可。
apps/expo/package.json上的dev脚本以打开iOS模拟器。 + "dev": "expo start --ios",pnpm dev 。 apps/expo/package.json上的dev脚本以打开Android模拟器。 + "dev": "expo start --android",pnpm dev 。 请注意,如果您要构建Locallly,则需要正确插入ENV,例如使用
pnpm with-env next build
我们不建议在无服务器环境上部署SQLITE数据库,因为数据不会持续。我在铁路上提供了一个快速的PostgreSQL数据库,但是您当然可以使用任何其他数据库提供商。确保更新Prisma模式以使用正确的数据库。
让我们将下一个应用程序部署到Vercel。如果您曾经在那里部署过TurborePo应用程序,则步骤非常简单。您还可以阅读有关部署到Vercel的官方TurborePo指南。
apps/nextjs文件夹作为根目录,然后应用以下构建设置: 
安装命令过滤了Expo软件包,并保存了依赖性安装的几秒钟(和缓存大小)。构建命令使我们使用Turbo构建应用程序。
添加您的DATABASE_URL , NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY和CLERK_SECRET_KEY Environment变量。
完毕!您的应用程序应成功部署。分配您的域,并将其代替在Expo应用中的url而不是localhost ,以便您的Expo应用程序在不开发时可以与您的后端通信。
与Web上的Next.js相比,部署您的Expo应用程序的工作方式略有不同。您需要将应用程序的生产构建提交给Apple App Store和Google Play等应用程序商店,而不是“部署”您的应用程序。您可以在博览会文档中阅读完整的应用程序,包括最佳实践。
让我们从设置EAS构建开始,这是EXPO应用程序服务的缩写。构建服务可帮助您创建应用程序的构建,而无需进行完整的本地开发设置。下面的命令是创建第一个构建的摘要。
// Install the EAS CLI
$ pnpm add -g eas-cli
// Log in with your Expo account
$ eas login
// Configure your Expo app
$ cd apps/expo
$ eas build:configure初始设置后,您可以创建第一个构建。您可以为Android和iOS平台进行构建,并使用不同的EAS.JSON构建配置文件来创建生产构建或开发或测试构建。让我们为iOS制造生产。
$ eas build --platform ios --profile production
如果您不指定
--profile标志,EAS默认情况下使用production配置文件”。
现在您已经制作了第一个生产,可以将其提交给商店。 EAS提交可以帮助您将构建发送到商店。
$ eas submit --platform ios --latest
您还可以使用
eas build ... --auto-submit构建并提交单个命令。
在将应用程序掌握在用户手中之前,您必须向应用商店提供其他信息。这包括屏幕截图,应用程序信息,隐私政策等。在预览中,EAS Metadata可以帮助您获取大多数此信息。
如果您正在与文员一起使用Oauth社交提供商,例如Google,Apple,Facebook等...,您必须在店员仪表板中使用自己的Oauth重定向URL,以供店员仪表板中的Expo应用程序。
在apps/expo/app.config.ts中,添加一个scheme ,该方案将用于识别您的独立应用程序。
import { ExpoConfig , ConfigContext } from "@expo/config" ;
const CLERK_PUBLISHABLE_KEY = "your-clerk-publishable-key" ;
const defineConfig = ( _ctx : ConfigContext ) : ExpoConfig => ( {
name : "expo" ,
slug : "expo" ,
scheme : "your-app-scheme" ,
// ...
} ) ;然后,在店员仪表板中,转到用户和身份验证>“社交连接”>“设置” ,然后将应用程序的方案添加并将URL重定向到重定向URLS字段:
your-app-scheme://oauth-native-callback在这里, your-app-scheme对应于app.config.ts中定义的scheme ,而oauth-native-callback对应于与社交提供者进行认证时定义的重定向URL。请参阅signinwithoauth.tsx以获取参考。
您可以在世博文档中找到有关此信息的更多信息。
现在,您应该能够在Testflight应用程序构建中与您的社会提供商登录。
一旦获得了所有批准,您的用户最终就可以享受您的应用程序。假设您发现了一个小错字。您必须创建一个新的构建,将其提交给商店,并等待批准,然后才能解决此问题。在这些情况下,您可以使用EAS更新快速向您的用户发送小型错误,而无需经历这个漫长的过程。让我们首先设置EAS更新。
下面的步骤总结了EAS更新指南的入门。
// Add the ` expo-updates ` library to your Expo app
$ cd apps/expo
$ pnpm expo install expo-updates
// Configure EAS Update
$ eas update:configure在我们将更新发送到您的应用程序之前,您必须创建新构建并将其提交给应用商店。对于包括本机API的每个更改,您必须重建应用程序并将更新提交给应用商店。请参阅步骤2和3。
现在,一切都准备好进行更新,让我们为production构建创建一个新的更新。使用--auto标志,EAS更新使用您当前的git分支名称并为此更新提交消息。了解更多信息以获取更多信息。
$ cd apps/expo
$ eas update --auto您的OTA(空中)更新必须始终遵循应用商店的规则。未经App Store批准,您无法更改应用程序的主要功能。但这是更新应用程序的快速方法,以进行较小的更改和错误修复。
完毕!现在您已经创建了生产构建,将其提交给商店并安装了EAS更新,您已经准备好了!
该堆栈起源于Create-T3-Turbo。