美文网首页ReactNativeiOS React Native 开发专题RN iOS开发相关
React Native iOS详细打包步骤(2018.04更新

React Native iOS详细打包步骤(2018.04更新

作者: 慕诩 | 来源:发表于2017-07-29 16:34 被阅读2409次

    1.在自己项目的ios文件夹下新建一个文件夹取名bundle(ps:ios文件夹和node_modules文件夹在同一级目录下,这个bundle文件夹名称随意取,后面要用到,但是记得在相应地方改一下就好了)

    2.为了方便,将打包命令写到项目package.json文件里,
    然后执行命令:

    npm run bundle-ios

    EA9D8CCD-C12D-4DBA-A30C-65B2B99EAB2B.png.png
    打包命令入下,命令的具体含义参考这篇文章

    "bundle-ios":"node node_modules/react-native/local-cli/cli.js bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ./ios/bundle/index.ios.jsbundle --assets-dest ./ios/bundle"

    接下来就是等~等,可能得等6、7分钟了。打包命令完成后会在我们新建的文件夹bundle里面生成相应的文件。

    注意:如果你加载了本地的html文件,且放置该html文件目录下有你html里引用的图片和CSS文件,记得手动添加到assets->js->html文件下,因为

    ios在打包时,react native会把所有非js的文件当作资源来处理,并不会一起打包到index.bundle.js和index.bundle.meta文件中,而你的html会被打包到assets目录下的相对路径中,通过解压ipa文件 这个时候你只会看到,解压出来的目录中,html文件内加载的相对路径下的资源并没有被打包进来。这是因为react native认识的只有html这个资源,并不认识html内部引用的其他资源链接。

    3.用Xcode打开项目,选中跟项目同名的那个文件夹,右键,选中‘Add Files to ..’选项,然后选择新建的那个bundle文件夹,在弹出的对话框中,点击options,一定要勾选Create folder references选项,将bundle文件夹添加到项目里,Xcode下该文件夹一定要是蓝色的。

    4.修改AppDelegate.m中的加载包的方式(只需修改一次),之后项目会自动跟据debug还是release状态加载不同的包,我们不用在管了

    NSURL *jsCodeLocation;
    #ifdef DEBUG
         //开发包
         jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
    #else
         //离线包
        jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"bundle/index.ios" withExtension:@"jsbundle"];
    #endif
    

    5.将项目由debug状态改成release状态,Xcode-->Product-->Scheme-->Edit Scheme...

    6 选择 Generic iOS Device ,修改Version和Build号

    7.clean一下项目,然后编译。此处生成.ipa文件的方式有多种,可以Archice,也可以先删除.app文件再在编译,将成的.app文件拖到iTunes里面生成。有了.ipa文件,接下来是上传app store还是内测就看你了,哈哈哈
    至此,react native ios打包完成

    参考文章:React Native ios打包

    相关文章

      网友评论

      • 7dcb65186b8e:赞赏两块,方便看看我发给你简信
      • haisonLIN:你好,第5步debug改release,在Edit Scheme下有run test profile analyze archive,全部都要改为release吗
        haisonLIN:@慕诩 谢谢
        慕诩:只要把Run里的debug改成release就可以了
      • 飞哥278999401:感谢分享
      • 米亚流年:感谢分享

      本文标题:React Native iOS详细打包步骤(2018.04更新

      本文链接:https://www.haomeiwen.com/subject/pcqgkxtx.html