Kli*_*akM 20 xcode plist ios google-signin
我为我的应用程序定义了不同的构建配置(Debug,Stage,Prod),并使用用户定义的构建设置:
在Info.plist文件中设置Facebook登录和其他内容:
在这种情况下,$(USER_DEFINED_SETTINGS)符号确实有效.
当我尝试设置Google SignIn时,需要使用其他.plist文件(GoogleService-Info.plist),并且我使用与文件相同的方式使用用户自定义设置Info.plist,但它不起作用.
如何在自定义文件中使用用户定义的设置.plist?如果我不能,我该如何解决这个问题?
Kli*_*akM 38
这是不是可以使用用户定义的设置,定制的.plist文件,所以你必须在其他的方式来处理这个问题.
虽然,您可以将自定义.plist文件复制到正确的位置:
src/Resources/GoogleServiceInfoPlists(Xcode:Target-> Build Phases - >"+"按钮).使用下面的脚本将给定环境的.plist文件复制(替换)到主目录(GoogleService-Info-Debug.plist在我的情况下):
cp "${SRCROOT}/src/Resources/GoogleServiceInfoPlists/GoogleService-Info-$CONFIGURATION.plist" "${SRCROOT}/src/GoogleService-Info.plist"
Run Code Online (Sandbox Code Playgroud)GoogleService-Info-Stage.plist - 预定义,它指向您的项目位置.
GoogleService-Info-Prod.plist-预定义的,这是你的构建配置,在我的情况:Run Script Phase,src,src/Resources/GoogleServiceInfoPlists/GoogleService-Info-Stage.plist.您可以在Xcode:Project(不是目标!) - > Info中更改此设置.
请注意,src/GoogleService-Info.plist文件必须添加到Xcode项目(Build Phases-> Copy Bundle Resource s),而${SRCROOT}文件不一定.
更新:
请记住,您的新Run Script必须放在Copy Bundle Resources构建阶段之前.否则,它将无法工作,因为它将被复制得太晚,并且将使用默认版本的.plist文件.
小智 5
创建一个新文件夹(例如:GoogleServiceInfoPlists)。
.plist将每个配置的所有文件复制到那里
例如:
GoogleService-Info-Debug.plist,
GoogleService-Info-Alpha.plist,
GoogleService-Info-Beta.plist,
GoogleService-Info-Release.plist
Run Code Online (Sandbox Code Playgroud)
Run Script Phase最后添加新的(Xcode:目标 - >构建阶段 - >“+”按钮)。
使用下面的脚本将给定环境的文件复制.plist到构建目录。
脚本:
RESOURCE_PATH=${SRCROOT}/${PRODUCT_NAME}/GoogleServiceInfoPlists/GoogleService-Info-$CONFIGURATION.plist
BUILD_APP_DIR=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
echo "Copying ${RESOURCE_PATH} to ${BUILD_APP_DIR}"
cp "${RESOURCE_PATH}" "${BUILD_APP_DIR}/GoogleService-Info.plist"
Run Code Online (Sandbox Code Playgroud)
PS:您不需要将文件添加到项目中。只需在主目录中创建一个新文件夹即可。
| 归档时间: |
|
| 查看次数: |
6034 次 |
| 最近记录: |