Skip to content

Commit 177cc85

Browse files
committed
📝 Update the ruby script to account for running it with Android only configuration.
1 parent 16ccbcd commit 177cc85

File tree

2 files changed

+47
-42
lines changed

2 files changed

+47
-42
lines changed

‎link.rb

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,47 @@
1-
#!/usr/bin/env ruby
2-
require 'xcodeproj'
3-
require 'fileutils'
4-
5-
# Replace these with your values
6-
current_path = Dir.pwd
7-
project_path = Dir.glob("#{current_path}/ios/*.xcodeproj").first
8-
file_name = File.basename(project_path, ".xcodeproj")
9-
project_location = './ios/'+file_name+'.xcodeproj'
10-
target_name = file_name
11-
framework_root = '../node_modules/instabug-reactnative/ios'
12-
framework_name = 'Instabug.framework'
13-
14-
# Get useful variables
15-
project = Xcodeproj::Project.open(project_location)
16-
frameworks_group = project.groups.find { |group| group.display_name == 'Frameworks' }
17-
if frameworks_group == nil
18-
frameworks_group = project.new_group('Frameworks')
19-
end
20-
target = project.targets.find { |target| target.to_s == target_name }
21-
frameworks_build_phase = target.build_phases.find { |build_phase| build_phase.to_s == 'FrameworksBuildPhase' }
22-
23-
# Add new "Embed Frameworks" build phase to target
24-
embed_frameworks_build_phase = project.new(Xcodeproj::Project::Object::PBXCopyFilesBuildPhase)
25-
embed_frameworks_build_phase.name = 'Embed Frameworks'
26-
embed_frameworks_build_phase.symbol_dst_subfolder_spec = :frameworks
27-
target.build_phases << embed_frameworks_build_phase
28-
29-
# Add framework search path to target
30-
['Debug', 'Release'].each do |config|
31-
paths = ['$(inherited)', framework_root]
32-
target.build_settings(config)['FRAMEWORK_SEARCH_PATHS'] = paths
33-
end
34-
35-
# Add framework to target as "Embedded Frameworks"
36-
framework_ref = frameworks_group.new_file("#{framework_root}/#{framework_name}")
37-
build_file = embed_frameworks_build_phase.add_file_reference(framework_ref)
38-
frameworks_build_phase.add_file_reference(framework_ref)
39-
build_file.settings = { 'ATTRIBUTES' => ['CodeSignOnCopy', 'RemoveHeadersOnCopy'] }
40-
41-
# Save Xcode project
1+
#!/usr/bin/env ruby
2+
begin
3+
require 'xcodeproj'
4+
rescue LoadError
5+
puts('xcodeproj doesn\'t exist')
6+
Kernel.exit(0)
7+
end
8+
require 'fileutils'
9+
10+
# Replace these with your values
11+
current_path = Dir.pwd
12+
project_path = Dir.glob("#{current_path}/ios/*.xcodeproj").first
13+
file_name = File.basename(project_path, ".xcodeproj")
14+
project_location = './ios/'+file_name+'.xcodeproj'
15+
target_name = file_name
16+
framework_root = '../node_modules/instabug-reactnative/ios'
17+
framework_name = 'Instabug.framework'
18+
19+
# Get useful variables
20+
project = Xcodeproj::Project.open(project_location)
21+
frameworks_group = project.groups.find { |group| group.display_name == 'Frameworks' }
22+
if frameworks_group == nil
23+
frameworks_group = project.new_group('Frameworks')
24+
end
25+
target = project.targets.find { |target| target.to_s == target_name }
26+
frameworks_build_phase = target.build_phases.find { |build_phase| build_phase.to_s == 'FrameworksBuildPhase' }
27+
28+
# Add new "Embed Frameworks" build phase to target
29+
embed_frameworks_build_phase = project.new(Xcodeproj::Project::Object::PBXCopyFilesBuildPhase)
30+
embed_frameworks_build_phase.name = 'Embed Frameworks'
31+
embed_frameworks_build_phase.symbol_dst_subfolder_spec = :frameworks
32+
target.build_phases << embed_frameworks_build_phase
33+
34+
# Add framework search path to target
35+
['Debug', 'Release'].each do |config|
36+
paths = ['$(inherited)', framework_root]
37+
target.build_settings(config)['FRAMEWORK_SEARCH_PATHS'] = paths
38+
end
39+
40+
# Add framework to target as "Embedded Frameworks"
41+
framework_ref = frameworks_group.new_file("#{framework_root}/#{framework_name}")
42+
build_file = embed_frameworks_build_phase.add_file_reference(framework_ref)
43+
frameworks_build_phase.add_file_reference(framework_ref)
44+
build_file.settings = { 'ATTRIBUTES' => ['CodeSignOnCopy', 'RemoveHeadersOnCopy'] }
45+
46+
# Save Xcode project
4247
project.save

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"homepage": "https://github.com/Instabug/instabug-reactnative#readme",
2424
"rnpm": {
2525
"commands": {
26-
"postlink": "ruby ./node_modules/instabug-reactnative/link.rb"
26+
"postlink": "ruby ./node_modules/instabug-reactnative/link.rb || echo \"Ruby doesn't exist, if you're building this for Android only, then feel free to ignore this error, otherwise please install Ruby and run 'react-native link instabug-reactnative' again\""
2727
},
2828
"android": {
2929
"packageInstance": "\t\tnew RNInstabugReactnativePackage.Builder(\"YOUR_ANDROID_APPLICATION_TOKEN\",MainApplication.this)\n\t\t\t\t\t\t\t.setInvocationEvent(\"shake\")\n\t\t\t\t\t\t\t.setPrimaryColor(\"#1D82DC\")\n\t\t\t\t\t\t\t.setFloatingEdge(\"left\")\n\t\t\t\t\t\t\t.setFloatingButtonOffsetFromTop(250)\n\t\t\t\t\t\t\t.build()"

0 commit comments

Comments
 (0)