如何使用fastlane为模拟器创建app文件

时间:2017-02-01 13:20:30

标签: ios xcode fastlane

我需要使用fastlane .app文件(或.ipa文件,如果它适用)创建,然后我可以拖放到另一台计算机上的模拟器。我尝试用健身房或xcodebuild参数做,但我不知道该怎么做。

现在我这样做:

  • 在XCode中,我为模拟器构建应用程序

  • 接下来我在DerivedData中搜索app文件(〜/ Library / Developer / XCode / DerivedData / Build / Products / Debug-iphonesimulator /)

  • 我将此文件复制到其他地方

但我需要用fastlane来做。

6 个答案:

答案 0 :(得分:5)

正如你在issues at fastline repo中所见,你可以用健身房做,但也许,如果你使用xcodebuild(例子)会更好:

xcodebuild -configuration Debug -target targetname -arch i386 -sdk iphonesimulator10.3

搜索~/Library/Developer/Xcode/Archives/<date>(或您使用-archivePath指定的位置)并且内部将 xcarchive

  1. 导航到查找程序中的.xcarchive文件
  2. 右键单击.xcarchive文件,然后选择&#34;显示包 内容&#34;在弹出菜单中
  3. 查找程序将切换为显示.xcarchive的内容 文件。
  4. 导航至产品/应用程序
  5. 您的.app将位于产品/应用程序
  6. 来自here

    Here is answer,这会对你有帮助。

    <强>更新 如果您需要从命令行获取应用程序文件,您可以执行以下操作:

    mv /YourXCArchiveLocation/archive.xcarchive/Products/Applications/AppName.app /YourDesiredLocation/AppName.app
    

答案 1 :(得分:5)

这是我使用的车道:

lane :generate_test_app do
    xcbuild(
        workspace: "MyApp.xcworkspace",
        scheme: "MyApp",
        configuration: "Debug",
        xcargs: "-sdk iphonesimulator SYMROOT='/var/tmp/'"
    )
end

它会将应用留在/var/tmp/Debug-iphonesimulator/MyApp.app

另请参阅:How do I build my projects from the command line?

答案 2 :(得分:3)

我们通过以下gym调用来完成此工作:

archive_path = gym(
    skip_package_ipa: true,
    destination: "platform=iOS Simulator,name=iPhone 6",
    configuration: "Debug",
    build_path: "simulator_build"
  )

这将在包含与模拟器兼容的.app文件的目录“ simulator_build /”中吐出一个.xcarchive。

archive_path将是创建的.xcarchive捆绑包的绝对路径。

name=需要与xcrun simctl list输出中显示的现有模拟器设备的名称匹配。 iPhone 6默认存在,因此应该是安全的选择。

在将此文件拖到模拟器上进行安装之前,您需要使用Gatekeeper将其列入白名单:

spctl --add ~/project/simulator_build/Products/Applications/YourApp.app

如果忘记了,您会得到一个“…无法打开,因为它来自一个身份不明的开发人员。”在模拟器中单击该应用程序时出错。

如果收到“…已损坏,无法打开。应将其移至回收站。”,说明自.app进行代码签名以来,情况有所更改。使用

codesign -vvv ~/project/simulator_build/Products/Applications/YourApp.app

查看自代码签名以来已添加,删除或更改了哪些文件。

答案 3 :(得分:1)

我已经通过build_app做到了这一点:

build_app(
        scheme: scheme,
        workspace: workspace,
        configuration: build_configuration,
        derived_data_path: output_path,
        skip_package_ipa: true,
        skip_archive: true,
        destination: "generic/platform=iOS Simulator"
    )

我认为,如果您想使用健身房,可以以此为基础。

答案 4 :(得分:0)

我在日常生活中使用fastlane

这很简单。安装fastlane并确保在执行任何其他操作之前更新到最新版本。

首先,您必须在应用的文件夹中运行fastlane init

然后,您必须确保在目标的构建设置中,您拥有正确的配置文件和证书(例如AdHoc或AppStore版本)。

然后您只需在项目的文件夹中运行此命令:

gym —workspace "WORKSPACE_NAME.xcworkspace" —scheme "SCHEME_NAME" -n "IPA_FILE_NAME"

对于模拟器构建,您可以使用 export_options "./ExportOptions.plist"参数带有专用的导出选项.plist文件,或者位于专用Gymfile内,如下所示:

export_options( method: "ad-hoc", manifest: { appURL: "https://example.com/My App.ipa", }, thinning: "<thin-for-all-variants>" )

它使用与xcodebuild相同的参数,所以你应该没问题。例如,如果您需要存档而不是-archivePath文件,则可以传递-exportArchive.ipa选项。

答案 5 :(得分:0)

棘手的部分是找到.app目录。这是我用的:

DROP DATABASE [name];