使用Fastlane(或任何其他方法)构建从Expo导出的iPhone应用程序

时间:2017-07-25 15:15:31

标签: build fastlane expo

我有一个我从Expo导出的iPhone应用程序,因此我可以使用自己的硬件进行构建。

简单地说我打电话给exp detach然后我打电话给

cert
sigh
gym

使用fastlane beta

由于无法签署我的应用程序,因此无法构建。错误是

[15:27:30]: ▸ === BUILD TARGET appname OF PROJECT appname WITH CONFIGURATION Release ===
[15:27:30]: ▸ Check dependencies
[15:27:30]: ▸ No profiles for 'com.getexponent.appname' were found:  Xcode couldn't find a provisioning profile matching 'com.getexponent.appname'.
[15:27:30]: ▸ Code signing is required for product type 'Application' in SDK 'iOS 10.3'

显然它正从某个地方拿起com.getexponent.。我在app.json中设置了正确的捆绑名称。

我还更新了Fastfile

lane :beta do    
    update_app_identifier(
      xcodeproj: '../ios/appname.xcodeproj',
      plist_path:'./appname/Supporting/Info.plist',
      app_identifier: "com.mycompany.appname"
    )  
    cert
    sigh
    gym( 
      scheme: "appname",
      workspace: '../ios/appname.xcworkspace'
      )
  end

然而我收到相同的错误消息。

fastlane中,我可以更改世博会的内容,或者我需要更改哪些内容?

2 个答案:

答案 0 :(得分:3)

我在世博会资料库here上打开了一个相关问题。似乎exp detach命令实际上不是部署友好的......

我正在使用Bitrise进行部署,其中包含修改PROJECT_BUNDLE_IDENTIFIER的步骤。您可以执行以下操作:

NEW_BUNDLE_IDENTIFIER="com.mynewbundle.identifier
PBXPROJ_FILE="path/to/project.pbxproj"

sed -i "" "s/\(PRODUCT_BUNDLE_IDENTIFIER = \).*\(;\)/\1${NEW_BUNDLE_IDENTIFIER}\2/" $PBXPROJ_FILE

(基于this Bitrise step)。

答案 1 :(得分:0)

最后,我将此添加到Fastfile步骤

的开头
sh "sed -i '' 's/com.getexponent.allotmentlab/com.foam.allotmentlab/g' '../../ios/allotmentlab.xcodeproj/project.pbxproj'"

这是一个糟糕的解决方案,因为您必须知道错误的字符串是什么。您还需要知道从Fastfileproject.pbxproj的路线。但这是我能想到的最好的解决方案。