React native 如何为react本机ios构建.ipa应用程序?

React native 如何为react本机ios构建.ipa应用程序?,react-native,react-native-android,react-native-ios,React Native,React Native Android,React Native Ios,我会试试看”https://stackoverflow.com/questions/41970435“但是我找不到.ipa文件 有人能解释一下如何获取.ipa文件吗?您可以在ios目录中运行这些命令 xcodebuild clean archive -scheme <Scheme> -configuration Release -archivePath ../builds/<App>.xcarchive DEVELOPMENT_TEAM=<DevTeam> P

我会试试看”https://stackoverflow.com/questions/41970435“但是我找不到.ipa文件


有人能解释一下如何获取.ipa文件吗?

您可以在ios目录中运行这些命令

xcodebuild clean archive -scheme <Scheme> -configuration Release -archivePath ../builds/<App>.xcarchive DEVELOPMENT_TEAM=<DevTeam> PROVISIONING_PROFILE=<PROVISIONING_PROFILE> CODE_SIGN_IDENTITY=<CODE_SIGN_IDENTITY>
xcodebuild -exportArchive -archivePath ../builds/<App>.xcarchive -exportPath ../builds/ -exportOptionsPlist ./iosExportOptions.plist 
xcodebuild clean archive-scheme-configuration Release-archivePath../builds/

您可以在Xcode和Product->Archive中填写所有详细信息,如开发团队等

  • 获取
    .app
    文件:

     react-native run-ios --configuration=release
    
  • .app
    文件路径
    Build/Products/Release/“.app”

  • .app
    转换为
    .ipa

    • 创建文件夹
      Payload
    • .app
      文件粘贴到
      Payload
      文件夹中
    • 压缩
      有效负载
      文件夹
    • 更改所需名称并将扩展名设置为
      .ipa
    • 从info.plist中删除本地主机项

      应用程序传输安全设置->异常域

    • 捆绑ios

      react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
      
    • 在Xcode中

      产品->方案->编辑方案->将构建配置更改为
      RELEASE

    • AppDelegate.m

      替换

      jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
      

    • 更改设备->通用iOS设备

    • 产品->清洁

    • 产品->构建

    • .app
      文件可在以下位置找到:

      ~/Library/Developer/Xcode/DerivedData/<app name>/Build/Products/Release-iphoneos/<appname>
      
      ~/Library/Developer/Xcode/DerivedData//Build/Products/Release iphoneos/
      
    • 创建文件夹负载。


    • .app
      文件粘贴到有效负载文件夹中。


    • 压缩有效负载文件夹。


    • 更改所需名称并将扩展名设置为
      .ipa


    可能重复:此问题的可能重复不是上述问题的重复,因为该问题的答案已过期;问题提出后,详细信息已更改。可能的遗憾:这是我们通过命令行导出IPA的唯一方法吗?或者我们可以使用react-native获得任何集成的命令行选项吗?到目前为止,react-native-only build
    .app
    的选项正如另一位回答者所指出的,关于配置文件和构建大小的错误是Xcode build的5倍。这是什么魔法?这个构建/产品/发布/“.app”路径不存在。你说的有效负载文件夹是什么意思?我找不到Build文件夹来查找Build/Products/Release/“.app”。在哪里可以找到?@preston在运行
    react native run ios--configuration=release
    之后查看CLI如果一切正常,您将有以下行
    info Installing”/Users/“”/Library/Developer/Xcode/DerivedData/“”-gpyqutyfhaccnvgoneubfmtbglgw/Build/Products/release iphonesimulator/“”.app“
    ,这就是发布版。但我的问题是如何压缩有效载荷?这是一个简单的zip压缩还是另一个特定的压缩?在遵循这些步骤并成功创建ipa后,我无法再通过iOS模拟器在调试中运行应用程序,有任何建议@Aleena1995您是否将Scheme更改为debug,并将jsCodeLocation恢复为旧版本?@ArthurYeah我最终恢复了我所做的所有更改,有没有一种简单的方法可以同时拥有这两个选项并能够从调试和发布版本中恢复?我当前的解决方案是保持调试,对发布、构建进行所有更改,然后恢复。您可以使用以下代码,以便根据构建配置选择jsCodeLocation。请检查更新的解决方案@Arthur@aleena1995以这种方式生成IPA有任何限制吗?应用程序是否会在固定时间后过期?
    #ifdef DEBUG
      jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
    #else
      jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
    #endif
    
    ~/Library/Developer/Xcode/DerivedData/<app name>/Build/Products/Release-iphoneos/<appname>