如何为react-native-ios构建.ipa应用程序?

Sar*_*mar 20 react-native react-native-android react-native-ios

我会尝试" 如何为react-native生成.ipa文件? "但是我不能得到.ipa文件.

任何一个云你解释如何获得.ipa文件.

Sar*_*mar 41

如何为react-native-ios构建.ipa应用程序:

  1. 获取".app"文件:

    命令: react-native run-ios --configuration=release

  2. ".app"文件路径:

    Build/Products/Release/"<Your_Filename>.app"

  3. 转换.app.ipa:

    一个.创建文件夹Payload.

    湾 将.app文件粘贴到Payload文件夹中.

    C.压缩Payload文件夹.

    d.更改所需的名称并将扩展名设为.ipa.

  • 这是什么巫术? (27认同)
  • @preston 在运行 `react-native run-ios --configuration=release` 后查看 CLI,如果一切正常,您将看到以下行 `info Installing "/Users/"&lt;Your_Username&gt;"/Library/Developer/Xcode /DerivedData/"&lt;Your_Filename&gt;"-gpyqutyfhaccnvgoneubfmtbglgw/Build/Products/Release-iphonesimulator/"&lt;Your_Filename&gt;".app"` 这就是版本。但我的问题是如何压缩 Payload ?是简单的 zip 压缩还是其他特定的压缩? (4认同)
  • 在我的系统上,此命令不会生成 .app 文件,它仅在 iOS 模拟器中启动应用程序(react-native 0.63.2) (3认同)
  • 收到有关配置文件和构建大小的错误,其大小是 Xcode 构建的 5 倍。 (2认同)
  • 当我从传输上传 ipa 时出现此错误“错误 ITMS-90174:“缺少配置文件 - 应用程序必须在名为embedded.mobileprovision 的文件中包含配置文件。” (2认同)
  • 此 Build/Products/Release/"&lt;Your_Filename&gt;.app" 路径不存在。Payload 文件夹是什么意思? (2认同)
  • 我找不到 Build 文件夹来查找 Build/Products/Release/"&lt;Your_Filename&gt;.app"。去哪里找? (2认同)

age*_*unt 7

您可以在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 
Run Code Online (Sandbox Code Playgroud)

和iosExportOptions.plist可以是这样的

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>method</key>
  <string>app-store</string>
  <key>teamID</key>
  <string>{TEAM_ID}</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

你也可以结帐fastlane.https://fastlane.tools/

要么

您可以在Xcode和产品 - >存档https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html中填写所有详细信息,例如DEVELOPMENT_TEAM等.


ale*_*995 6

  • 从info.plist删除localhost项目

    应用程序传输安全设置->例外域

  • 捆绑iOS

    react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
    
    Run Code Online (Sandbox Code Playgroud)
  • 在Xcode中

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

  • AppDelegate.m 

    更换

    jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
    
    Run Code Online (Sandbox Code Playgroud)

    #ifdef DEBUG
      jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
    #else
      jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
    #endif
    
    Run Code Online (Sandbox Code Playgroud)
  • 更改设备->通用iOS设备

  • 产品->清洁

  • 产品->构建

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

    ~/Library/Developer/Xcode/DerivedData/<app name>/Build/Products/Release-iphoneos/<appname>
    
    Run Code Online (Sandbox Code Playgroud)
  • 创建文件夹有效载荷。?

  • .app文件粘贴到Payload文件夹中。

  • 压缩有效载荷文件夹。

  • 更改您想要的名称,并将扩展名设置为 .ipa