我需要使用fastlane .app文件(或.ipa文件,如果它适用)创建,然后我可以拖放到另一台计算机上的模拟器。我尝试用健身房或xcodebuild参数做,但我不知道该怎么做。
现在我这样做:
在XCode中,我为模拟器构建应用程序
接下来我在DerivedData中搜索app文件(〜/ Library / Developer / XCode / DerivedData / Build / Products / Debug-iphonesimulator /)
我将此文件复制到其他地方
但我需要用fastlane来做。
答案 0 :(得分:5)
正如你在issues at fastline repo中所见,你可以用健身房做,但也许,如果你使用xcodebuild
(例子)会更好:
xcodebuild -configuration Debug -target targetname -arch i386 -sdk iphonesimulator10.3
搜索~/Library/Developer/Xcode/Archives/<date>
(或您使用-archivePath
指定的位置)并且内部将 xcarchive 。
来自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
答案 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];