我刚刚开始研究一个已经存在的React-Native应用程序,该应用程序需要很小的更新,但是自2019年10月以来就没有更新过。
要开始更新它,我需要做的第一件事就是构建应用程序。那是我找不到办法的地方。
目前,我正在尝试仅在iOS而不是Android上构建应用。
我正在使用的所有当前工具集版本中的第一个是:
React-Native version: 0.53.3
Xcode version: 11.4.1
iOS SDK: 13.4
Node version: 8.16.6
NPM version: 6.14.1
起初我在使用第三方工具时遇到了问题,但是我设法通过手动将其安装在node-modules/react-native folder
中来进行修复。
现在我遇到有关Xcode的错误,找不到应用程序正在使用的模块的标题
例如,
找不到React/RCTViewManager.h
个文件
或者,类似地,RNGoogleSignIn模块中的GoogleSignIn.h
标头
我认为这只是在Xcode中导入库的错误,因为作为测试,我创建了一个新的react-native“测试应用程序”,具有相同的react-native和node确切版本,然后我安装了核心在原始应用程序上执行更新所需的依赖项,我设法毫无问题地进行了构建。
我还测试了使用Xcode 9在装有macOS 10.14的旧Mac上构建应用程序的过程,但是我遇到了不同的错误,总是与导入模块头有关。 这是“旧Mac”的工具包版本:
React-Native version: 0.53.3
Xcode version: 9.4.1
iOS SDK: 11.3
Node version: 8.16.6
NPM version: 6.14.1
在线搜索我知道我遇到的一些问题(例如第三方react-native手动安装)已在react-native更新中修复,但是我对这项技术不够专业,无法确定我可以处理更新过程而不会引入错误。我宁愿仅使该版本暂时运行并在以后面对更新过程。
您对我为成功构建该应用程序能做什么有什么建议?
答案 0 :(得分:0)
如果有人遇到类似问题:解决方案非常简单。
package main
import (
"flag"
"fmt"
)
type stringPtrFlag struct {
ptr **string
}
func (f stringPtrFlag) String() string {
if *f.ptr == nil {
return ""
}
return **f.ptr
}
func (f stringPtrFlag) Set(s string) error {
*f.ptr = &s
return nil
}
var filename *string
func init() {
flag.Var(stringPtrFlag{&filename}, "filename", "the filename")
}
func main() {
flag.Parse()
if filename == nil {
fmt.Println("--filename not set")
} else {
fmt.Printf("--filename set to %q\n", *filename)
}
}
文件夹中的.xcworkspace
文件,而不是iOS
中的文件。这用于自动(正确地)在Xcode中加载Pods依赖项,而无需手动链接它们。